> 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.md).

# Util

Optional per-level-band experience rate overrides. Normal-kill XP and master XP are evaluated against this table independently, using different subsets of the row's gates. When a row matches, its `ExperienceRate` multiplies the XP gain.

Empty in the shipped template. Add rows to smooth the level curve or nerf specific bands.

## File Location

```
Data/Util/ExperienceTable.txt
```

Loaded once at GameServer startup. Changes require a restart.

## Format

```
//MinLevel MaxLevel MinMasterLevel MaxMasterLevel MinReset MaxReset MinMasterReset MaxMasterReset ExperienceRate
end
```

Terminated by `end`. Comment lines start with `//`. Use `-1` (or `*`) on any numeric gate to disable that check for the row.

## Columns

| Column                              | Type | Effect                                                                     |
| ----------------------------------- | ---- | -------------------------------------------------------------------------- |
| `MinLevel` / `MaxLevel`             | int  | Character level range (used for normal-kill XP only)                       |
| `MinMasterLevel` / `MaxMasterLevel` | int  | Master level range (used for master XP only)                               |
| `MinReset` / `MaxReset`             | int  | Reset count range (used for both XP types)                                 |
| `MinMasterReset` / `MaxMasterReset` | int  | Master reset range (used for both XP types)                                |
| `ExperienceRate`                    | int  | Multiplier applied when the row matches. `100` = unchanged, `200` = double |

`-1` on a min/max gate means "no bound". First matching row wins. If no row matches, the rate defaults to `100`.

## Which Gates Apply To Which XP Type

Normal-kill XP evaluates only `Level`, `Reset`, and `MasterReset` gates. The `MasterLevel` gates on the row are ignored during this lookup.

Master XP evaluates only `MasterLevel`, `Reset`, and `MasterReset` gates. The `Level` gates on the row are ignored during this lookup.

A single row can therefore target one or both XP streams depending on which gates you set to `-1`.

## Layering

Final XP = base XP x [Common.dat](/docs/gameserver/common-dat.md#experience-settings) `AddExperienceRate_AL0-3` (or `AddMasterExperienceRate_AL0-3` for master XP) x per-map multiplier x this row's `ExperienceRate`.

Use this file to create dips or boosts at specific progression points (for example, slow the grind between master levels 300-400) without changing global rates.

## Cross-File Dependencies

| Attribute             | Related in                                                                                                                  |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Global XP multipliers | [Common.dat](/docs/gameserver/common-dat.md#experience-settings) `AddExperienceRate_AL0-3`, `AddMasterExperienceRate_AL0-3` |
| Per-map multiplier    | [MapManager.xml](/docs/data/mapmanager.md)                                                                                  |

## Common Issues

* **Row not applying to normal XP** - a `Level`, `Reset`, or `MasterReset` gate does not match. `MasterLevel` does not gate normal XP
* **Row not applying to master XP** - a `MasterLevel`, `Reset`, or `MasterReset` gate does not match. `Level` does not gate master XP
* **Multiple rows overlap** - first match wins; order rows from most-specific to least-specific
* **Table silently ignored** - missing `end` terminator; the parser drops the whole file
