Slash commands

/randomize

Inspect or change randomization flags on a selected NPC.

Implemented · 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
/randomize 239 100 Implemented

Inspect or change randomization flags on a selected NPC.

Implementation: Implemented.

Syntax

/randomize show
/randomize <feature> <0|1>

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 feature text show or a supported randomization feature.
1 enabled integer Required for a feature; 1 enables, 0 disables.

Behavior and restrictions

  • Requires an NPC target.
  • Accepted features: gender, race, model, hair, facial_hair, wing, cheek, chin, ear, eye, eye_brow, lip, nose, eye_color, hair_color1, hair_color2, hair_highlight, facial_hair_color, facial_hair_color_highlight, hair_color, hair_color_highlight, skin_color, wing_color1, wing_color2. The help text advertises legs/wings, but those exact branches are absent. Changes update the NPC definition and database randomization flags.

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

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

if (target->IsNPC())
if (sep && sep->arg[0] && !sep->IsNumber(0))
if (sep->arg[1] && sep->IsNumber(1))

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

You must specify either a 1(on) or 0(off) as the second parameter.
The target you wish to randomize must be an NPC.
You must select the target you wish to randomize.

Permissions

Local database snapshot, October 6, 2026: /randomize requires status 100 (handler 239). 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_RANDOMIZE (handler 239).

  • WorldServer/Commands/Commands.cpp:6249 — COMMAND_RANDOMIZE.
  • WorldServer/Commands/Commands.cpp:9458 — Command_Randomize.

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.