> For the complete documentation index, see [llms.txt](https://axiomemu.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axiomemu.gitbook.io/docs/data/command-xml.md).

# Command.xml

Master registry of every chat command available on the server: the command string the player types, GM-only flag, delay, currency costs, and per-tier enable/level/reset gates.

## File Location

```
Data/Command.xml
```

Loaded once at GameServer startup. Changes require a restart.

## Relationship to Command.dat

* **Command.xml (this file)** - defines which commands exist, their syntax, and common gates (delay, GM flag, coin cost, per-tier enable)
* [**GameServerInfo - Command.dat**](/docs/gameserver/command-dat.md) - defines per-command behavioral tuning (reset cost, master reset caps, reward amounts, marry settings)

Both files are active at the same time. A command must be present and enabled in Command.xml for the player to invoke it at all; once invoked, Command.dat values govern what happens. Disabling a command here turns it off even if the corresponding Command.dat settings are filled in.

## Schema

```xml
<CommandList>
    <Command Index="..." Name="/..." Delay="..." GameMaster="..." WC="..." WP="..." GP="...">
        <Level0 Enable="..." Money="..." MinLevel="..." MaxLevel="..." MinReset="..." MaxReset="..." />
        <Level1 Enable="..." Money="..." MinLevel="..." MaxLevel="..." MinReset="..." MaxReset="..." />
        <Level2 Enable="..." Money="..." MinLevel="..." MaxLevel="..." MinReset="..." MaxReset="..." />
        <Level3 Enable="..." Money="..." MinLevel="..." MaxLevel="..." MinReset="..." MaxReset="..." />
    </Command>
</CommandList>
```

### Command attributes

| Attribute    | Type    | Effect                                                                                                                                                                                                                    |
| ------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Index`      | int     | Unique command ID. Internal; must not collide                                                                                                                                                                             |
| `Name`       | string  | The exact string players type, including the leading `/`. Case-insensitive at match time                                                                                                                                  |
| `Delay`      | seconds | Cooldown between uses. `0` = no cooldown                                                                                                                                                                                  |
| `GameMaster` | int     | Minimum GM authority level required. `0` = anyone; `1`+ requires a matching entry in [GameMaster.xml](/docs/data/experiencetable/gamemaster.md) with `Level` at least this value. Shipped template uses `0`, `1`, and `2` |
| `WC`         | int     | WCoin (C) cost per use, deducted on success                                                                                                                                                                               |
| `WP`         | int     | WCoin (P) cost per use, deducted on success                                                                                                                                                                               |
| `GP`         | int     | Goblin Point cost per use, deducted on success                                                                                                                                                                            |

Coins (`WC`/`WP`/`GP`) are single values, not per-tier. If any coin cost is non-zero the server first sends a confirmation prompt; the second identical invocation completes the command and only then deducts the coins (and `Money`). Failed commands (for example `/move` with a bad map name) charge nothing.

### Per-tier Level0-3 attributes

Account Level tiers follow the same mapping as elsewhere: `Level0` = free, `Level1-3` = VIP tiers. See [Account Level](/docs/gameserver/common-dat.md#account-level-al0-al3).

| Attribute  | Type   | Effect                                                                               |
| ---------- | ------ | ------------------------------------------------------------------------------------ |
| `Enable`   | 0 or 1 | `1` lets this tier use the command. `0` silently rejects the command with no message |
| `Money`    | zen    | Zen cost per use for this tier. Deducted only on a successful invocation             |
| `MinLevel` | int    | Minimum character level. `0` = no minimum                                            |
| `MaxLevel` | int    | Maximum character level. `0` = no maximum                                            |
| `MinReset` | int    | Minimum reset count. `0` = no minimum                                                |
| `MaxReset` | int    | Maximum reset count. `0` = no maximum                                                |

Gate evaluation is AND: the character must meet every filled gate for their tier. Gates are checked in this order: `Enable` -> `Money` balance -> trade window check -> `MinLevel` -> `MaxLevel` -> `MinReset` -> `MaxReset` -> `Delay` cooldown -> `GameMaster` level -> coin balance (WC/WP/GP). The first failing gate emits a notice and aborts.

## Shipped Commands

The shipped `Command.xml` defines 85+ entries (Index `0` through `85`). They fall into these groups:

| Group                  | Examples                                                                                                                                                                                                                                            |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Movement               | `/move`, `/moveall`, `/moveguild`, `/gmmove`, `/pack`, `/unpack`                                                                                                                                                                                    |
| Stat points            | `/addstr`, `/addagi`, `/addvit`, `/addene`, `/addcmd`                                                                                                                                                                                               |
| Character              | `/evo`, `/classe`, `/info`, `/readd`, `/remaster`, `/resp`, `/re`, `/rei`                                                                                                                                                                           |
| Currency / items       | `/zen`, `/setmoney`, `/setcoin`, `/make`, `/makeset`, `/drop`, `/dropbag`, `/clearinv`, `/presente`, `/pick`                                                                                                                                        |
| PK / PvP               | `/pk`, `/attack`, `/offattack` (also triggered by the MuHelper *OffLine* checkbox - see [Common.dat -> MuHelper Offline Bridge](/docs/gameserver/common-dat.md#muhelper-offline-bridge)), `/offpvp`, `/store`, `/offstore`                          |
| Warehouse              | `/bau`, `/abrirbau`                                                                                                                                                                                                                                 |
| Rename / self-service  | `/mudarnome`, `/lock`, `/unlock`, `/set`, `/setlvl`                                                                                                                                                                                                 |
| GM utilities           | `/banacc`, `/banchar`, `/disconnect`, `/gmpost`, `/notice`, `/hide`, `/track`, `/trace`, `/skin`, `/veloz`, `/spot`, `/reload`, `/setvip`, `/fireworks`                                                                                             |
| Reward broadcasts (GM) | `/premiar`, `/premiarall` (dispatched to the `CommandReward` / `CommandRewardAll` handlers - see [Command.dat](/docs/gameserver/command-dat.md#reward-command-reward))                                                                              |
| Events (GM start)      | `/abrirevento`, `/escesc`, `/matamata`, `/pegapega`, `/roletarussa`, `/startbc`, `/startds`, `/startcc`, `/startit`, `/starttvt`, `/startquiz`, `/startdrop`, `/startking`, `/startinvasion`, `/startarena`, `/startgvg`, `/pvp`, `/war`, `/soccer` |
| Events (player join)   | `/participar`, `/queroir`                                                                                                                                                                                                                           |
| Marriage               | `/marry`                                                                                                                                                                                                                                            |
| Help / misc            | `/ajuda`, `/top`, `/quest`                                                                                                                                                                                                                          |

The template ships with `/post` (Index `1`), `/reset` (Index `11`), and `/mreset` (Index `22`) commented out. Uncomment them (or remove the XML comments) to enable the native handlers; otherwise loaded plugins own those invocations. See [Plugin Overrides](#plugin-overrides).

Comment out a `<Command>` block to remove a command without deleting its entry.

{% hint style="info" %}
A command's `Index` must be unique and stable. Don't change it on a live server; saved data and plugins may reference it.
{% endhint %}

## Plugin Overrides

Some commands are owned by plugins instead of the native `CommandManager` dispatch:

| Command                      | Handled by                                                     | Behavior                                                                                                                                                                                                                                                               |
| ---------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/reset`, `/mreset`          | ResetSystem plugin (`Data/Plugins/Characters/ResetSystem.xml`) | When the plugin is loaded, it owns these commands. The shipped `Command.xml` leaves Index `11` (`/reset`) and Index `22` (`/mreset`) commented out so that only the plugin responds. Re-enabling the XML entries while the plugin is loaded double-handles the command |
| `/post` (or configured name) | PostCommand plugin (`Data/Plugins/Social/PostCommand.xml`)     | Plugin-owned only. Native dispatch was removed; the shipped `Command.xml` no longer carries an Index `1` entry. All behavior — name, cooldown, level/VIP gate, zen cost, broadcast prefix — comes from the plugin XML                                                  |

See [Command.dat](/docs/gameserver/command-dat.md#plugin-owned-commands) for the split between native-command tuning and plugin-owned tuning.

## Examples

{% tabs %}
{% tab title="Level-locked command" %}
{% code title="Command.xml fragment" %}

```xml
<Command Index="10" Name="/bau" Delay="0" GameMaster="0" WC="0" WP="0" GP="0">
    <Level0 Enable="1" Money="10000" MinLevel="100" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level1 Enable="1" Money="5000"  MinLevel="100" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level2 Enable="1" Money="0"     MinLevel="100" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level3 Enable="1" Money="0"     MinLevel="100" MaxLevel="0" MinReset="0" MaxReset="0" />
</Command>
```

{% endcode %}

Free accounts pay 10k zen, VIP tiers pay less or nothing. All tiers need level 100+.
{% endtab %}

{% tab title="GM-only" %}
{% code title="Command.xml fragment" %}

```xml
<Command Index="37" Name="/banacc" Delay="0" GameMaster="1" WC="0" WP="0" GP="0">
    <Level0 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level1 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level2 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level3 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
</Command>
```

{% endcode %}

`GameMaster="1"` requires a [GameMaster.xml](/docs/data/experiencetable/gamemaster.md) entry with `Level` at least `1`. Characters without a matching entry are rejected regardless of `Enable`. Commands like `/make`, `/drop`, `/makeset`, `/setcoin`, `/reload` ship with `GameMaster="2"` so only higher-tier GMs can use them.
{% endtab %}

{% tab title="Coin-cost command" %}
{% code title="Command.xml fragment" %}

```xml
<Command Index="38" Name="/mudarnome" Delay="0" GameMaster="0" WC="100" WP="0" GP="0">
    <Level0 Enable="0" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level1 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level2 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level3 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
</Command>
```

{% endcode %}

Free tier cannot use rename. VIP tiers pay 100 WCoin (C) per successful use; the first `/mudarnome` invocation prompts for confirmation and the second one finalises the charge.
{% endtab %}

{% tab title="Disable with XML comment" %}
{% code title="Command.xml fragment" %}

```xml
<!-- <Command Index="11" Name="/reset" Delay="0" GameMaster="0" WC="0" WP="0" GP="0">
    <Level0 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level1 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level2 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
    <Level3 Enable="1" Money="0" MinLevel="0" MaxLevel="0" MinReset="0" MaxReset="0" />
</Command> -->
```

{% endcode %}

Shipped template comments out `/reset` so the ResetSystem plugin can own it without conflict.
{% endtab %}
{% endtabs %}

## Cross-File Dependencies

| Gate or field here                       | Related in                                                                                                                                                                                            |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GameMaster`                             | [GameMaster.xml](/docs/data/experiencetable/gamemaster.md) - character entries and their authority `Level`                                                                                            |
| `Level0-3` tier gates                    | Same Account Level scheme as every other `_AL0-3` key. See [Account Level](/docs/gameserver/common-dat.md#account-level-al0-al3)                                                                      |
| `WC` / `WP` / `GP` coin balances         | Synced via the cash wallet maintained by DataServer; see also [Cash Shop](/docs/data/cashshop.md) for the main WCoin / GP consumer                                                                    |
| `/reset`, `/mreset`                      | ResetSystem plugin config at `Data/Plugins/Characters/ResetSystem.xml` (native entries are commented out in the shipped XML)                                                                          |
| `/post`                                  | PostCommand plugin config at `Data/Plugins/Social/PostCommand.xml`. The shipped `Command.xml` has no `/post` entry; native dispatch was removed                                                       |
| `/marry`                                 | [Command.dat](/docs/gameserver/command-dat.md#marry-command-marry) `CommandMarryLevel`, `CommandMarryCost`, `CommandMarryMinTime`, `CommandMarryNoticeDelay`, `CommandMarryOnlyGM`                    |
| `/reset`, `/mreset`                      | Owned by [ResetSystem plugin](/docs/data/plugins/resetsystem.md). Legacy `Command.dat` keys are removed; all costs, caps, and reward formulas are in the plugin XML                                   |
| `/premiar`, `/premiarall` broadcast text | [Command.dat](/docs/gameserver/command-dat.md#reward-command-reward) `CommandRewardType*Text`, [Command.dat](/docs/gameserver/command-dat.md#rewardall-command-rewardall) `CommandRewardAllType*Text` |
| `/change` (`/classe`)                    | [Command.dat](/docs/gameserver/command-dat.md#change-class-command-changeclass) `CommandChangeClass*` keys                                                                                            |
| `/ajuda` text                            | [Command.dat](/docs/gameserver/command-dat.md#help-command-ajuda) `CommandHelp*` keys                                                                                                                 |
| `/presente`                              | [Command.dat](/docs/gameserver/command-dat.md#gift-command-presente) `CommandGift*` keys                                                                                                              |

## Common Issues

* **Command does nothing when typed** - `Enable="0"` for that player's tier, or the command is commented out in XML, or a plugin owns the command and silently rejects (check server log)
* **GM command fails for a GM account** - the character is not listed in [GameMaster.xml](/docs/data/experiencetable/gamemaster.md), or the listed `Level` is lower than the `Command.xml` `GameMaster` value
* **Command works for one player, not another** - check `MinLevel` / `MinReset` / `MaxLevel` / `MaxReset` for that player's tier; the player may fall outside the range
* **Player was NOT charged after a successful command** - expected for any command that fails validation inside its handler (bad argument, target not found, etc.). `Money`, `WC`, `WP`, `GP` are only deducted when the dispatched handler returns success
* **Coin-cost command silently did nothing on first use** - non-zero `WC`/`WP`/`GP` triggers a one-time confirmation prompt; the second invocation executes and charges
* **Duplicate Index in XML** - two `<Command>` entries share the same `Index`; the map keeps only one entry at that index
* **Changed `Money` cost, no effect** - `/reset` and `/mreset` layer an additional Zen cost from [Command.dat](/docs/gameserver/command-dat.md) on top of the XML `Money` value, and `/marry` takes its cost from [Command.dat](/docs/gameserver/command-dat.md#marry-command-marry) `CommandMarryCost`; check both files
