Skill.dat
Tuning constants for passive and buff skills cast from Skill.txt entries: how strong the effect is, how long it lasts, and per-class multipliers that scale strength on player targets. Skill handlers read these values at cast time and pass them to the effect manager.
This file does NOT define the per-skill cost, range, target type, AOE shape, or master-tree wiring of each skill. Those columns live in Skill.txt (cost, distance, target filter, base damage range) and MasterSkillTree.txt (master-skill add-on bonuses that the formulas below sum into the same value).
File Location#
GameServer/Data/GameServerInfo - Skill.dat
All keys live under [GameServerInfo]. Changes require a GameServer restart.
Key Patterns#
Most skill blocks follow one of a few shapes. Once you know the pattern, reading any block is easy.
| Suffix | Meaning |
|---|---|
<Skill>ConstA/B/C/D | Effect-strength formula terms. Common shapes are ConstA + stat/ConstB + stat2/ConstC (additive base plus stat-divided ramps), stat/ConstA (pure divisor), and a paired apply-rate plus effect-strength form (ConstA + Energy/ConstB for chance, ConstC + Energy/ConstD for strength). B, C, D are divisors, not multipliers. Smaller divisors mean more contribution per stat point. |
<Skill>Rate<CLASS> | Per-class multiplier applied to the effect strength, expressed as percent. 100 = no change. Applied as value * Rate / 100 only when the target is a player. Class codes: DW, DK, FE, MG, DL, SU, RF. The RF slot is read only for season 5+ builds; the others are always read. |
<Skill>TimeConstA/B | Duration in seconds. Usually TimeConstA + Energy/TimeConstB (A = base seconds, B = divisor for the stat-driven bonus). Some skills use TimeConstA alone for a fixed duration. |
<Skill>MaxRate | Hard cap on the effect strength. Applied after the ConstA/B/C/D math and after master-skill bonuses, before the per-class rate scales the result. |
<Skill>MaxTime | Hard cap on effect duration in seconds. |
When in doubt, raise ConstA to make an effect stronger. Raise TimeConstA to make it last longer. Leave Rate<CLASS> at 100 unless balancing one class. A divisor key set to 0 will integer divide-by-zero and crash the calling thread - always keep divisors above 0.
Master-tree add-ons from MasterSkillTree.txt sum into the same value after the base formula and before the MaxRate cap. The master tree can also extend the duration of several buffs (Greater Defense, Greater Damage, Mana Shield) by adding seconds to the count.
Mana Shield#
| Key | Default |
|---|---|
ManaShieldConstA | 10 |
ManaShieldConstB | 50 |
ManaShieldConstC | 200 |
ManaShieldRate<CLASS> | 100 each |
ManaShieldTimeConstA | 60 |
ManaShieldTimeConstB | 40 |
ManaShieldMaxRate | 50 |
Absorption percent = ConstA + Dex/ConstB + Energy/ConstC, plus the master-tree Mana Shield Improved bonus, capped at MaxRate, then scaled by the per-class Rate for the target. Duration seconds = TimeConstA + Energy/TimeConstB, with the master-tree Mana Shield Enhanced bonus added to the count. Default MaxRate = 50 caps absorption at 50% of incoming damage.
Defense (passive shield block)#
| Key | Default |
|---|---|
DefenseConstA | 50 |
DefenseTimeConstA | 4 |
This is the shield-equipped passive damage reduction, not a cast buff. DefenseConstA is the percent of damage absorbed by the shield while the reduction window is active. DefenseTimeConstA is the window length in seconds: after a successful block the reduction stays armed for that many seconds before the player must trigger it again. The shield slot must hold a real shield with at least one option for the reduction to apply.
Heal#
| Key | Default |
|---|---|
HealConstA | 5 |
HealConstB | 5 |
HP restored = ConstA + Energy/ConstB, then scaled up by the master-tree Heal Improved percent. Target may be self, a party member, or an owned summon. Result is clamped to the target's max HP.
Greater Defense#
| Key | Default |
|---|---|
GreaterDefenseConstA | 2 |
GreaterDefenseConstB | 8 |
GreaterDefenseRate<CLASS> | 100 each |
GreaterDefenseTimeConstA | 60 |
Defense bonus = ConstA + Energy/ConstB, then increased by the master-tree Greater Defense Improved and Enhanced percents, then scaled by the per-class Rate. The number stored on the buff is value * 2. Duration seconds = TimeConstA, with extra seconds added per master-tree Greater Defense Enhanced level.
Greater Damage#
| Key | Default |
|---|---|
GreaterDamageConstA | 3 |
GreaterDamageConstB | 7 |
GreaterDamageRate<CLASS> | 100 each |
GreaterDamageTimeConstA | 60 |
Damage bonus = ConstA + Energy/ConstB, increased by master-tree Greater Damage Improved and Enhanced percents, then scaled by the per-class Rate. Duration seconds = TimeConstA, plus seconds per master-tree Greater Damage Enhanced level.
Summon Monster#
Maps the 8 summon slots to monster indices. Change these to summon different monsters from each slot.
| Key | Default | Slot |
|---|---|---|
SummonMonster1 | 26 | 1 |
SummonMonster2 | 32 | 2 |
SummonMonster3 | 21 | 3 |
SummonMonster4 | 20 | 4 |
SummonMonster5 | 10 | 5 |
SummonMonster6 | 150 | 6 |
SummonMonster7 | 151 | 7 |
SummonMonster8 | 353 | 8 |
SummonMonster8 is read only on season 7+ builds (not the current EX603 build). Monster indices must exist in Data/Monster/Monster.xml.
Greater Life (Swell Life)#
| Key | Default |
|---|---|
GreaterLifeConstA | 12 |
GreaterLifeConstB | 100 |
GreaterLifeConstC | 20 |
GreaterLifeRate<CLASS> | 100 each |
GreaterLifeTimeConstA | 60 |
GreaterLifeTimeConstB | 10 |
GreaterLifeMaxRate | 100 |
Max-HP bonus percent = ConstA + Vitality/ConstB + Energy/ConstC, plus the master-tree Greater Life Improved bonus, capped at MaxRate, then scaled by each target's per-class Rate. Casting in a party applies to every party member in radius. Duration seconds = TimeConstA + Energy/TimeConstB.
Fire Slash#
| Key | Default |
|---|---|
FireSlashConstA | 10 |
FireSlashConstB | 50 |
FireSlashTimeConstA | 10 |
FireSlashMaxRate | 30 |
Damage-over-time strength = ConstA + Strength/ConstB, plus the master-tree Fire Slash Enhanced bonus, capped at MaxRate. The DoT runs for TimeConstA seconds. The stat is Strength, not Energy.
Greater Critical Damage#
| Key | Default |
|---|---|
GreaterCriticalDamageConstA | 25 |
GreaterCriticalDamageConstB | 30 |
GreaterCriticalDamageTimeConstA | 60 |
GreaterCriticalDamageTimeConstB | 10 |
Critical-damage rate gained = Energy/ConstA + Leadership/ConstB. ConstA and ConstB are pure divisors here, not a base + ramp pair. Duration seconds = TimeConstA + Energy/TimeConstB.
Stern (chain stun)#
| Key | Default |
|---|---|
SternTimeConstA | 10 |
Stun duration in seconds applied to each target hit by the chain stun follow-up of certain skills. There is no chance roll here; the chance is decided by the calling skill or master tree.
Greater Mana#
| Key | Default |
|---|---|
GreaterManaConstA | 50 |
GreaterManaTimeConstA | 60 |
GreaterManaConstA is stored directly as the buff strength (it is not divided by any stat). TimeConstA is the duration in seconds. The downstream effect handler decides what the strength means (commonly bonus max mana percent or mana regen rate).
Invisibility#
| Key | Default |
|---|---|
InvisibilityTimeConstA | 60 |
Duration seconds. No strength term.
Brand#
| Key | Default |
|---|---|
BrandTimeConstA | 10 |
Duration seconds for the guild brand state. No strength term.
Infinity Arrow#
| Key | Default |
|---|---|
InfinityArrowTimeConstA | 1800 |
Duration seconds. No strength term.
Magic Damage Immunity#
| Key | Default |
|---|---|
MagicDamageImmunityTimeConstA | 10 |
Duration seconds. No strength term.
Physi Damage Immunity#
| Key | Default |
|---|---|
PhysiDamageImmunityTimeConstA | 10 |
Duration seconds. No strength term.
Drain Life#
| Key | Default |
|---|---|
DrainLifeConstA | 10 |
DrainLifeConstB | 23 |
HP drained on hit = damage * ConstA / 100 + Energy / ConstB. ConstA is a percent of the outgoing damage, ConstB is a stat divisor that adds a flat bonus on top.
Reflect Damage#
Stacks with the Character.dat reflect rates.
| Key | Default |
|---|---|
ReflectDamageConstA | 30 |
ReflectDamageConstB | 42 |
ReflectDamageRate<CLASS> | 100 each |
ReflectDamageTimeConstA | 30 |
ReflectDamageTimeConstB | 25 |
ReflectDamageMaxRate | 50 |
Reflect percent = ConstA + Energy/ConstB, capped at MaxRate, then scaled by the per-class Rate for the target. Duration seconds = TimeConstA + Energy/TimeConstB.
Sword Power#
| Key | Default |
|---|---|
SwordPowerConstA | 30 |
SwordPowerConstB | 60 |
SwordPowerTimeConstA | 30 |
SwordPowerTimeConstB | 20 |
SwordPowerMaxRate | 100 |
Damage bonus rate = Energy/ConstA, capped at MaxRate, applied to both the physical and magical damage adders. Defense bonus rate = max(10, 40 - Energy/ConstB), applied to the shield defense reduction. Duration seconds = TimeConstA + Energy/TimeConstB.
Sleep#
| Key | Default |
|---|---|
SleepConstA | 15 |
SleepConstB | 37 |
SleepTimeConstA | 1 |
SleepTimeConstB | 250 |
SleepMaxTime | 5 |
Apply chance percent = ConstA + Energy/ConstB. Duration seconds = TimeConstA + Energy/TimeConstB, hard-capped at MaxTime. Default SleepMaxTime = 5 caps sleep duration at 5 seconds regardless of formula output.
Lesser Defense (debuff)#
| Key | Default |
|---|---|
LesserDefenseConstA | 32 |
LesserDefenseConstB | 50 |
LesserDefenseConstC | 12 |
LesserDefenseConstD | 110 |
LesserDefenseTimeConstA | 5 |
LesserDefenseTimeConstB | 300 |
LesserDefenseMaxRate | 40 |
Apply chance percent = ConstA + Energy/ConstB. Defense penalty applied to the target = ConstC + Energy/ConstD, capped at MaxRate. Duration seconds = TimeConstA + Energy/TimeConstB.
Lesser Damage (debuff)#
| Key | Default |
|---|---|
LesserDamageConstA | 32 |
LesserDamageConstB | 50 |
LesserDamageConstC | 3 |
LesserDamageConstD | 93 |
LesserDamageTimeConstA | 5 |
LesserDamageTimeConstB | 300 |
LesserDamageMaxRate | 40 |
Apply chance percent = ConstA + Energy/ConstB. Damage penalty applied to the target = ConstC + Energy/ConstD, capped at MaxRate. Duration seconds = TimeConstA + Energy/TimeConstB.
Sahamutt#
| Key | Default |
|---|---|
SahamuttConstA | 60 |
Final damage = raw_damage * ConstA / 100, then increased by the master-tree Sahamutt Enhanced percent. Shipped default scales Sahamutt to 60% of the base hit damage.
Neil#
| Key | Default |
|---|---|
NeilConstA | 60 |
Final damage = raw_damage * ConstA / 100. Shipped default scales Neil to 60% of the base hit damage. The master-tree Neil Enhanced bonus controls the chance of the stun side effect, not the damage scale.
Magic Circle (Expansion of Wizardry)#
| Key | Default |
|---|---|
MagicCircleConstA | 20 |
MagicCircleTimeConstA | 1800 |
Damage bonus value = (Energy / DWMagicDamageMinConstA) * MagicCircleConstA / 100. The Dark Wizard magic damage divisor lives in Character.dat. Duration seconds = TimeConstA. Self-only buff.
Shield Recover#
| Key | Default |
|---|---|
ShieldRecoverConstA | 2 |
ShieldRecoverConstB | 6 |
SD restored = (SkillLevel + 1) * ConstA + Energy / ConstB. Result is clamped to the target's max SD. Increases monster aggro by value / 40 against viewport mobs.
Dragon Slayer#
| Key | Default |
|---|---|
DragonSlayerConstA | 10 |
DragonSlayerConstB | 100 |
DragonSlayerConstC | 10 |
DragonSlayerConstD | 30 |
DragonSlayerMaxRate | 50 |
Apply chance percent = ConstA + Energy/ConstB. Effect strength = ConstC + Energy/ConstD, capped at MaxRate.
Greater Ignore Defense Rate#
| Key | Default |
|---|---|
GreaterIgnoreDefenseRateConstA | 0 |
GreaterIgnoreDefenseRateConstB | 100 |
GreaterIgnoreDefenseRateTimeConstA | 60 |
GreaterIgnoreDefenseRateTimeConstB | 10 |
Ignore-defense percent gained = ConstA + Energy/ConstB. Duration seconds = TimeConstA + Energy/TimeConstB. Self-only buff. Season 5+ only.
Fitness (Increase Health)#
| Key | Default |
|---|---|
FitnessConstA | 16 |
FitnessConstB | 10 |
FitnessTimeConstA | 60 |
FitnessTimeConstB | 10 |
HP bonus = ConstA + Energy/ConstB, plus the master-tree Fitness Improved bonus. Duration seconds = TimeConstA + Energy/TimeConstB. Affects the caster alone when solo, or every party member in radius when in a party. Season 5+ only.
Greater Defense Success Rate (Increase Block)#
| Key | Default |
|---|---|
GreaterDefenseSuccessRateConstA | 2 |
GreaterDefenseSuccessRateConstB | 10 |
GreaterDefenseSuccessRateTimeConstA | 60 |
GreaterDefenseSuccessRateTimeConstB | 10 |
Block-rate bonus = ConstA + Energy/ConstB, plus master-tree Greater Defense Success Rate Improved. Duration seconds = TimeConstA + Energy/TimeConstB. Solo or party-radius like Fitness. Season 5+ only.
Party Heal#
| Key | Default |
|---|---|
PartyHealConstA | 5 |
PartyHealConstB | 5 |
The Elf party-wide heal. Healed amount = ConstA + Energy/ConstB, applied to every party member in radius.
Bless#
| Key | Default |
|---|---|
BlessConstA | 100 |
BlessTimeConstA | 300 |
Buff magnitude scales from ConstA. Duration is a flat TimeConstA seconds - 5 minutes at the shipped default - rather than the stat-scaled TimeConstA + Energy/TimeConstB shape used by most buffs on this page.
This is the Bless skill, and is unrelated to Jewel of Bless.
Blind#
| Key | Default |
|---|---|
BlindConstA | 20 |
BlindConstB | 25 |
BlindConstC | 50 |
BlindTimeConstA | 5 |
A PvP-relevant debuff that reduces the target's ability to land hits. ConstA and ConstB form the paired apply-chance term used elsewhere on this page (ConstA + Energy/ConstB); ConstC scales the strength of the effect once it lands. Duration is a flat 5 seconds.
Earth Prison#
| Key | Default |
|---|---|
EarthPrisonConstA | 10 |
Single constant scaling the root's hold strength.
Iron Defense#
| Key | Default |
|---|---|
IronDefenseConstA | 800 |
IronDefenseConstB | 800 |
IronDefenseTimeConstA | 10 |
ConstA and ConstB feed a flat defense grant; the shipped 800 is large by design and is the main Rage Fighter survivability knob. TimeConstA is the duration in seconds.
This is the Rage Fighter skill, not the "Iron Defense" monster skill referenced in Monster.xml.
Blood Howling#
| Key | Default |
|---|---|
BloodHowlingConstA | 10 |
BloodHowlingConstB | 200 |
BloodHowlingTimeConstA | 60 |
ConstA and ConstB scale the effect magnitude; TimeConstA gives a flat 60-second duration, consistent with the other timed buffs on this page.
Attack Speed Layering#
The global attack-speed formula in Common.dat produces a base delay for every skill. The SkillTweaks plugin then layers per-skill adjustments on top:
SpeedScale(float) multiplies the base delayMinDelayclamps the result to at least this many msMaxDelayclamps the result to at most this many ms
Skills not listed in Data/Plugins/Characters/SkillTweaks.xml use the raw Common.dat formula output with SpeedScale = 1.0 and no extra clamps. The plugin does not shadow Skill.dat constants; it is strictly a per-skill delay tuner applied after the duration and effect values on this page are computed. See SkillTweaks.
Cross-File Dependencies#
| Setting here | Related in |
|---|---|
| Per-skill cost, distance, target type, base damage range | Skill.txt |
| Master-tree add-on bonuses summed into the formulas above | MasterSkillTree.txt |
| Per-skill base damage tables | SkillDamage.txt |
ReflectDamageRate<CLASS> and ReflectDamageMaxRate | Stack with Character.dat ReflectDamageRatePvP / ReflectDamageRatePvM |
MagicCircleConstA formula divisor DWMagicDamageMinConstA | Character.dat |
SummonMonster1-8 | Monster index definitions in Data/Monster/Monster.xml |
All <Skill>Rate<CLASS> entries | Class codes mirror Character.dat damage rates |
| Skill handler attack speed and cooldown | Common.dat global attack-speed formula (MaxAttackSpeed, BaseSkillDelay, SpeedGrowthFactor, MinSkillDelay) in Common.dat |
| Per-skill delay overrides | SkillTweaks plugin. Layers on top, does not replace |
| Reset-related stat caps that feed Energy into these formulas | Reset System |
| Combo skill payload that triggers Sword Power and similar skills | CustomCombo |
Common Issues#
- Buff feels weaker than expected on one class - check the
<Skill>Rate<CLASS>entry; it might be below100 - Buff lasts forever - very large
TimeConstAvalue, or a master-tree count bonus stacking unexpectedly; verify with a fresh cast after restart - Summoned monster is missing or wrong -
SummonMonsterNpoints to an index that is not inMonster.xml, or the index defines a non-summon-friendly monster - Reflect never fires - Character.dat
ReflectDamageRatePvP/ReflectDamageRatePvMset to0, orReflectDamageMaxRateset to0here - Mana Shield absorbs nothing -
ManaShieldMaxRate = 0; shipped default is50 - Sleep lasts longer than the cap - shipped cap
SleepMaxTime = 5; lower to shorten - Fire Slash damage scales with Energy in tests - it does not; the stat is Strength. If players see no scaling from Strength, check that
FireSlashConstBis non-zero - Defense buff "does nothing" - the Defense block is the passive shield-block reduction, not a cast buff; the player must equip a real shield with at least one option for
DefenseConstAto apply