Skip to content

IDs, Events und Signals

Tatsächliche ID-Formate

Domain Beispiele Regel/Verwendung
Weapon weapon.pulse_rifle lowercase Präfix; Loadout/Replay/Replication/Unlock
Modification mod.extended_magazine lowercase; Slot/Compatibility/Hash
Perk perk.pulse.controlled_burst lowercase; Track/Tier/Loadout
Unlock unlock.weapon.rail_rifle lowercase; Progression/Validator
Mastery track mastery.assault_rifle Definition↔Perk↔Progression exakt gleich
Effect effect.chain_lightning deklarativ; Runtime-Resolver fehlt
Power-up powerup_overcharged_rounds runlokaler Catalog, physischer Drop, Replay und State-Hash
Room template combat_small_example_01 lowercase snake_case; Catalog/Seed-Auswahl
Runtime encounter encounter-{roomId} pro generiertem Raum
Run session run_<suffix> Nakama generiert; Storage key
Hub hub_local_001, Shared social-hub-main-v1 Registry vs. HubDefinition nicht verwechseln
Run mode official, fun, community RunRules; noch nicht end-to-end

Erlaubte Zeichen werden nicht überall zentral validiert. Persistente IDs deshalb auf lowercase ASCII [a-z0-9._-] beschränken. Umbenennung bricht Saves, Loadouts, Replays und Storage; es gibt keine Alias-/Migrationsschicht. Version ist ein separates Feld, nicht Teil jeder ID.

Zentrale EventBus-Events

  • Scene: SceneTransitionStartedEvent, Progress, Completed, Failed.
  • Network: ConnectedToServerEvent, GameServerConnectionFailedEvent, GameServerDisconnectedEvent, PeerConnected/Disconnected.
  • Online: AuthStateChangedEvent, HubJoined/Left/Presence, SocketConnectionChanged, UserProfileChanged.
  • Gameplay: PlayerMovedEvent, PlayerStateChangedEvent, PlayerInteractionPromptChangedEvent, TerminalInteractionRequestedEvent.
  • Hub: HubRemotePlayerUpsertedEvent, Moved, Removed, HubLocalPlayerAuthoritySnapshotEvent.
  • Dungeon: DungeonObjectiveProgressChangedEvent, DungeonObjectivesCompletedEvent, DungeonExitUnlockedEvent.
  • Chat: ChannelJoined/Left/Updated, HistoryLoaded, MessageReceived, PresenceChanged.

Publisher/Subscriber müssen Thread-/Godot-Mainloop berücksichtigen; UI-Updates häufig über Callable.CallDeferred. Subscribe in Inject/Ready und Unsubscribe in ExitTree. Events sind keine Persistenz und kein Netzwerkvertrag.

Godot-Signals

Wichtige C#-Events: Player HealthChanged/Died, DungeonStartTerminal Activated, DungeonEnemy3D Died, DungeonChest3D Looted, RoomTracker CurrentRoomChanged, Encounter/Room Completed, Godot Area BodyEntered sowie Button/LineEdit-Signals. Handler genau einmal binden und lösen.

Verwandt: Services, Replay, Konventionen.