Slash commands

/bot

Manage your owned companion bots.

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
/bot 500 200 Implemented
/bot create 501 200 Implemented
/bot customize 502 200 Disabled — handler reports unavailable
/bot help 507 200 Implemented
/bot inv 505 200 Implemented
/bot list 504 200 Implemented
/bot settings 506 200 Implemented
/bot spawn 503 200 Implemented

Manage your owned companion bots.

Implementation: Implemented.

Syntax

/bot [action] [bot_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 action text See the actions and registered subcommands below.
1 bot_id integer Owned bot index from /bot list, where the action accepts an ID.

Behavior and restrictions

  • The dispatcher checks the local command registration before bot access rules are evaluated. BotAccess additionally controls ownership and permitted lifecycle actions.

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

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

if (sep && sep->IsSet(0)) {
if (client->GetPlayer()->GetTarget() && client->GetPlayer()->GetTarget()->IsEntity() && client->GetPlayer()->GetTarget()->Alive()) {
if (!client->GetPlayer()->GetTarget() || !client->GetPlayer()->GetTarget()->IsEntity()) {
if (sep->IsSet(1) && strncasecmp("group", sep->arg[1], 5) == 0) {

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

You must target a bot
You must give the id (from /bot list) to delete a bot
You must give the id (from /bot list) to have a bot follow you
You must give the id (from /bot list) to stop a following bot
You must target a bot.
/bot inv [give/list/remove] - manage bot equipment, for remove a slot must be provided

Permissions

Local database snapshot, October 6, 2026: /bot requires status 200 (handler 500). 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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot create

Recruit a companion through the guided flow or direct numeric form.

Implementation: Implemented.

Syntax

/bot create
/bot create <race_id> <gender_id> <class_id> <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 race_id integer Direct form: argument 0 after create is removed.
1 gender_id integer Direct form: argument 1.
2 class_id integer Direct form: argument 2.
3 name text Direct form: argument 3; normalized before recruitment.

Behavior and restrictions

  • Bare /bot create opens guided recruitment. The direct form creates and activates the bot, which becomes visible and follows you.
  • The ui form is an internal guided-recruiter callback. BotLifecycle enforces access, ownership limits and recruitment validation.
  • BotAccessPolicy requires Bots.Enabled and ownership checks even with GM bypass. Recruitment mode may deny direct recruitment or require a Lua recruiter. Owned/active limits apply; active capacity is capped at five bots and the group at six members.
  • BotLifecycle accepts supported playable races and final adventure classes, gender 0/1, and a name that passes the database name filter (4..15 letters). Missing appearance, duplicate name, access denial, capacity or database creation failure prevents activation.

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

if (sep && sep->IsSet(0) && strcasecmp(sep->arg[0], "ui") == 0) {
if (!sep || !sep->IsSet(0)) {
if (!sep->GetInt(0, race_value) || !sep->GetInt(1, gender_value) || !sep->GetInt(2, class_value) || !sep->IsSet(3)) {

Permissions

Local database snapshot, October 6, 2026: /bot create requires status 200 (handler 501). 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

/bot create

Source-checked forms; not executed against a live world.

Source evidence

Dispatch: COMMAND_BOT_CREATE (handler 501).

  • WorldServer/Commands/Commands.cpp:6365 — COMMAND_BOT_CREATE.
  • WorldServer/Bots/BotCommands.cpp:375 — Command_Bot_Create.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot customize

Registered bot customize entry; disabled — handler reports unavailable.

Implementation: Disabled — handler reports unavailable.

Syntax

/bot customize (registration only; working syntax unavailable)

Arguments

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

Behavior and restrictions

  • The active path is explicitly disabled/unavailable and returns a message or help. Historical syntax is not a working interface.

Permissions

Local database snapshot, October 6, 2026: /bot customize requires status 200 (handler 502). 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

Dispatch: COMMAND_BOT_CUSTOMIZE (handler 502).

  • WorldServer/Commands/Commands.cpp:6366 — COMMAND_BOT_CUSTOMIZE.
  • WorldServer/Bots/BotCommands.cpp:623 — Command_Bot_Customize.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot help

Show bot help or race/class IDs.

Implementation: Implemented.

Syntax

/bot help [race|class]

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 topic text Optional race or class ID list.

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 && sep->IsSet(0)) {

Permissions

Local database snapshot, October 6, 2026: /bot help requires status 200 (handler 507). 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_BOT_HELP (handler 507).

  • WorldServer/Commands/Commands.cpp:6371 — COMMAND_BOT_HELP.
  • WorldServer/Bots/BotCommands.cpp:921 — Command_Bot_Help.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot inv

Manage equipment on a selected owned bot.

Implementation: Implemented.

Syntax

/bot inv give
/bot inv list
/bot inv remove <slot>

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 action text give opens a trade; list shows equipment; remove offers the equipment slot back in a trade.
1 slot integer Required only for remove; bot equipment slot.

Behavior and restrictions

  • Requires your own bot target. Existing trades, ownership and slot validity are checked. The old /bot give and /bot remove spellings in the inventory notes omit inv.

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

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

if (sep && sep->IsSet(0)) {
if (client->GetPlayer()->GetTarget() && client->GetPlayer()->GetTarget()->IsEntity() && client->GetPlayer()->GetTarget()->Alive()) {
if (!client->GetPlayer()->GetTarget() || !client->GetPlayer()->GetTarget()->IsEntity()) {
if (sep->IsSet(1) && strncasecmp("group", sep->arg[1], 5) == 0) {

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

You must target a bot
You must target a bot.
You must give the id (from /bot list) to delete a bot
You must give the id (from /bot list) to have a bot follow you
You must give the id (from /bot list) to stop a following bot
/bot inv [give/list/remove] - manage bot equipment, for remove a slot must be provided

Permissions

Local database snapshot, October 6, 2026: /bot inv requires status 200 (handler 505). 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_BOT_INV (handler 505).

  • WorldServer/Commands/Commands.cpp:6369 — COMMAND_BOT_INV.
  • WorldServer/Bots/BotCommands.cpp:774 — Command_Bot_Inv.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot list

List companion bots owned by your character.

Implementation: Implemented.

Syntax

/bot list

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.

Permissions

Local database snapshot, October 6, 2026: /bot list requires status 200 (handler 504). 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_BOT_LIST (handler 504).

  • WorldServer/Commands/Commands.cpp:6368 — COMMAND_BOT_LIST.
  • WorldServer/Bots/BotCommands.cpp:765 — Command_Bot_List.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot settings

Change settings on the selected owned bot.

Implementation: Implemented.

Syntax

/bot settings <helm|hood|cloak|taunt> <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 setting text Appearance or taunt setting.
1 value integer 1 enables; other numeric values disable.

Behavior and restrictions

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

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

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

if (sep && sep->IsSet(0) && sep->GetInt(1, val)) {
if (sep && sep->IsSet(0)) {
if (client->GetPlayer()->GetTarget() && client->GetPlayer()->GetTarget()->IsEntity() && client->GetPlayer()->GetTarget()->Alive()) {
if (!client->GetPlayer()->GetTarget() || !client->GetPlayer()->GetTarget()->IsEntity()) {
if (sep->IsSet(1) && strncasecmp("group", sep->arg[1], 5) == 0) {

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

You must target a bot.
You must target a bot
You must give the id (from /bot list) to delete a bot
You must give the id (from /bot list) to have a bot follow you
You must give the id (from /bot list) to stop a following bot
/bot inv [give/list/remove] - manage bot equipment, for remove a slot must be provided

Permissions

Local database snapshot, October 6, 2026: /bot settings requires status 200 (handler 506). 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_BOT_SETTINGS (handler 506).

  • WorldServer/Commands/Commands.cpp:6370 — COMMAND_BOT_SETTINGS.
  • WorldServer/Bots/BotCommands.cpp:880 — Command_Bot_Settings.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot spawn

Activate an owned bot and have it follow you.

Implementation: Implemented.

Syntax

/bot spawn <bot_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 bot_id integer Owned bot index from /bot list.

Behavior and restrictions

  • BotLifecycle validates access, ownership and activation limits. Activation is not the same action as inviting the bot to a group.

Permissions

Local database snapshot, October 6, 2026: /bot spawn requires status 200 (handler 503). 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_BOT_SPAWN (handler 503).

  • WorldServer/Commands/Commands.cpp:6367 — COMMAND_BOT_SPAWN.
  • WorldServer/Bots/BotCommands.cpp:659 — Command_Bot_Spawn.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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

Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.

/bot invite

Invite an active owned bot to your group.

Implementation: Implemented.

Syntax

/bot invite [bot_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 action text invite
1 bot_id integer Optional; otherwise selects your owned bot target.

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot hold

Pause your active companions.

Implementation: Implemented.

Syntax

/bot hold

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 action text hold

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot resume

Resume your active companions.

Implementation: Implemented.

Syntax

/bot resume

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 action text resume

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot camp

Despawn an owned bot and remove it from the group.

Implementation: Implemented.

Syntax

/bot camp [bot_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 action text camp
1 bot_id integer Optional active bot ID; otherwise uses your bot target.

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot attack

Command your grouped bots to attack your selected target.

Implementation: Implemented.

Syntax

/bot attack

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 action text attack

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot spells

Inspect the selected bot’s spell list.

Implementation: Implemented.

Syntax

/bot spells

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 action text spells

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot maintank

Set the selected group member as the bots’ main tank.

Implementation: Implemented.

Syntax

/bot maintank

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 action text maintank

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot delete

Delete an owned bot from the database.

Implementation: Implemented.

Syntax

/bot delete <bot_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 action text delete
1 bot_id integer Owned bot ID.

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot follow

Order an active bot to follow you.

Implementation: Implemented.

Syntax

/bot follow <bot_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 action text follow
1 bot_id integer Active bot ID.

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot stopfollow

Stop an active bot from following you.

Implementation: Implemented.

Syntax

/bot stopfollow <bot_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 action text stopfollow
1 bot_id integer Active bot ID.

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.

/bot summon

Summon your selected bot or grouped bots.

Implementation: Implemented.

Syntax

/bot summon [group]

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 action text summon
1 scope text group summons your grouped bots; otherwise target is used.

Behavior and restrictions

  • Handled inside /bot; inherits its registration permission and the bot access checks.

Permissions

Internal action: inherits the /bot registration requirement of status 200. No separate database subcommand row exists for this action.

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_BOT (handler 500).

  • WorldServer/Commands/Commands.cpp:6364 — COMMAND_BOT.
  • WorldServer/Bots/BotCommands.cpp:51 — Command_Bot.
  • WorldServer/Bots/BotAccessPolicy.cpp:107 — access, ownership and capacity.
  • WorldServer/Bots/BotLifecycle.cpp:218 — recruitment/activation and name validation.

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.