> 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/experiencetable/gamemaster.md).

# GameMaster.xml

The server's Game Master list. Every account and character pair listed here is assigned an authority level, which is compared against the `GameMaster=` attribute on each entry in [Command.xml](/docs/data/command-xml.md) when the player invokes a slash command.

## File Location

```
Data/Util/GameMaster.xml
```

Loaded once at GameServer startup. Changes require a restart.

## Schema

```xml
<GameMasterList>
    <GameMaster Account="..." Character="..." Level="..." />
</GameMasterList>
```

## Attributes

| Attribute   | Type                   | Effect                                      |
| ----------- | ---------------------- | ------------------------------------------- |
| `Account`   | string, up to 10 chars | Account name as stored in MEMB\_INFO        |
| `Character` | string, up to 10 chars | Character name under that account           |
| `Level`     | byte (0-255)           | GM authority level. Higher = more privilege |

Entries are keyed internally by `Character` name. Listing two rows with the same character name will only keep the first one loaded.

## Authority Level

The level is an arbitrary byte. There are no hard-coded tiers in the GameServer - the only meaningful rule is "the stored level must be greater than or equal to the level required by the command you are trying to run". The level required per command is set in [Command.xml](/docs/data/command-xml.md)'s `GameMaster=` attribute.

Conventional tiers used by the shipped configs:

| Level | Typical role                                   |
| ----- | ---------------------------------------------- |
| `0`   | Not a GM (entry effectively disabled)          |
| `1`   | Event-host / helper commands                   |
| `32`  | Full admin used for the built-in test accounts |

Event commands such as the built-in `/startevent` style helpers gate on `Level >= 1`. The shipped `GameMaster.xml` uses `32` for every admin entry.

## Cross-File Dependencies

| Attribute                    | Related in                                                       |
| ---------------------------- | ---------------------------------------------------------------- |
| `Account`                    | Must exist in the JoinServer / DataServer `MEMB_INFO` table      |
| `Character`                  | Must belong to that account                                      |
| Per-command GM gate          | [Command.xml](/docs/data/command-xml.md) `GameMaster=` attribute |
| Command tuning and cooldowns | [Command.dat](/docs/gameserver/command-dat.md)                   |
| Name-creation word filter    | [DataServer BadSyntax.txt](/docs/dataserver/badsyntax.md)        |

{% hint style="info" %}
Commands whose `GameMaster=` attribute is `0` or missing are available to every player. Any non-zero value means the invoker's stored GameMaster level must be at least that value.
{% endhint %}

## Common Issues

* **GM account cannot use a command** - account/character pair not listed here, `Level` is below the command's `GameMaster=` requirement, or the server has not been restarted since the file was edited
* **Multiple GMs share one account** - intentional; list each character separately under the same `Account`
* **Level too low for a command** - raise `Level` in this file or lower the command's `GameMaster=` in [Command.xml](/docs/data/command-xml.md). There is no hot reload
* **Test character keeps GM powers after transfer** - remove stale entries before shipping to production; the shipped file ships with several `admin` / `test` GM rows
* **Duplicate character names** - only the first entry for a given character name is stored, even across accounts. Rename or remove duplicates
