Skip to content

GM Guide

The operator's manual for Game Masters: how GM powers are granted, all GM commands, and how to read and set player progression and combat values.

For how the underlying systems work from a player perspective, see the rest of this wiki. This page covers the admin side.


Becoming a GM

GM powers are gated by an allowlist of character names (Game:GmNames). The flag is re-derived from this list at login — it cannot be set in-game, cannot be persisted from a previous session, and cannot be toggled. Change the allowlist, then disconnect and reconnect.

A non-GM receives I don't recognize that command. for every GM verb — identical to a typo, by design.

Launch method How to set GmNames
Visual Studio launchSettings.jsonGame__GmNames__0
run-local.ps1 -Gm YourName parameter
appsettings / env Game:GmNames array, or PHOENIX_GM_NAMES (comma-separated)

Confirm with /showplayer self (GM-only) or check HELP — the GM help category only appears when gm == 1.


GM command reference

All GM verbs start with /, are case-insensitive, and are gated by GM status. Most act on your current room or yourself unless a player name is specified.

Player management

Command Aliases Description
/showplayer <self\|player> /inspect Full player sheet: level, exp, TP, stats, HP, mana, silver, skills
/set <self\|player> <field> <value> /setplayer Set a player field — see §Set fields below
/award <self\|player> <exp> /grantexp, /giveexp Grant experience (negative removes); runs normal level-up + TP grant
/levelup <self\|player> [n] /advance Advance n levels (default 1; negative de-levels)
/heal <self\|player> /restore, /revive, /raise Fully restore HP + mana, clear all effects/roundtime, raise if dead
/reroll <self\|player> /remake Preview a character re-roll (destructive — see below)
/reroll <self\|player> confirm Execute the re-roll (wipes items + silver, resets to level 1)

Player moderation

Discipline live players. See §Moderation below for the details.

Command Aliases Description
/smite <self\|player> [kill] [reason] /wrath Call down a thunderbolt on any online player from anywhere: bare, it leaves them at 1 HP and prone; kill slays outright through the normal death path
/timeout <player> [minutes] [reason] /jail Confine a disruptive player to the timeout room (a Warded Cell, room 9000, pre-built and pre-wired) — only quiet verbs work until it lifts (default Game:TimeoutDefaultMinutes). Survives a relog. Repoint with /config timeoutroom <vnum>
/free <player> /untimeout, /unjail, /pardon End a time-out early and return the player where they were pulled from
/ban <player> [perm\|Nd\|Nh\|Nm] [reason] Ban an account (default permanent); persisted + enforced at login; an online target is disconnected at once. Refuses you and bootstrap-GM accounts
/unban <player> Lift any ban on an account
/banlist /bans List every account still under a ban (lift time or "permanent", plus reason)
/kick <player> [reason] /disconnect, /boot Drop an online player's connection — no ban, they can reconnect

World/room manipulation

Command Aliases Description
/goto <room vnum> /teleport Teleport yourself to a room (e.g. /goto 1007)
/spawnmob <nameKey> [qty] /spawncreature, /spawnenemy Spawn 1–10 mobs from template into your room
/spawnitem <nameKey> [qty] /spawnobj, /spawn Spawn 1–10 items onto the ground here
/spawnbox [tier] /makebox Spawn a random treasure box (tier 1–10, default 3)
/spawnpick [material] /makepick Spawn a lockpick (copper…starsteel, default steel)
/spawnarmor <slot> [group] /makearmor Spawn wearable armor (slot = head/chest/legs/…; group = cloth…plate)
/deleteobj <name\|id> /delitem, /delobj Delete an object and its contents
/track <item\|guid> /whereis Locate an item: current location, owner, drop history
/dragon /flyover Demand a dragon flyover: a three-beat staged sky event starting within ~20s, seen from outdoor rooms (indoor rooms catch a shadow or sound at most). Natural flights run every 45–100 min of real time — Game:Environment:Dragon
/ferry [go] /ferries, /boat List every timed NPC boat (where she is, seconds to the next leg); /ferry go ends every boat's current leg on the next tick (~10s) so a full crossing demos in under a minute. Ferries are room data (ferry.* vars); kill switch Game:Ferry:Enabled=false
/event [kind\|stop] /events, /sky Status of the sky, or force a world event for a demo: storm, heatwave, coldsnap, meteor, comet, aurora (begins within ~20s, eligibility skipped so it plays under any sky); /event stop ends the active one. Natural events roll on their own — tune live with /config events (on/off) and /config eventgap (mean minutes). Cold snaps slicken ice, meteor showers drop forageable sky-iron, the aurora quickens outdoor recovery

