Slash commands

/zone

Travel to a zone or search available zones.

Implemented (subcommands have their own status) · Source comparison: October 6, 2026.

Reviewed October 6, 2026. This page covers the root, registered subcommands and documented internal actions.

Registration permissions

Registration Handler Required status (local DB, Oct 6) Implementation
/zone 20 200 Implemented
/zone details 238 200 Implemented
/zone revive 192 100 Unsupported — no active handler
/zone safe 191 100 Implemented
/zone set 237 100 Implemented
/zone shutdown 190 100 Unsupported — no active handler

Travel to a zone or search available zones.

Implementation: Implemented.

Syntax

/zone <zone_name|zone_id>
/zone <zone_name|zone_id> <unused_token> <duplicate_id>
/zone instance <instance_id>
/zone list [partial_name]
/zone active
/zone <lock|unlock> <zone_name|zone_id> [duplicate_id]

Arguments

Position is zero-based in sep, after a registered database subcommand has been removed. Internal action tokens remain at position 0. Angle brackets are required; square brackets are optional. Alternative forms may change field meanings.

Position Argument Accepted value / type Meaning
0 zone text or integer Zone selector or list keyword.
1 selector text or integer Name search or instance selection.
2 extra integer Additional zone-selection field where supported.

Behavior and restrictions

  • Normal travel checks zone existence and access, and refuses an already-current zone. The duplicate ID in normal travel is argument 2, not argument 1.
  • instance resolves an existing instance. lock/unlock require a running zone and only change runtime lock state. list without a search prints syntax; active lists running zones.

Current argument/client/target checks (exact source excerpts; branch-dependent):

