Character.dat

Per-class combat tuning. Damage rates against contexts (duel, events, PvP, PvM), class-vs-class damage modifiers, skill-specific damage formulas, HP/MP/BP/SD recovery rates, and the constants that feed every hit/defense calculation.

File Location#

GameServer/Data/GameServerInfo - Character.dat

All keys live under [GameServerInfo]. Changes require a GameServer restart.

Class Codes#

Every per-class key uses one of these two-letter prefixes.

CodeClass
DWDark Wizard
DKDark Knight
FEFairy Elf
MGMagic Gladiator
DLDark Lord
SUSummoner
RFRage Fighter

Damage Rates by Context#

Percent of base damage applied in each game mode. 100 = no change, 50 = half damage, 0 = zero damage dealt.

KeyDefaultEffect
DuelDamageRate60Damage scaling inside the duel arena
GensDamageRate60Damage scaling between Gens factions in PvP
CustomArenaDamageRate50Damage scaling in the Custom Arena plugin map
ChaosCastleDamageRate50Damage scaling in Chaos Castle
IllusionTempleDamageRate50Damage scaling in Illusion Temple
CastleSiegeDamageRate140Damage on defenders during CS
CastleSiegeDamageRate20Damage on attackers during CS
CastleSiegeDamageRate35Damage on castle-neutral targets
GeneralDamageRatePvP100Baseline PvP damage anywhere without a special rate
GeneralDamageRatePvM100Baseline PvM damage
ReflectDamageRatePvP100Reflect damage in PvP
ReflectDamageRatePvM1000Reflect damage in PvM (%). PvM reflect uses the monster's full hit (before your defense/absorb), takes your reflect % of it, then applies this rate. 1000 = x10. Regular (percent) reflect only. Missing line = 0 = reflect does no damage to monsters
FullReflectDamageRatePvM100Full damage reflect proc in PvM (%). Separate from ReflectDamageRatePvM. Also uses the monster's full hit before your defense. 100 = monster takes its own raw hit back

Character Max Rates#

Hard caps on a player's total rate from all sources (items, options, buffs, master tree, sets). Players only, monsters are not capped. 0 or missing line = no cap.

