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

# DefaultClassInfo.txt

Per-class base stats, base HP/MP, and the per-level / per-Vitality / per-Energy HP and MP curves. Used by the attribute calculator on every recompute, by the ResetSystem plugin to restore stats to class defaults when a reset's `Setting` has `ResetStats="true"`, and by the Fruit system to clamp stat reductions so they cannot fall below the class default.

## File Location

```
Data/Character/DefaultClassInfo.txt
```

Loaded once at GameServer startup. Changes require a restart.

## Format

Plain text, whitespace-delimited. The first comment line names the columns; each following row is one class. Terminated by the literal `end` on its own line.

```
//Class   Strength   Dexterity   Vitality   Energy   Leadership   MaxLife   MaxMana   LevelLife   LevelMana   VitalityToLife   EnergyToMana
0         18         18          15         30       0            60        60        1.0         2.0         2.0              2.0
...
end
```

## Columns

| Column           | Type  | Effect                                                                                 |
| ---------------- | ----- | -------------------------------------------------------------------------------------- |
| `Class`          | int   | Class index. See [Class mapping](#class-mapping)                                       |
| `Strength`       | int   | Starting Strength                                                                      |
| `Dexterity`      | int   | Starting Dexterity / Agility                                                           |
| `Vitality`       | int   | Starting Vitality                                                                      |
| `Energy`         | int   | Starting Energy                                                                        |
| `Leadership`     | int   | Starting Command / Leadership. Only Dark Lord uses it; other classes ship `0`          |
| `MaxLife`        | float | Base HP at level 1 with the base Vitality shown on this row                            |
| `MaxMana`        | float | Base MP at level 1 with the base Energy shown on this row                              |
| `LevelLife`      | float | HP gained per character level, and per master level once MasterLevel > 0               |
| `LevelMana`      | float | MP gained per character level, and per master level once MasterLevel > 0               |
| `VitalityToLife` | float | HP per extra point of Vitality beyond the class default (includes Fruit `AddVitality`) |
| `EnergyToMana`   | float | MP per extra point of Energy beyond the class default (includes Fruit `AddEnergy`)     |

## Class Mapping

| Class | Name                 |
| ----- | -------------------- |
| `0`   | Dark Wizard (DW)     |
| `1`   | Dark Knight (DK)     |
| `2`   | Fairy Elf (FE)       |
| `3`   | Magic Gladiator (MG) |
| `4`   | Dark Lord (DL)       |
| `5`   | Summoner (SU)        |
| `6`   | Rage Fighter (RF)    |

## Shipped Defaults

| Class | Str | Dex | Vit | Ene | Lea | HP  | MP | L/L | L/M | V/L | E/M |
| ----- | --- | --- | --- | --- | --- | --- | -- | --- | --- | --- | --- |
| DW    | 18  | 18  | 15  | 30  | 0   | 60  | 60 | 1.0 | 2.0 | 2.0 | 2.0 |
| DK    | 28  | 20  | 25  | 10  | 0   | 110 | 20 | 2.0 | 0.5 | 3.0 | 1.0 |
| FE    | 22  | 25  | 20  | 15  | 0   | 80  | 30 | 1.0 | 1.5 | 2.0 | 1.5 |
| MG    | 26  | 26  | 26  | 26  | 0   | 110 | 60 | 1.0 | 1.0 | 2.0 | 2.0 |
| DL    | 26  | 20  | 20  | 15  | 25  | 90  | 40 | 1.5 | 1.0 | 2.0 | 1.5 |
| SU    | 21  | 21  | 18  | 23  | 0   | 70  | 40 | 1.0 | 1.5 | 2.0 | 1.5 |
| RF    | 32  | 27  | 25  | 20  | 0   | 100 | 40 | 1.3 | 1.0 | 2.0 | 1.3 |

## Important Behavior

* The attribute recompute uses all four curve fields every time. Effective HP is `MaxLife + LevelLife * (Level - 1) + LevelLife * MasterLevel + (Vitality - default Vitality + AddVitality) * VitalityToLife`; Mana mirrors that with Energy, `LevelMana`, and `EnergyToMana`
* The `Vitality` / `Energy` columns serve double duty: they are the starting values AND the subtractive baseline used when converting extra stat points into HP/MP. Raising them here reduces the pool bonus players get from investing points
* Reset / Master Reset (via ResetSystem plugin) restore `Strength / Dexterity / Vitality / Energy / Leadership` to this row's values when the matching `Setting` has `ResetStats="true"` in `Data/Plugins/Characters/ResetSystem.xml`. `/classe` / `/change` (class change) does NOT reset stats - only the class field is mutated
* The Fruit system will not subtract a stat below its class default; stats brought below this row's values via other means are effectively uncapped against the Fruit floor
* Only Dark Lord (class 4) ships a non-zero `Leadership`. Raising another class's `Leadership` default grants them a Command stat the UI and stat-add packet cannot otherwise provide
* The file is parsed by whitespace; keep the columns aligned for readability but tabs and multiple spaces are both fine

## Cross-File Dependencies

| Value here                                          | Related in                                                                                                                                                                          |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Starting stats / class-change / reset reset targets | Applied on character creation (DataServer) and by `/reset` + `/mreset` in [Command.xml](/docs/data/command-xml.md) / [Command.dat](/docs/gameserver/command-dat.md)                 |
| Level curve (`LevelLife`, `LevelMana`)              | Combines with [Common.dat](/docs/gameserver/common-dat.md) `<CLASS>LevelUpPoint` for stat-point gain per level                                                                      |
| Class index                                         | Must match class codes used throughout [Common.dat](/docs/gameserver/common-dat.md), [Character.dat](/docs/gameserver/character-dat.md), [Skill.dat](/docs/gameserver/skill-dat.md) |
| Stat floor for Fruit                                | [Character.dat](/docs/gameserver/character-dat.md) Fruit settings                                                                                                                   |

## Common Issues

* **New characters have wrong HP/MP** - row order accidentally edited; the class index in the first column must match the class the row is for (the loader stores rows keyed by the first column)
* **`/reset` resets stats to zero** - row's `Strength` / `Dexterity` / `Vitality` / `Energy` are zero. Set the intended defaults
* **Rage Fighter is missing** - file ships with classes 0-6; make sure every row is present
* **File load silently fails** - missing `end` terminator, or a row has fewer columns than expected
* **Pool feels lower than expected after editing Vitality / Energy** - raising the base Vitality / Energy on this row lowers the Vitality-bonus / Energy-bonus portion, because the conversion only applies to points beyond the default
