Table of Contents

Namespace FishMMO.Server.Implementation.World.SceneServer

Namespaces

FishMMO.Server.Implementation.World.SceneServer.Character
FishMMO.Server.Implementation.World.SceneServer.Interactable

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.