if(sep->IsNumber(1))
if(sep->IsNumber(1)) {
if(sep->IsNumber(2) && zone_list.GetDuplicateZoneDetails(&zone_details, "", atoul(sep->arg[1]), atoul(sep->arg[2]))) {
if(sep->IsNumber(2) && zone_list.GetDuplicateZoneDetails(&zone_details, std::string(sep->arg[1]), 0, atoul(sep->arg[2]))) {
if(sep->IsNumber(0))
if(sep->IsNumber(2) && zone_list.GetDuplicateZoneDetails(&zone_details, zone, 0, atoul(sep->arg[2]))) {

Handler failure/help feedback (sent to the player or logged; % fields are formatted at runtime):

Error: Zone '%s' not found.  To get a list type /zone list

Permissions

Local database snapshot, October 6, 2026: /zone requires status 200 (handler 20). Other worlds may configure different values.

The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.

Examples

The syntax forms above are the source-based invocation examples. Replace identifiers with values valid for your world; client callback fields are supplied by the game client.

Source evidence

Dispatch: COMMAND_ZONE (handler 20).

  • WorldServer/Commands/Commands.cpp:4081 — COMMAND_ZONE.

Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.

No upstream Markdown file exists for this registration in the retrieved revision.

/zone details

Inspect database zone details.

Implementation: Implemented.

Syntax

/zone details <zone_id|zone_name>

Arguments

Position is zero-based in sep, after a registered database subcommand has been removed. Internal action tokens remain at position 0. Angle brackets are required; square brackets are optional. Alternative forms may change field meanings.

Position Argument Accepted value / type Meaning
0 zone integer or remaining text Zone selector.

Behavior and restrictions

The active handler performs the operation described above after the registration permission check.

Current argument/client/target checks (exact source excerpts; branch-dependent):

if (sep->IsNumber(0))

Permissions

Local database snapshot, October 6, 2026: /zone details requires status 200 (handler 238). Other worlds may configure different values.

The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.

Examples

The syntax forms above are the source-based invocation examples. Replace identifiers with values valid for your world; client callback fields are supplied by the game client.

Source evidence

Dispatch: COMMAND_ZONE_DETAILS (handler 238).

  • WorldServer/Commands/Commands.cpp:6216 — COMMAND_ZONE_DETAILS.
  • WorldServer/Commands/Commands.cpp:12687 — Command_ZoneDetails.

Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.

No upstream Markdown file exists for this registration in the retrieved revision.

/zone revive

Registered zone revive entry; unsupported — no active handler.

Implementation: Unsupported — no active handler.

Syntax

/zone revive (registration only; working syntax unavailable)

Arguments

Working arguments are unavailable. Do not treat historical arguments as supported.

Behavior and restrictions

  • This registration has no active case in the reviewed dispatch switch. It falls through to the Unhandled command log. No working arguments, target behavior or persistence can be established.

Permissions

Local database snapshot, October 6, 2026: /zone revive requires status 100 (handler 192). Other worlds may configure different values.

The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.

Examples

No working example is published for this status.

Source evidence

No active dispatch case for handler 192. Checked WorldServer/Commands/Commands.cpp:2280 (complete switch), its default at line 6452, and handler definitions in Commands.h.

Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.

No upstream Markdown file exists for this registration in the retrieved revision.

/zone safe

Set the current zone’s safe coordinates to your current position.

Implementation: Implemented.

Syntax

/zone safe

Arguments

No manual arguments are used by this operation.

Behavior and restrictions

The active handler performs the operation described above after the registration permission check.

Persistence evidence in the active path: database.SaveZoneSafeCoords. Each call is subject to its surrounding validation; not every branch saves.

Permissions

Local database snapshot, October 6, 2026: /zone safe requires status 100 (handler 191). Other worlds may configure different values.

The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.

Examples

The syntax forms above are the source-based invocation examples. Replace identifiers with values valid for your world; client callback fields are supplied by the game client.

Source evidence

Dispatch: COMMAND_ZONE_SAFE (handler 191).

  • WorldServer/Commands/Commands.cpp:6226 — COMMAND_ZONE_SAFE.
  • WorldServer/Commands/Commands.cpp:12655 — Command_ZoneSafeCoords.

Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.

No upstream Markdown file exists for this registration in the retrieved revision.

/zone set

Edit a database zone attribute.

Implementation: Implemented.

Syntax

/zone set <zone_id|zone_name> <attribute> <value>

Arguments

Position is zero-based in sep, after a registered database subcommand has been removed. Internal action tokens remain at position 0. Angle brackets are required; square brackets are optional. Alternative forms may change field meanings.

Position Argument Accepted value / type Meaning
0 zone integer or text Quote a multiword zone name.
1 attribute text Attribute from the current zone-set mappings.
2 value text New attribute value.

Behavior and restrictions

  • The page includes the source-supported attribute names and evidence.

Persistence evidence in the active path: database.SaveZoneInfo. Each call is subject to its surrounding validation; not every branch saves.

Current argument/client/target checks (exact source excerpts; branch-dependent):

if (sep->IsNumber(0) && atoi(sep->arg[0]) > 0)

Accepted attribute names in the current constructor mapping:

expansion_id, name, file, description, safe_x, safe_y, safe_z, underworld, min_recommended, max_recommended, zone_type, always_loaded, city_zone, weather_allowed, min_status, min_level, start_zone, instance_type, default_reenter_time, default_reset_time, default_lockout_time, force_group_to_zone, lua_script, shutdown_timer, zone_motd.

Permissions

Local database snapshot, October 6, 2026: /zone set requires status 100 (handler 237). Other worlds may configure different values.

The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.

Examples

The syntax forms above are the source-based invocation examples. Replace identifiers with values valid for your world; client callback fields are supplied by the game client.

Source evidence

Dispatch: COMMAND_ZONE_SET (handler 237).

  • WorldServer/Commands/Commands.cpp:6215 — COMMAND_ZONE_SET.
  • WorldServer/Commands/Commands.cpp:12728 — Command_ZoneSet.
  • WorldServer/Commands/Commands.cpp:2056 — SetZoneCommand.

Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.

No upstream Markdown file exists for this registration in the retrieved revision.

/zone shutdown

Registered zone shutdown entry; unsupported — no active handler.

Implementation: Unsupported — no active handler.

Syntax

/zone shutdown (registration only; working syntax unavailable)

Arguments

Working arguments are unavailable. Do not treat historical arguments as supported.

Behavior and restrictions

  • This registration has no active case in the reviewed dispatch switch. It falls through to the Unhandled command log. No working arguments, target behavior or persistence can be established.

Permissions

Local database snapshot, October 6, 2026: /zone shutdown requires status 100 (handler 190). Other worlds may configure different values.

The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.

Examples

No working example is published for this status.

Source evidence

No active dispatch case for handler 190. Checked WorldServer/Commands/Commands.cpp:2280 (complete switch), its default at line 6452, and handler definitions in Commands.h.

Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.

No upstream Markdown file exists for this registration in the retrieved revision.

Permissions are from a read-only snapshot of the configured local world database on October 6, 2026; deployed worlds may differ. Argument and behavior evidence comes from the reviewed WorldServer checkout. Examples were checked against source and were not executed in a live world.