How noscoreio/noscore works
NosCore is a multiplayer game-server emulator. A client session receives game traffic and packet handlers dispatch gameplay requests to domain services that update player and map state and send packets back. The repository also includes game-data parsing, persistent account and world data, login/master coordination, inter-server messaging, and an HTTP API. The README documents the server startup and messaging model; sampled source confirms selected session, combat, inventory, and family interactions. Many listed subsystems were not sampled, so their internal connections are omitted.
Main entry points: NosCore.PacketHandlers Packet handlers · ClientSession.cs Client session · MasterServerBootstrap.cs Master server · MessagingTransport.cs Message transport
Components 22
Game runtime
- Client session
src/NosCore.GameObject/Networking/ClientSession/ClientSession.cs - Packet handlers
src/NosCore.PacketHandlers - Player state
src/NosCore.GameObject/Ecs/PlayerComponentBundle.cs - Map instances
src/NosCore.GameObject/Services/MapInstanceGenerationService/MapInstance.cs
Gameplay domains
- Battle service
src/NosCore.GameObject/Services/BattleService/BattleService.cs - Inventory service
src/NosCore.GameObject/Services/InventoryService/InventoryService.cs - Item generation
src/NosCore.GameObject/Services/ItemGenerationService/ItemGenerationService.cs - Group service
src/NosCore.GameObject/Services/GroupService/Group.cs - Family service
src/NosCore.GameObject/Services/FamilyService - Quest service
src/NosCore.GameObject/Services/QuestService - Bazaar service
src/NosCore.GameObject/Services/BazaarService/BazaarService.cs
Server platform
- Login server
src/NosCore.LoginServer/LoginServerBootstrap.cs - Master server
src/NosCore.MasterServer/MasterServerBootstrap.cs - World server
src/NosCore.WorldServer/WorldServerBootstrap.cs - Inter-server hubs
src/NosCore.GameObject/InterChannelCommunication/Hubs - Auth hub
src/NosCore.GameObject/InterChannelCommunication/Hubs/AuthHub/AuthHub.cs - Message transport
src/NosCore.GameObject/InterChannelCommunication/MessagingTransport.cs
Data platform
- Game-data parser
src/NosCore.Parser/Parser.cs - Account record
src/NosCore.Database/Entities/Account.cs - PostgreSQL
src/NosCore.Database/NosCoreContext.cs
External interfaces
- Web API
src/NosCore.WebApi/Controllers
Other components
- Game client
Connections 19
- Game client → Client session: connects
- Client session → Packet handlers: dispatches packets
src/NosCore.GameObject/Networking/ClientSession/ClientSession.cs - Packet handlers → Family service: updates family
src/NosCore.PacketHandlers/Family/FAuthPacketHandler.cs - Packet handlers → Inter-server hubs: publishes changes
src/NosCore.PacketHandlers/Family/FAuthPacketHandler.cs - Packet handlers → Battle service: uses combat
src/NosCore.PacketHandlers/CharacterScreen/SelectPacketHandler.cs - Packet handlers → Inventory service: uses inventory
src/NosCore.PacketHandlers/CharacterScreen/SelectPacketHandler.cs - Packet handlers → Item generation: generates items
src/NosCore.PacketHandlers/CharacterScreen/SelectPacketHandler.cs - Packet handlers → Group service: uses groups
src/NosCore.PacketHandlers/Group/PjoinPacketHandler.cs - Client session → Player state: holds entity
src/NosCore.GameObject/Networking/ClientSession/ClientSession.cs - Client session → Auth hub: registers session
src/NosCore.GameObject/Networking/ClientSession/ClientSession.cs - Client session → Map instances: runs map executor
src/NosCore.GameObject/Networking/ClientSession/ClientSession.cs - Game-data parser → PostgreSQL: creates database
README.md - Login server → Master server: starts after
README.md - World server → Master server: starts after
README.md - Login server → Message transport: communicates through
README.md - World server → Message transport: communicates through
README.md - Master server → Message transport: communicates through
README.md - Web API → Auth hub: uses auth hub
src/NosCore.WebApi/Controllers/AuthController.cs - Account record → PostgreSQL: stored in
src/NosCore.Database/NosCoreContext.cs