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#

ColumnTypeEffect
ClassintClass index. See Class mapping
StrengthintStarting Strength
DexterityintStarting Dexterity / Agility
VitalityintStarting Vitality
EnergyintStarting Energy
LeadershipintStarting Command / Leadership. Only Dark Lord uses it; other classes ship 0
MaxLifefloatBase HP at level 1 with the base Vitality shown on this row
MaxManafloatBase MP at level 1 with the base Energy shown on this row
LevelLifefloatHP gained per character level, and per master level once MasterLevel > 0
LevelManafloatMP gained per character level, and per master level once MasterLevel > 0
VitalityToLifefloatHP per extra point of Vitality beyond the class default (includes Fruit AddVitality)
EnergyToManafloatMP per extra point of Energy beyond the class default (includes Fruit AddEnergy)

Class Mapping#

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

Shipped Defaults#

ClassStrDexVitEneLeaHPMPL/LL/MV/LE/M
DW18181530060601.02.02.02.0
DK282025100110202.00.53.01.0
FE22252015080301.01.52.01.5
MG262626260110601.01.02.02.0
DL262020152590401.51.02.01.5
SU21211823070401.01.52.01.5
RF322725200100401.31.02.01.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 hereRelated in
Starting stats / class-change / reset reset targetsApplied on character creation (DataServer) and by /reset + /mreset in Command.xml / Command.dat
Level curve (LevelLife, LevelMana)Combines with Common.dat <CLASS>LevelUpPoint for stat-point gain per level
Class indexMust match class codes used throughout Common.dat, Character.dat, Skill.dat
Stat floor for FruitCharacter.dat 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

Last updated May 13, 2026