Module: Executables
Executables: auth and world
auth (src/auth/main.cpp)
The authentication server:
- Initializes logging; loads
authserver.yaml(FIRELANDS_AUTH_CONFIGoverride) - Runs
DatabaseMigratoragainstsql/using the auth JDBC URI - Opens MariaDB; constructs
MySqlAccountRepository,MySqlRealmRepository - Builds
AuthService,RealmListService(optionalRealmLiveRegistrywhen realm-link is configured) - Starts
AsyncNetworkServerfor classic auth clients (AuthSession) - Optionally starts realm-link listener for world population metrics
- Starts
RestAuthServeronNetwork.RestPortwithWebSessionService
Main loop: poll authServer.Update() (and realm-link if enabled).
| Setting | Default |
|---|---|
| Auth TCP | 3724 |
| REST | 8081 |
world (src/world/main.cpp)
The world server:
- Loads
worldserver.yaml(FIRELANDS_WORLD_CONFIG) — exits if missing - Reconfigures logging (file rotation, levels)
- Optionally
RunRealmLinkOutboundwhenRealmLink.Enabled - Initializes
LuaGameScriptHost→WorldService; firesworld_startup - Sets
MapCollisionQueriesStubfromCollision.DataRoot - Migrates DB; connects auth, characters, and world databases
- Wires
AuthService,CharacterService,CommandService,GmTicketService,PlayerCreateInfoService - Starts
AsyncNetworkServeronNetwork.Port(default 8085) - Interactive console via
WorldInteractiveConsole(FTXUI when TTY)
Main loop: worldServer.Update().
FirelandsDevTools (src/tools/)
CLI for accounts and realms — see DevTools. Separate from in-world .account console commands.
Operational flow
Client → auth (SRP-6a, realm list) → world (session crypto, gameplay)
↑
realm-link (optional live population)
- Clients authenticate on auth, then connect to world with session-derived crypto
- Realm-link syncs live realm metrics from world to auth when configured
- Staff commands: GM Commands
Configuration
| File | Executable |
|---|---|
authserver.yaml | auth |
worldserver.yaml | world |
Key world sections: Network, Database.*, Scripting, Data.DbcPath, Collision.DataRoot, Rates, Console, RealmLink.