NPC configuration

Command Aliases Description
/makecaster <mob> <words> /spellmob Flag a room mob as a caster with specific incantation
/makevendor <npc> /makeshop Flag an NPC as a general merchant
/makegemshop <npc> /makegemseller Flag an NPC as a gemshop (premium gem pricing)
/makementor <npc> <WORD> /maketeacher Flag an NPC as an element word mentor
/makecleric <npc> /makepriest Flag an NPC as a temple cleric: dead bodies in their room stop decaying and get the paid CONFIRM raise offer (fee = 100 + 30×level silver)

Diagnostics

Command Aliases Description
/debug <guid\|phrase> Dump entity identity, flags, all vars, container slots, scripts (your room only)
/boxes /listboxes Audit all treasure boxes in the world
/afflict <self\|target> <effect> [args] Apply timed effects for testing (see §Afflict below)
/killself /die Run the real death/respawn path on yourself (death-rest + DEPART, the grave-chill, region respawn at half HP)
/regions /region List the realm's regions (anchor, resting place, room count, seams) and which one you stand in

/set — setting player fields

/set uses the real progression helpers so derived values stay consistent. Target is self/me or an online player's name.

/set self level 10
/set self str 90
/set self skill.edged 40
/set self skill.lore.fire 25
/set self profession Wizard
/set self mana.cur 999
/set Nitefallz silver 5000

Field reference

Field Value Notes
level 1–100 Sets exp to that level's threshold; grants all TP up to that level
exp ≥ 0 Sets experience; re-derives level + TP
ptp (tp.physical) ≥ 0 Unspent physical training points
mtp (tp.mental) ≥ 0 Unspent mental training points
silver ≥ 0 Currency
str con dex agi dis aur log int wis inf 1–100 A core stat (value, not bonus). Recomputes mana. Does not retroactively change HP or already-granted TP.
hp.max ≥ 1 Max HP. The fitness cap is 150; /set allows higher for testing.
hp.cur (hp) 1..max Current HP. Won't drop below 1 — use /killself for death.
mana.cur (mana) 0..max Current mana. Raise max first if needed.
skill.<name> ≥ 0 Skill ranks (e.g. skill.edged, skill.lore.fire, skill.harnesspower). skill.harnesspower recomputes mana.
profession profession name Recomputes mana; does not refund spent TP or re-apply race mods.
stance offensive…defensive Combat stance
posture standing/kneeling/sitting/prone Body position

Delta notation

Any numeric field accepts +N or -N to add or subtract instead of setting:

/set bob exp +5000        grant 5000 exp (level-up and TP grant run as normal)
/set self str +5          raise Strength by 5
/set self skill.edged +3  add 3 ranks
/set bob silver -100      confiscate 100 silver

Important constraints

  • HP from CON is creation-time only. Changing CON later will not change HP — use hp.max directly.
  • Max mana is derived. Setting mana.cur only tops up the current pool; to give more capacity, raise level, skill.harnesspower, profession, or the prime stat.
  • Level is derived from exp. A hand-set level var is overwritten on the next exp gain. Set exp to the level's threshold instead.

/afflict — applying test effects

/afflict applies temporary effects without touching base stats. Target is self/me or a living mob in your room (you cannot afflict another player).

/afflict self stun 2              stun yourself for 2 rounds (10 seconds)
/afflict self bleed 5             5 HP per pulse bleed on chest
/afflict self buff as 30 60       +30 AS for 60 seconds
/afflict kobold debuff ds 20 30   −20 DS on the kobold for 30 seconds
/afflict self clear               remove all effects on yourself

Syntax:

Sub-command Args Effect
stun <rounds> rounds × 5s Stun effect
bleed <hp/pulse> HP drained per 6s tick Wound at "chest"
buff <stat> <magnitude> <seconds> stat = as ds str con dex agi dis aur log int wis inf Positive timed modifier
debuff <stat> <magnitude> <seconds> Same (magnitude forced negative) Negative timed modifier
clear Remove all effects on target

Moderation — smite, time-out, ban, kick

Tools for disciplining live players. Unlike /afflict and /heal (which touch only creatures in your room), these reach any online player by name from anywhere. All refuse to act on a fellow GM, and /ban//kick//timeout refuse to act on you.

/smite <self|player> [kill] [reason]

