Skip to content

Realms & games

Splintertree separates two concepts the original AzerothCore conflated:

  • Game (cluster.games) — the content silo. Each game has its own DBC bundle, world.* schema scope, base content, patch graph, and visual identity (icon colours, tagline).
  • Realm (auth.realmlist) — the runtime instance the WoW client connects to. Every realm is bound to exactly one game via cluster.realm_game, which also tracks per-realm patch pinning.

/admin/games and /admin/realms give CRUD over both.

Games admin

  • List view with name, slug, base version, current patch version, realm count, patch count, import status.
  • Edit dialog: name, description, slug, target client build, owner account, visibility, base content reference, git sync mode, client build recipe (JSON), per-slot icon colours (primary / secondary / accent), tagline.
  • "Import client" action runs the async base-data extraction (every *.MPQ under the supplied path lands in <base_data>/<game_id>/).
  • Build pipeline: trigger a fresh build, view build-job history, rollback to a previous patch version, git-sync the game's upstream content repo.
  • Per-realm patch pinning surface (which realm runs which patch).

Realms admin

  • auth.realmlist CRUD: name, address, port, icon (PvE/PvP/RP/RP-PvP), timezone (= region/locale code in AC convention), current_phase, flag (0 online, 4 locked, …).
  • Bind / unbind a realm to a game; only one game per realm.
  • Online player count (live read of characters.online).
  • Lock / unlock for maintenance windows.

Auth realmlist endpoint

GET /api/v1/launcher/auth-server returns { host, port } from auth.app_setting.launcher_auth_host / launcher_auth_port. The launcher uses this to write realmlist.wtf into every locale subdirectory in the WoW install before spawning Wow.exe.