KeyDefaultEffect
MaxReflectRate65Max total damage reflect %. Full damage reflect proc is not capped
MaxDamageReductionRate70Max total damage cut % from all damage reduction sources (item/option reduction, buff reduction, shield Defense skill). Wing and pet absorb apply after and are not counted
MaxCriticalDamageRate90Max critical damage chance % (before target's resist)
MaxExcellentDamageRate90Max excellent damage chance % (before target's resist)
MaxDoubleDamageRate20Max double damage chance % (before target's resist)
MaxTripleDamageRate15Max triple damage chance %

The C panel shows the capped value.

Class Damage Rates#

Per-class multipliers for PvP and PvM. All default to 100.

PatternMeaning
<CLASS>DamageRatePvPThis class's damage output in any PvP context
<CLASS>DamageRatePvMThis class's damage output against monsters

Seven classes × two contexts = 14 keys, all default 100.

Elemental damage rates (inert in this build)#

Class-vs-Class Damage Rates#

Square matrix of multipliers. <A>DamageRateTo<B> = damage from class A when hitting class B. All default to 100 (no change).

Full 7x7 matrix

Every pair uses the same pattern: <ATTACKER>DamageRateTo<DEFENDER> = 100. 49 keys total.

  • DWDamageRateToDW ... DWDamageRateToRF
  • DKDamageRateToDW ... DKDamageRateToRF
  • FEDamageRateToDW ... FEDamageRateToRF
  • MGDamageRateToDW ... MGDamageRateToRF
  • DLDamageRateToDW ... DLDamageRateToRF
  • SUDamageRateToDW ... SUDamageRateToRF
  • RFDamageRateToDW ... RFDamageRateToRF

Raise a row to buff one class's damage against another; lower it to nerf. Typical server balance tweaks live here, not in the context or class rates above.

Monster Damage to Players#

How hard monsters hit players. The PvM keys above only scale damage players deal to monsters; these scale the other direction. Player summons are not affected.

KeyDefaultEffect
MonsterDamageRateToDW ... MonsterDamageRateToRF100% of monster damage taken by that class. 80 = that class takes 20% less from monsters
PlayerDefenseRateVsMonster50% of a player's defense used when a monster hits them. Vanilla hardcoded 50
PlayerDefenseRateVsPlayer50% of a player's defense used when another player hits them. Vanilla hardcoded 50

A per-map rate stacks on top: MonsterDamageRate in MapManager.xml. Monster affix blasts and other preset monster hits are scaled too.

Raising PlayerDefenseRateVsMonster makes defense stronger against every monster at once; the per-class rates are better for balancing one class.

Element Weakness and Strength#

Monsters can be weak or strong against one element. A player skill whose element (the Type column in Skill.txt) matches deals more or less damage to that monster. Normal attacks have no element.

KeyDefaultEffect
ElementWeakBonus20+% damage when the skill's element is the monster's weakness
ElementStrongPenalty20-% damage when the skill's element is the monster's strength

Set the elements per monster with Weak / Strong in Monster.xml (Weak="Fire"), or per map with ElementWeak / ElementStrong in MapManager.xml for monsters that have none of their own. Players see them as badges beside the monster's HP bar: weakness on the left (green rim, up arrow), strength on the right (red rim, down arrow), with a hover tooltip.

Damage Stuck Rate#

Chance of a "stuck" animation triggering on hit for each class. 0 disables. Value is a percentage.

KeyDefault
DWDamageStuckRate0
DKDamageStuckRate0
FEDamageStuckRate0
MGDamageStuckRate0
DLDamageStuckRate0
SUDamageStuckRate0
RFDamageStuckRate0

Mount Stuck Rate#

Flinch chance while riding a mount. Historically mounted characters never flinched; these keys make it configurable per mount. 0 keeps the classic no-flinch behavior.

KeyDefault
UniriaDamageStuckRate0
DinorantDamageStuckRate0
DarkHorseDamageStuckRate0
FenrirDamageStuckRate0

Custom plugin mounts are configured separately: set StuckRate="N" on the <Mount> entry in Data\Plugins\Items\CustomPets.xml (default 0).

Damage Multiplier Constants#

Per-class passive damage boost formula constants. Not commonly edited.

KeyDefaultApplies to
DKDamageMultiplierConstA10Dark Knight Energy divisor (rate = 200 + Energy/A)
DLDamageMultiplierConstA20Dark Lord Energy divisor (rate = 200 + Energy/A)
RFDamageMultiplierConstA8Rage Fighter Dexterity divisor used in attack-stance rate
RFDamageMultiplierConstB10Rage Fighter Vitality divisor used in defense-stance rate
RFDamageMultiplierConstC10Rage Fighter Energy divisor used in both attack and defense rates
DKDamageMultiplierMaxRate500DK multiplier cap
DLDamageMultiplierMaxRate500DL multiplier cap
RFDamageMultiplierMaxRate500RF multiplier cap (applied to each of the three RF stances)

Dark Spirit Settings#

Tunes the Dark Lord's Dark Spirit pet.

Dark Spirit constants (15 keys)
KeyDefaultEffect
DarkSpiritRangeAttackRate30Chance % the spirit performs a ranged attack
DarkSpiritCriticalDamageRate30Crit rate %
DarkSpiritExcellentDamageRate0Excellent rate %
DarkSpiritAttackDamageMinConstA/B/C180 / 15 / 8Min damage formula
DarkSpiritAttackDamageMaxConstA/B/C200 / 15 / 4Max damage formula
DarkSpiritAttackSpeedConstA/B/C/D20 / 4 / 5 / 50Attack speed formula
DarkSpiritAttackSuccessRateConstA/B/C1000 / 16 / 1Hit rate formula

Guardian Items (Dec Damage)#

Constants for items that reduce incoming damage while equipped.

KeyDefaultEffect
DinorantDecDamageConstB5Dinorant damage-reduction constant
DarkHorseDecDamageConstA30Dark Horse damage-reduction linear term
DarkHorseDecDamageConstB2Dark Horse damage-reduction scaling term

Skill Damage Formulas#

Constants feeding specific-skill damage calculations. Leave at defaults unless rebalancing a skill specifically.

Combo / Earthquake / Electric Spark / DL Skill / Nova
KeyDefault
ComboDamageConstA2
ComboDamageConstB1

ComboDamageConstA/B only apply to classes without a <ClassScaling> row in CustomCombo.xml. | EarthquakeDamageConstA/B/C | 10 / 5 / 10 | | ElectricSparkDamageConstA/B | 10 / 250 | | DLSkillDamageConstA/B | 25 / 50 | | NovaDamageConstA/B/C | 20 / 5 / 2 |

Plasma Storm per-class constants (28 keys)

Four constants per class (A/B/C/D, plus E for Dark Lord):

ClassABCDE
DW5573-
DK3557-
FE5375-
MG3557-
DL55733
SU5573-
RF5537-

Pool Recovery Rates#

Percent of max pool recovered per recovery tick.

PoolDefault per classNotes
HP (<CLASS>HPRecoveryRate)0 for every classDisabled by default; raise to grant passive HP regen
MP (<CLASS>MPRecoveryRate)4 for every class
BP (<CLASS>BPRecoveryRate)3 for every class except DK (5)BP = stamina for combos and Rage Fighter
SD (<CLASS>SDRecoveryRate)4 for every classSD = Shield Defense

Seven classes × four pools = 28 keys, all following the same <CLASS><POOL>RecoveryRate pattern. Four further keys, below, layer on top of them.

No-damage recuperation bonus#

Added in v1.0.7. A flat extra percentage applied on top of the recovery rate above, granted only when the pool has not been spent or hit for more than 5 seconds - the classic "regenerate while standing still" behaviour.

KeyDefaultPool
HPNoDamageRecoveryBonus5Life
SDNoDamageRecoveryBonus5Shield Defense
MPNoDamageRecoveryBonus3Mana
BPNoDamageRecoveryBonus3Stamina

Set a key to 0 to remove the idle bonus for that pool entirely. These are server-wide, not per-class. The defaults match the vanilla WebZen values.

Base Damage Constants#

Min/max physical and magic damage formula constants. Drive the baseline hit range before items and skills.

Per-class damage formula constants

Pattern: <CLASS>PhysiDamageMin/MaxConstA/B, <CLASS>MagicDamageMin/MaxConstA. Fairy Elf has extra Bow variants for ranged weapons.

ClassPhysi Min APhysi Min BPhysi Max APhysi Max BMagic Min AMagic Max A
DW6-4-94
DK8-4-94
FE7-4-94
MG6124894
DL71451094
SU8-4-94
RF71551294

FE bow-specific: FEPhysiDamageMinBowConstA/B = 14/7, FEPhysiDamageMaxBowConstA/B = 8/4.

Attack Success Rate#

Hit chance formula constants (separate for PvE and PvP).

Attack success rate constants per class

PvE pattern: <CLASS>AttackSuccessRateConstA/B/C/D. Dark Lord has an additional E. Rage Fighter has higher defaults to compensate for higher base damage.

ClassABCDE
DW5324-
DK5324-
FE5324-
MG5324-
DL562410
SU5324-
RF3546-

PvP pattern: <CLASS>AttackSuccessRatePvPConstA/B/C/D.

ClassABCD
DW3141
DK314510
FE31610
MG313510
DL3141
SU313510
RF26103610

Attack Speed Constants#

Physical and magic attack speed formula constants.

KeyDefaultEffect
DWPhysiSpeedConstA20DW physical attack speed
DWMagicSpeedConstA10DW magic attack speed
DKPhysiSpeedConstA15
DKMagicSpeedConstA20
FEPhysiSpeedConstA50
FEMagicSpeedConstA50
MGPhysiSpeedConstA15
MGMagicSpeedConstA20
DLPhysiSpeedConstA10
DLMagicSpeedConstA10
SUPhysiSpeedConstA20
SUMagicSpeedConstA20
RFPhysiSpeedConstA10
RFMagicSpeedConstA10

Defense Success Rate#

Dodge/block chance formula constants.

PvE defense success rate constants

Pattern: <CLASS>DefenseSuccessRateConstA.

ClassA
DW3
DK3
FE4
MG3
DL7
SU4
RF10
PvP defense success rate constants

Pattern: <CLASS>DefenseSuccessRatePvPConstA/B/C. Rage Fighter has higher defaults.

ClassABC
DW214
DK212
FE2110
MG214
DL212
SU212
RF15105

Defense Constants#

Per-class defense formula constants. Raises the baseline defense scaling for that class.

KeyDefault
DWDefenseConstA4
DKDefenseConstA3
FEDefenseConstA10
MGDefenseConstA4
DLDefenseConstA7
SUDefenseConstA3
RFDefenseConstA8

Reflect Settings#

ReflectDamageCheckOwnerLive moved to Data/Plugins/World/Downgrade.xml, as <Combat ReflectDamageCheckOwnerLive="..." /> - see Downgrade. The leftover key in the shipped Character.dat template is ignored.

Cross-File Dependencies#

Setting hereRelated in
All class-code prefixes (DW/DK/FE/MG/DL/SU/RF)Common.dat Create Character Settings and per-class LevelUpPoint, and DefaultClassInfo.txt base stats and per-level curves
ReflectDamageRatePvP / ReflectDamageRatePvMReflect Damage skill constants in Skill.dat
CastleSiegeDamageRate1/2/3Castle Siege section in Event.dat; inert unless Common.dat EnableCastleSiege = 1
CustomArenaDamageRateCustom Arena plugin
ChaosCastleDamageRate, IllusionTempleDamageRateMatching event sections in Event.dat
Per-class damage and recovery ratesSkill.txt and SkillDamage.txt feed per-skill damage formulas

Common Issues#

  • Every player hits for zero in the arena - DuelDamageRate = 0 by accident
  • One class feels overpowered in PvP - check the <CLASS>DamageRatePvP and <CLASS>DamageRateTo<OTHER> rows, not the formula constants
  • HP never regenerates for any class - <CLASS>HPRecoveryRate defaults to 0 on purpose. Raise per class to enable passive regen
  • Castle Siege damage feels wrong only during CS - CastleSiegeDamageRate1/2/3 interact with the role you occupy (defender, attacker, neutral)
  • Reflect never fires after the owner dies - ReflectDamageCheckOwnerLive defaults to 1; set it to 0 in Downgrade.xml, not in this file, to let reflect still apply when the owner dies in the same tick

Last updated October 6, 2026