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 at GameServer startup. /reload command (or reload.command in the Server Manager) reloads it, together with GameServerInfo - Command.dat, without 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 - 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#

<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#

AttributeTypeEffect
IndexintUnique command ID. Internal; must not collide
NamestringThe exact string players type, including the leading /. Case-insensitive at match time
DelaysecondsCooldown between uses. 0 = no cooldown
GameMasterintMinimum GM authority level required. 0 = anyone; 1+ requires a matching entry in GameMaster.xml with Level at least this value. Shipped template uses 0, 1, and 2
WCintWCoin (C) cost per use, deducted on success
WPintWCoin (P) cost per use, deducted on success
GPintGoblin 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.

AttributeTypeEffect
Enable0 or 11 lets this tier use the command. 0 silently rejects the command with no message
MoneyzenZen cost per use for this tier. Deducted only on a successful invocation
MinLevelintMinimum character level. 0 = no minimum
MaxLevelintMaximum character level. 0 = no maximum
MinResetintMinimum reset count. 0 = no minimum
MaxResetintMaximum 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 86+ entries (Index 0 through 86). They fall into these groups:

GroupExamples
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), /offpvp, /store, /offstore
Warehouse/bau, /abrirbau
Rename / self-service/mudarnome, /lock, /unlock, /set, /setlvl
GM utilities/banacc, /banchar, /disconnect, /gmpost, /notice, /slide (scrolling band across the top of every screen, see Notice.xml), /hide, /track, /trace, /skin, /spot, /reload, /setvip, /fireworks, /aigroup (spawn a MonsterAIGroup.xml group at its configured map and position, with its real event AI - e.g. /aigroup 23 = Nightmare in Kanturu; /aigroup <group> del removes it, /aigroup <group> 0-3 forces an AI phase)
Reward broadcasts (GM)/premiar, /premiarall (dispatched to the CommandReward / CommandRewardAll handlers - see Command.dat)
Events (GM start)/startbc, /startds, /startcc, /startit, /startquiz, /startdrop, /startking, /startinvasion, /startarena, /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.

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

Plugin Overrides#

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

CommandHandled byBehavior
/reset, /mresetResetSystem 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 for the split between native-command tuning and plugin-owned tuning.

Examples#

Command.xml fragment
<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>

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

Cross-File Dependencies#

Gate or field hereRelated in
GameMasterGameMaster.xml - character entries and their authority Level
Level0-3 tier gatesSame Account Level scheme as every other _AL0-3 key. See Account Level
WC / WP / GP coin balancesSynced via the cash wallet maintained by DataServer; see also Cash Shop for the main WCoin / GP consumer
/reset, /mresetResetSystem plugin config at Data/Plugins/Characters/ResetSystem.xml (native entries are commented out in the shipped XML)
/postPostCommand plugin config at Data/Plugins/Social/PostCommand.xml. The shipped Command.xml has no /post entry; native dispatch was removed
/marryCommand.dat CommandMarryLevel, CommandMarryCost, CommandMarryMinTime, CommandMarryNoticeDelay, CommandMarryOnlyGM
/reset, /mresetOwned by ResetSystem plugin. Legacy Command.dat keys are removed; all costs, caps, and reward formulas are in the plugin XML
/premiar, /premiarall broadcast textCommand.dat CommandRewardType*Text, Command.dat CommandRewardAllType*Text
/change (/classe)Command.dat CommandChangeClass* keys
/ajuda textCommand.dat CommandHelp* keys
/presenteCommand.dat 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, 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 on top of the XML Money value, and /marry takes its cost from Command.dat CommandMarryCost; check both files

Last updated October 5, 2026