How krilliac/arcanecore works
ArcaneCore is a World of Warcraft 1.12.1 server emulator. The main user workflow is a client connecting to the realm service to authenticate and obtain realm access, then connecting to the world service to play; gameplay is backed by separate auth, character, and world databases. An optional gateway splits world workers and supports character handoff. The README documents the major product capabilities, while sampled source confirms selected session, opcode-registration, and game-system details; unsampled implementation links are omitted where not documented.
Main entry points: OpcodeTable.cs World service · ArcaneCore.Gateway/Program.cs Gateway · ArcaneCore.Realm/Program.cs Realm service · Player.cs Player state
Components 23
Server runtime
- Realm service
src/ArcaneCore.Realm/Program.cs - World service
src/ArcaneCore.World/Handlers/OpcodeTable.cs - World session
src/ArcaneCore.World/Net/WorldSession.cs - Opcode dispatch
src/ArcaneCore.World/Handlers/OpcodeTable.cs
Persistence and content
- Auth database
src/ArcaneCore.Data/Auth/AuthDbContext.cs - Character database
src/ArcaneCore.Data/Characters/CharacterDbContext.cs - World database
src/ArcaneCore.Data/Content/WorldDbContext.cs - Content importer
src/ArcaneCore.Data/Content/Import/Core/ContentScanner.cs
Cluster runtime
- Gateway
src/ArcaneCore.Gateway/Program.cs - Gateway link
src/ArcaneCore.World/Cluster/Gateway/GatewaySessionLinkClient.cs - Cluster protocol
src/ArcaneCore.Cluster.Protocol/GatewayLinkFraming.cs - Character handoff
src/ArcaneCore.Gateway/Handoff/GatewayHandoffService.cs - Transfer service
src/ArcaneCore.Gateway/Transfers/GatewayTransferService.cs
Gameplay systems
- Player state
src/ArcaneCore.Game/Entities/Player.cs - Unit state
src/ArcaneCore.Game/Entities/Unit.cs - Inventory
src/ArcaneCore.Game/Items/PlayerInventory.Storage.cs - Loot rolls
src/ArcaneCore.Game/Loot/LootRollManager.cs - Creature EventAI
src/ArcaneCore.Game/Creatures/AI/EventAi/EventAiEngine.cs - Atlas visualizer
tools/ArcaneCore.Atlas/Server/ServerEngine.cs
Playerbots
- Playerbot behavior
src/ArcaneCore.Playerbots/Chaos/PlayerbotChaosEngine.cs - Bot policy
src/ArcaneCore.Playerbots/Policy/PlayerbotPolicyEngine.cs - Bot chat inference
src/ArcaneCore.Playerbots/Chat/Inference/InProcessChatEngine.cs
Other components
- WoW client
Connections 23
- WoW client → Realm service: authenticates
README.md - Realm service → Auth database: uses
README.md - Realm service → WoW client: offers realm list
README.md - WoW client → World service: plays through
README.md - World service → Auth database: shares auth data
README.md - World service → Character database: persists characters
README.md - World service → World database: loads game content
README.md - World service → Gateway: can split behind
README.md - WoW client → Gateway: connects optionally
README.md - Gateway → Gateway link: forwards sessions
README.md - Gateway link → Cluster protocol: uses framing
- Gateway → Character handoff: coordinates handoff
README.md - Gateway → Transfer service: supports transfers
README.md - Content importer → World database: imports content
README.md - World service → Player state: runs gameplay
README.md - Player state → Unit state: is a unit
src/ArcaneCore.Game/Entities/Unit.cs - Player state → Inventory: owns inventory
src/ArcaneCore.Game/Items/PlayerInventory.Storage.cs - World service → Loot rolls: provides loot
README.md - World service → Creature EventAI: provides creature AI
README.md - World service → Playerbot behavior: hosts bots
README.md - Playerbot behavior → Bot policy: uses policy
- Playerbot behavior → Bot chat inference: can use chat
- Atlas visualizer → World service: visualizes map runtime
README.md