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.

SuffixMeaning
<Skill>ConstA/B/C/DEffect-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/BDuration 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>MaxRateHard 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>MaxTimeHard 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#

KeyDefault
ManaShieldConstA10
ManaShieldConstB50
ManaShieldConstC200
ManaShieldRate<CLASS>100 each
ManaShieldTimeConstA60
ManaShieldTimeConstB40
ManaShieldMaxRate50

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)#

KeyDefault
DefenseConstA50
DefenseTimeConstA4

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#

KeyDefault
HealConstA5
HealConstB5

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#

KeyDefault
GreaterDefenseConstA2
GreaterDefenseConstB8
GreaterDefenseRate<CLASS>100 each
GreaterDefenseTimeConstA60

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#

KeyDefault
GreaterDamageConstA3
GreaterDamageConstB7
GreaterDamageRate<CLASS>100 each
GreaterDamageTimeConstA60

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.

KeyDefaultSlot
SummonMonster1261
SummonMonster2322
SummonMonster3213
SummonMonster4204
SummonMonster5105
SummonMonster61506
SummonMonster71517
SummonMonster83538

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)#

KeyDefault
GreaterLifeConstA12
GreaterLifeConstB100
GreaterLifeConstC20
GreaterLifeRate<CLASS>100 each
GreaterLifeTimeConstA60
GreaterLifeTimeConstB10
GreaterLifeMaxRate100

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#

KeyDefault
FireSlashConstA10
FireSlashConstB50
FireSlashTimeConstA10
FireSlashMaxRate30

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#

KeyDefault
GreaterCriticalDamageConstA25
GreaterCriticalDamageConstB30
GreaterCriticalDamageTimeConstA60
GreaterCriticalDamageTimeConstB10

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)#

KeyDefault
SternTimeConstA10

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#

KeyDefault
GreaterManaConstA50
GreaterManaTimeConstA60

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#

KeyDefault
InvisibilityTimeConstA60

Duration seconds. No strength term.

Brand#

KeyDefault
BrandTimeConstA10

Duration seconds for the guild brand state. No strength term.

Infinity Arrow#

KeyDefault
InfinityArrowTimeConstA1800

Duration seconds. No strength term.

Magic Damage Immunity#

KeyDefault
MagicDamageImmunityTimeConstA10

Duration seconds. No strength term.

Physi Damage Immunity#

KeyDefault
PhysiDamageImmunityTimeConstA10

Duration seconds. No strength term.

Drain Life#

KeyDefault
DrainLifeConstA10
DrainLifeConstB23

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.

KeyDefault
ReflectDamageConstA30
ReflectDamageConstB42
ReflectDamageRate<CLASS>100 each
ReflectDamageTimeConstA30
ReflectDamageTimeConstB25
ReflectDamageMaxRate50

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#

KeyDefault
SwordPowerConstA30
SwordPowerConstB60
SwordPowerTimeConstA30
SwordPowerTimeConstB20
SwordPowerMaxRate100

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#

KeyDefault
SleepConstA15
SleepConstB37
SleepTimeConstA1
SleepTimeConstB250
SleepMaxTime5

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)#

KeyDefault
LesserDefenseConstA32
LesserDefenseConstB50
LesserDefenseConstC12
LesserDefenseConstD110
LesserDefenseTimeConstA5
LesserDefenseTimeConstB300
LesserDefenseMaxRate40

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)#

KeyDefault
LesserDamageConstA32
LesserDamageConstB50
LesserDamageConstC3
LesserDamageConstD93
LesserDamageTimeConstA5
LesserDamageTimeConstB300
LesserDamageMaxRate40

Apply chance percent = ConstA + Energy/ConstB. Damage penalty applied to the target = ConstC + Energy/ConstD, capped at MaxRate. Duration seconds = TimeConstA + Energy/TimeConstB.

Sahamutt#

KeyDefault
SahamuttConstA60

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#

KeyDefault
NeilConstA60

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)#