Calls down a pillar of divine fire. Bare, it takes the target to 1 HP and leaves them prone (a scare, not a death). Add kill (or slay/dead) to slay them outright through the normal death path — the grave-chill, chapel respawn, and all. A trailing reason is whispered to them.

/smite Griefer                     thunderbolt — 1 HP, prone
/smite Griefer kill last warning   slay outright, whisper the reason

/timeout <player> [minutes] [reason] — the in-game time-out

Whisks a disruptive player to the timeout room and confines them there. While the sentence runs they can only look, say, check their sheets, and wait — moving, fighting, casting, and everything else is refused. The sentence is stored on the character, so relogging doesn't dodge it, and it self-expires: the moment it's up they're freed in place and can walk out.

  • Default length is Game:TimeoutDefaultMinutes (5). /free <player> (aliases /untimeout, /pardon) ends it early and returns them where they were pulled from.
  • The cell is already built and wired: A Warded Cell (room 9000), a still pocket apart from the world with a single warded door north back to the Town Square (1007), flagged Safe + NoMagic. Game:TimeoutRoom defaults to it — no setup needed. Repoint it at any other room with /config timeoutroom <vnum> if you'd rather.
/timeout Griefer 10 spamming say   ten-minute time-out
/free Griefer                      release early
/config timeoutroom 1099           (optional) use a different cell

/ban, /unban, /banlist — account bans

/ban <player> [duration] [reason] closes the realm to an account. It's persisted (players.banned_until) and enforced at login, so it outlives a restart; an online target is disconnected immediately. Duration is perm (the default when omitted), or Nd / Nh / Nm (days/hours/minutes); a bare number is days. /ban refuses you and any Game:GmNames bootstrap-GM account.

/ban Cheater perm botting          permanent
/ban Griefer 7d spamming           seven days
/unban Griefer                     lift it
/banlist                           who's banned, and why

Temp bans self-clear on the first login attempt after they expire.

/kick <player> [reason] — drop a connection

/kick <player> disconnects an online player without a ban — they can reconnect at once. Use it to break up a scene or bounce a stuck session; reach for /ban when they shouldn't come back.


/reroll — resetting a character

/reroll <player> re-rolls an existing online character: resets them to level 1, wipes all items and silver (a carried pet is spared), and routes them through character creation again. The name is kept.

Two-step: /reroll <player> previews what would be lost. /reroll <player> confirm performs it.

The character stays in the world during re-roll. A disconnect mid-creation rolls back cleanly.


GM recipes

Make a level-10 melee fighter ready to swing:

/set self level 10
/set self str 90
/set self skill.edged 40
/set self skill.dodge 20
/set self hp.max 200
/spawnitem broadsword
Then GET broadsword.

Make a test caster with sufficient casting competence:

/set self profession Wizard
/set self level 10
/set self aur 90
/set self skill.harnesspower 25
/set self skill.lore.fire 25
/showplayer self    (confirm mana max > 0)
INCANT BOLTAR IGNAGA kobold

Test the lockpicking loop:

/spawnbox 6                 tier-6 box (likely locked, likely trapped)
/spawnpick starsteel
/set self skill.lockpicking 30
/set self skill.disarmtraps 30
DISARM box
PICK box
OPEN box
LOOT box
/boxes                      audit all live boxes

Spawn a caster mob:

/spawnmob kobold
/makecaster kobold BOLTAR IGNARA
KILL kobold


Server console keys

When the GameServer runs with a console, single keypresses control the live world:

Key Action
S World entity stats
N NPC vitals (room, drives, behavior)
R Reload scripts
W Dump world snapshot to JSON
P Toggle world clock auto-pulse
M Fire one manual clock pulse
Q Graceful shutdown
H / ? Console help

P then M steps the clock one tick at a time — useful for testing time-of-day events.


Notes and limitations

  • No PvP. Combat cannot target players; only hostile mobs are valid.
  • /afflict cannot target another player (only self or a room mob).
  • gm flag is always re-derived at login — it cannot be set with /set and will not persist.
  • Profession changes via /set recompute mana but do not re-apply race stat mods or refund TP.
  • AS/DS use stat bonuses, not raw values. The combat snapshot converts each raw stat to floor((raw − 50) / 2) before feeding AS/DS, so stat.str = 86 contributes its +18 bonus, not 86. An absent stat reads as a neutral 50 (bonus 0). (Mob offense inputs — STR and weapon ranks — are additionally floored to 6 + level.)
  • GM commands bypass the stun lockout. You can always /heal, /goto, or /set your way out of an uncontrolled test state.