For the complete documentation index, see llms.txt. This page is also available as Markdown.

Skill.dat

Numerical parameters for buff and utility skills (duration, strength, per-class scaling)

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.

Attack Speed Layering

The global attack-speed formula in Common.dat produces a base delay for every skill. The SkillSpeedScale 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/SkillSpeedScale.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 SkillSpeedScale.

Cross-File Dependencies

Setting here
Related in

Per-skill cost, distance, target type, base damage range

Master-tree add-on bonuses summed into the formulas above

Per-skill base damage tables

ReflectDamageRate<CLASS> and ReflectDamageMaxRate

Stack with Character.dat ReflectDamageRatePvP / ReflectDamageRatePvM

MagicCircleConstA formula divisor DWMagicDamageMinConstA

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

SkillSpeedScale plugin. Layers on top, does not replace

Reset-related stat caps that feed Energy into these formulas

Combo skill payload that triggers Sword Power and similar skills

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