KeyDefault
MagicCircleConstA20
MagicCircleTimeConstA1800

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#

KeyDefault
ShieldRecoverConstA2
ShieldRecoverConstB6

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#

KeyDefault
DragonSlayerConstA10
DragonSlayerConstB100
DragonSlayerConstC10
DragonSlayerConstD30
DragonSlayerMaxRate50

Apply chance percent = ConstA + Energy/ConstB. Effect strength = ConstC + Energy/ConstD, capped at MaxRate.

Greater Ignore Defense Rate#

KeyDefault
GreaterIgnoreDefenseRateConstA0
GreaterIgnoreDefenseRateConstB100
GreaterIgnoreDefenseRateTimeConstA60
GreaterIgnoreDefenseRateTimeConstB10

Ignore-defense percent gained = ConstA + Energy/ConstB. Duration seconds = TimeConstA + Energy/TimeConstB. Self-only buff. Season 5+ only.

Fitness (Increase Health)#

KeyDefault
FitnessConstA16
FitnessConstB10
FitnessTimeConstA60
FitnessTimeConstB10

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)#

KeyDefault
GreaterDefenseSuccessRateConstA2
GreaterDefenseSuccessRateConstB10
GreaterDefenseSuccessRateTimeConstA60
GreaterDefenseSuccessRateTimeConstB10

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#

KeyDefault
PartyHealConstA5
PartyHealConstB5

The Elf party-wide heal. Healed amount = ConstA + Energy/ConstB, applied to every party member in radius.

Bless#

KeyDefault
BlessConstA100
BlessTimeConstA300

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#

KeyDefault
BlindConstA20
BlindConstB25
BlindConstC50
BlindTimeConstA5

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#

KeyDefault
EarthPrisonConstA10

Single constant scaling the root's hold strength.

Iron Defense#

KeyDefault
IronDefenseConstA800
IronDefenseConstB800
IronDefenseTimeConstA10

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#

KeyDefault
BloodHowlingConstA10
BloodHowlingConstB200
BloodHowlingTimeConstA60

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 delay
  • MinDelay clamps the result to at least this many ms
  • MaxDelay clamps 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 hereRelated in
Per-skill cost, distance, target type, base damage rangeSkill.txt
Master-tree add-on bonuses summed into the formulas aboveMasterSkillTree.txt
Per-skill base damage tablesSkillDamage.txt
ReflectDamageRate<CLASS> and ReflectDamageMaxRateStack with Character.dat ReflectDamageRatePvP / ReflectDamageRatePvM
MagicCircleConstA formula divisor DWMagicDamageMinConstACharacter.dat
SummonMonster1-8Monster index definitions in Data/Monster/Monster.xml
All <Skill>Rate<CLASS> entriesClass codes mirror Character.dat damage rates
Skill handler attack speed and cooldownCommon.dat global attack-speed formula (MaxAttackSpeed, BaseSkillDelay, SpeedGrowthFactor, MinSkillDelay) in Common.dat
Per-skill delay overridesSkillTweaks plugin. Layers on top, does not replace
Reset-related stat caps that feed Energy into these formulasReset System
Combo skill payload that triggers Sword Power and similar skillsCustomCombo

Common Issues#

  • Buff feels weaker than expected on one class - check the <Skill>Rate<CLASS> entry; it might be below 100
  • Buff lasts forever - very large TimeConstA value, or a master-tree count bonus stacking unexpectedly; verify with a fresh cast after restart
  • Summoned monster is missing or wrong - SummonMonsterN points to an index that is not in Monster.xml, or the index defines a non-summon-friendly monster
  • Reflect never fires - Character.dat ReflectDamageRatePvP / ReflectDamageRatePvM set to 0, or ReflectDamageMaxRate set to 0 here
  • Mana Shield absorbs nothing - ManaShieldMaxRate = 0; shipped default is 50
  • 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 FireSlashConstB is 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 DefenseConstA to apply

Last updated October 1, 2026