Game Administration

This guide covers everything needed to run a Conquer 2026 server: registering users, promoting admins, creating game worlds, and managing turns — all through the web UI.

Step 1 — First Admin User

After the server starts for the first time, anyone can register at http://localhost:5174. The first person to register should be the server administrator. After registering, promote that account to admin via the database (one-time bootstrap only):

docker compose exec db psql -U conquer
UPDATE users SET is_admin = true WHERE username = 'yourname';
\q

Once logged in as admin, the Admin button appears in the top-right of the world list. All future admin promotions can be done entirely through the UI.

Only the very first admin requires a database command. Every subsequent admin can be promoted from the Admin Panel → Users tab by any existing admin.

Step 2 — Managing Users

Open the Admin Panel and select the Users tab. You will see every registered account with their status, role, and join date.

ActionButtonEffect
Promote to adminPromoteUser gains access to the Admin Panel
Remove adminDemoteUser loses Admin Panel access; account stays active
Ban a playerBanAccount is deactivated; user cannot log in
Restore accessUnbanRe-activates the account

You cannot promote, demote, or ban your own account. At least one active admin must always exist.

Step 3 — Creating a Game World

  1. In the Admin Panel → Worlds tab, click + New World
  2. Enter a world name (e.g. Alpha) and click Create
  3. The world appears in the list at Turn 0, not yet initialised
  4. Click Initialize Map on the new world. Optionally enter a numeric seed in the seed field for a reproducible map
  5. Map generation runs and produces:
    • A hex grid (default 79 × 49 tiles)
    • Terrain with water, plains, mountains, forests, and deserts
    • 8 NPC nations placed at viable starting locations

Step 4 — Players Joining

Players register their own accounts at the login page. Once logged in they see the world list. To join a world they click Join, choose a nation name and player class. They are placed on the map and can begin submitting orders.

There is no player limit per world. NPC nations fill the map until enough human players join.

Turn Processing

Turns process automatically every 6 hours via the Celery scheduler. You can also trigger a turn manually at any time from the Admin Panel → Worlds tab by clicking Process Turn. The Activity Log on the right shows the result.

MethodHow
AutomaticCelery beat fires every 6 hours; processes all active worlds
Manual (UI)Admin Panel → Worlds → Process Turn button
Manual (API)POST /admin/worlds/{id}/process-turn with Bearer token
Manual (CLI)See Admin API Reference for Celery commands

Maintenance Mode

Toggling maintenance mode on a world blocks all player logins to that world while you make changes. The Celery scheduler skips worlds in maintenance. Toggle it via POST /admin/worlds/{id}/maintenance or directly in the database.

Map Configuration

The default map is 79 × 49 hexes. To customise, pass query parameters to the Initialize Map API call (see Admin API Reference) or edit the defaults in the Admin Panel before initialising.

ParameterDefaultDescription
mapx79Map width in hex columns
mapy49Map height in hex rows
pwater35% of map that becomes ocean
pmount20% of land that becomes mountains
npc_count8Number of NPC nations to generate
seedrandomInteger seed for reproducible maps

Backing Up Game Data

# Dump the database
docker compose exec db pg_dump -U conquer conquer > backup.sql

# Restore
cat backup.sql | docker compose exec -T db psql -U conquer conquer

Quick-Start Checklist

  1. Run docker compose up --build
  2. Run docker compose exec backend alembic upgrade head
  3. Register your account at localhost:5174
  4. Promote yourself: UPDATE users SET is_admin = true WHERE username = 'you';
  5. Open Admin Panel → create a world → Initialize Map
  6. Share the URL with players and let them register and join
  7. Process the first turn manually or wait for the scheduler