Namespace FishMMO.Server.Implementation.World.SceneServer
Namespaces
Classes
- AchievementSystem
Manages server-side achievement tracking, updates, and completion rewards for player characters. Game logic and Broadcasts run synchronously on the main thread. Database persistence is fire-and-forget async to avoid blocking the main thread.
- CharacterInventorySystem
Manages player character inventory, equipment, and bank operations with validation and database persistence.
- CharacterInventorySystemMainThreadQueueData
Concrete main-thread queue data container for CharacterInventorySystem. Inherits thread-safe Queue + lock infrastructure from SystemMainThreadQueueData.
- CharacterInventorySystemRuntimeData
Runtime data container for character inventory ingress protection.
- CharacterMappingData
Runtime data container for character-to-connection mappings and character lookups. Manages all character session state separately from CharacterSystem logic.
- CharacterSystem
Instance management: reporting who is in an instance and how long it has left, letting the party leader remove somebody from it, and letting them hide the run from the dungeon finder.
- ChatSystem
Manages all chat functionality including public, party, guild, whisper, and system messages with rate limiting and spam protection. Game logic and Broadcasts run synchronously on the main thread. Database operations are fire-and-forget async to avoid blocking the main thread. Results from async DB queries that require main-thread Broadcasts are marshalled via IChatSystemMainThreadQueueData.
- ChatSystemMainThreadQueueData
Concrete main-thread queue data container for ChatSystem. Inherits thread-safe Queue + lock infrastructure from SystemMainThreadQueueData.
- ChatSystemRuntimeData
Runtime data container for chat message synchronization state. Manages chat database polling state separately from ChatSystem logic.
- FriendSystem
Manages player friend lists, including adding and removing friends with validation and database persistence. Game logic and Broadcasts run synchronously on the main thread. Database operations are fire-and-forget async to avoid blocking the main thread. Results from async DB queries that require main-thread Broadcasts are marshalled via IFriendSystemMainThreadQueueData.
- FriendSystemMainThreadQueueData
Concrete main-thread queue data container for FriendSystem. Inherits thread-safe Queue + lock infrastructure from SystemMainThreadQueueData.
- FriendSystemRuntimeData
Runtime data container for friend ingress protection.
- GuildCharacterMappingData
Runtime data container for guild member and character tracking. Manages guild membership lookups separately from GuildSystem logic.
- GuildRules
The guild permission rules, as pure functions of a resolved standing.
- GuildSystem
Guild permission resolution: the single place the server decides what a character may do in a guild, and the lazy migration that gives a pre-permissions guild its rank ladder.
- GuildSystemMainThreadQueueData
Concrete main-thread queue data container for GuildSystem. Inherits thread-safe Queue + lock infrastructure from SystemMainThreadQueueData.
- GuildSystemRuntimeData
Runtime data container for guild system state. Manages guild invitations and database synchronization state separately from GuildSystem logic.
- HotkeySystem
Manages player hotkey configurations, allowing clients to set and update hotkey bindings for abilities and items.
- HotkeySystemRuntimeData
Runtime data container for hotkey ingress protection and pending hotkey persistence.
- ItemContainerMapping
Translates between the gameplay container enum and the persistence one.
- NamingSystem
Provides name resolution services for game entities, resolving names by ID for characters and guilds. Game logic and Broadcasts run synchronously on the main thread. Database lookups are async to avoid blocking the main thread. Results from async DB queries are marshalled back via INamingSystemMainThreadQueueData.
- NamingSystemMainThreadQueueData
Concrete main-thread queue data container for NamingSystem. Inherits thread-safe Queue + lock infrastructure from SystemMainThreadQueueData.
- NamingSystemMappingData
Mapping data container for naming caches. Provides TTL-friendly O(1) touch caches for direct and reverse lookups.
- NamingSystemRuntimeData
Runtime data container for naming request in-flight gates and debounce tracking.
- PartyCharacterMappingData
Runtime data container for party member and character tracking. Manages party membership lookups separately from PartySystem logic.
- PartyCombatMeterData
Runtime data container holding per-encounter damage and healing meters.
- PartySystem
Manages party creation, invitations, membership, and updates for the MMO server. Handles party broadcasts, chat commands, and synchronizes party state with the database. Game logic and Broadcasts run synchronously on the main thread. Database operations are async to avoid blocking the main thread. Results from async DB queries that require main-thread state changes or Broadcasts are marshalled via IPartySystemMainThreadQueueData.
- PartySystemMainThreadQueueData
Concrete main-thread queue data container for PartySystem. Inherits thread-safe Queue + lock infrastructure from SystemMainThreadQueueData.
- PartySystemRuntimeData
Runtime data container for party system state. Manages party invitations and database synchronization state separately from PartySystem logic.
- PetSystem
Manages pet-related server logic, including pet summoning, following, staying, releasing, and persistence. Handles pet broadcasts, character events, and pet AI initialization for player characters. Game logic and Broadcasts run synchronously on the main thread. Database operations are async to avoid blocking the main thread. Results from async DB queries that require main-thread state changes or Broadcasts are marshalled via IPetSystemMainThreadQueueData.
- PetSystemMainThreadQueueData
Concrete main-thread queue data container for PetSystem. Inherits thread-safe Queue + lock infrastructure from SystemMainThreadQueueData.
- PetSystemRuntimeData
Runtime data container for pet ingress protection.
- QuestSystem
Manages server-side quest event handling, client synchronisation, reward delivery, auto-progression, and database persistence for player characters. Game logic and broadcasts run synchronously on the main thread. Database persistence is fire-and-forget async via bounded channel workers.
- QuestSystemRuntimeData
Runtime data container for quest system ingress protection.
- SceneChannelSystem
Scene server subsystem that handles channel selection for open world scenes. Provides channel listing (aggregating scene instances across all scene servers on the same world server via database queries) and same-server channel switching.
- SceneChannelSystemMainThreadQueueData
Concrete main-thread action queue data container for the SceneChannelSystem.
- SceneChannelSystemRuntimeData
Runtime data container for the SceneChannelSystem. Holds all mutable state: ingress guard, per-connection cooldowns, and cleanup timers.
- SceneInstanceDetails
Stores details about a scene instance managed by the server, including server IDs, name, handle, type, and character count. Tracks when the last character exited for stale scene detection.
- SceneInstanceMappingData
Runtime data container for scene instance tracking and scene handle management. Manages all scene instance mappings separately from SceneServerSystem logic.
- SceneServerAuthenticator
Scene Server Authenticator using token-based authentication.
- SceneServerPlacementPolicy
Decides how much new scene-load work a scene server takes on, given what it is already hosting.
- SceneServerRuntimeData
Runtime data container for scene server identification and state. Manages scene server operational state separately from SceneServerSystem logic.
- SceneServerSystem
Manages scene server node services, scene loading/unloading, and heartbeat updates to the world server. Tracks scene instances, handles connection events, and synchronizes scene state with the database. Game logic and Broadcasts run synchronously on the main thread. Database operations are async to avoid blocking the main thread. Results from async DB queries that require main-thread state changes are marshalled via ISceneServerSystemMainThreadQueueData.
- SceneServerSystemMainThreadQueueData
Concrete main-thread queue data container for SceneServerSystem. Provides a thread-safe queue for marshalling async DB results back to the main Unity thread.
Structs
- GuildAuthority
One character's authoritative standing in one guild, resolved from the database.
Enums
- GuildActionResult
The outcome of a guild permission decision.