Staff and the admin console
Staff run the server from Admin in the account menu. It needs accounts
(XMAGE_AUTH=true), and each staff member signs in with their own.
Roles
| Role | Can |
|---|---|
| Moderator | See who is online, mute and sign players out, watch any running game, work through reports and client errors, and read the audit log and server stats. |
| Admin | Also lock and deactivate accounts, remove tables, broadcast, decide who can register (Access), change Settings, and see Single player and Updates. |
| Owner | Also give and take staff roles, plan maintenance, add and remove content packs, and update or roll back the server. |
The account named in XMAGE_OWNER is always an owner. Give the other roles from the
Staff tab. Roles are checked on every action, so taking one away works at once.
Console sign-in
When no owner can sign in, Console sign-in at the bottom of /admin opens the
console as an owner with XMAGE_ADMIN_PASSWORD. It's a break-glass key: once staff have roles you
can leave the password empty, which turns console sign-in off.
Maintenance
Owners announce maintenance from Settings, now or up to a day ahead, with a message. From then on no new tables start, and everyone online is warned again 30, 10, 5 and 1 minutes before. With restart checked, the server restarts once the time has come and no game is running. The Update button does this for you during an update.
Single player
The Single player tab shows the batch runner, which plays the AI-against-AI games players queue to test decks: what's playing, each player's daily quota and the queue, with a button to stop a batch. How many batch games run at once (default 1, and 0 stops the runner) and how many each player gets a day (default 200) are in Settings.
The same tab lists content packs: campaigns, puzzles, weekly challenges and opponents added
without a new build. A pack is a zip with pack.json and its decks under decks/.
Owners upload one there, or put the folder in db/content-packs/ and press Reload.
A pack with problems stays out and says why. Packs are in the nightly backup.
Progression
Every counted game gives the players in it XP, whether it's against the AI, people, a pod or an event: once
per game, nothing for a game that ends before turn 3, and nothing more between the same two people after five
games together in a day. Coins come from the daily wins ladder. The numbers are in
career/rewards.json; Settings scales all XP and all coins with two percentages
(default 100, 0 to 500). Practice games and test mode pay nothing. Events pay Career packs by record when at
least one other person played.
An account's page in Accounts shows its level, XP and coins, its last 50 counted games with what each paid and why, and who it hit the daily cap with. Admins can take back what a game paid, with a reason for the audit log; quests and achievements it finished stay.
What players can earn is in two files: career/cosmetics.json, the catalog of every cosmetic
(avatars, titles, frames, sleeves, playmats, companions, emotes, arrows, sparks, stamps, land styles), and
career/achievements.json, where most achievements have bronze, silver, gold and mythic tiers. A
test checks that every cosmetic comes from somewhere. A land style with a set shows that set's
full-art basics from Scryfall; one without a set uses Playmat's own painted cards, so it needs art for all
five basics. The first start after updating credits players with the
games the server's table records already show, once, so long-time players don't start from zero. Quick emotes
in matches are limited to one every few seconds, and players can mute their opponents'.
See the full
reference.
The audit log
Every staff action that changes something goes in the Audit tab, with who did it and the reason they gave: mutes, locks, role changes, maintenance, updates, rollbacks and progression taken back.
Accounts, reports, feedback, client errors and the support ledger are described in the deployment guide.