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

Skill

Master skill database - damage, costs, range, requirements, effects for every skill

Single source of truth for every skill's base data: damage, mana/AG cost, range, cooldown, damage type, status effect, level and stat requirements. Sent to the client at login via Game Data Sync, replacing the need for client-side Skill_*.bmd files.

File Location

Data/Skill/Skill.txt

Loaded at GameServer startup. /reload skill (or reload.skill in the Server Manager) reloads it without a restart, and re-adds the CustomSkills.xml rows on top. Skill data is also sent to the client at login: after /reload skill, run /reload plugins to rebuild that copy, then players relog.

Format

Tab or space-delimited, 34 columns per row. First lines are comments; each row is one skill entry. Terminated by end.

Columns

Col
Name
Effect

0

Index

Skill ID. Must match the skill enum shared with the client

1

Name

Display name, max 32 chars. Quote if it contains spaces

2

Damage

Base damage value. Multiplied by level/formula

3

Mana

Mana cost per use

4

BP

Ability Gauge cost per use

5

Range

Attack range in tiles (magic skills usually 6, melee 2-3)

6

Radio

AoE radius in tiles. 0 = single target

7

Delay

Cooldown in milliseconds

8

Type

Damage type / element. 0 = Ice, 1 = Poison, 2 = Lightning, 3 = Fire, 4 = Earth, 5 = Wind, 6 = Water, 255 = none. The token * in the file is parsed as 255

9

Effect

Status effect applied on hit (maps to Effect.xml)

10

RequireLevel

Minimum character level to learn

11

RequireEnergy

Minimum energy stat to cast

12

RequireLeadership

Minimum command/leadership (Dark Lord)

13

RequireKillCount

Monster kills required to unlock

14

RequireGuildStatus

Required guild rank bitmask. 0x80 = Guild Master, 0x40 = Sub/Office Master, 0x20 = Battle Master. Values may be OR'd together. Server uses this for validation; client receives the expanded DutyClass flags during sync

15-21

RequireClass (DW, DK, FE, MG, DL, SU, RF)

One column per class, holding the minimum evolution tier that may use the skill. 0 = the class can never use it, 1 = base class and up, 2 = second class (Soul Master, Blade Knight, ...) and up, 3 = third class (Grand Master, Blade Master, ...). Column 15 is Dark Wizard, column 21 is Rage Fighter, matching the class order used elsewhere in the server

22

RequireStrength

Minimum strength stat to cast

23

RequireDexterity

Minimum dexterity stat to cast

24

MasteryType

Master skill tree category (1-6, 255 = none)

25

SkillUseType

How the skill is activated (0 = normal attack, 1 = buff, 2 = passive, etc.)

26

SkillBrand

Visual effect category identifier used by client effect selection

27

SkillRank

Skill tier within its mastery tree

28

MagicIcon

Client-side icon index shown on the skill bar

29

ItemSkill

Original client value: 1 for weapon/item skills, 0 otherwise. Not used by the game; item-granted skills are resolved in game logic

30

SkillFamily

Original client value (was called IsDamage): 1 weapon skill, 2 magic spell, 3 summoner book upgrade, 4 heal/buff spell or summoner book, 0 other. It is not a "deals damage" flag and is not used by the game

31

SkillCategory

Client TypeSkill. 0 = CommonAttack (damage/attack), 1 = Buff (self/party), 2 = DeBuff (enemy), 3 = FriendlySkill (ally-targeting, e.g. Heal)

32

ReqWeapon

Bitmask of equipment the skill requires. 0 = no requirement. See Equipment Requirements below

33

ReqAmmo

1 = the skill also needs matching ammo equipped with durability above 0 (arrows for a bow, bolts for a crossbow). 0 = none

Client sync: Radio and RequireGuildStatus are server-only. RequireGuildStatus is expanded into three DutyClass flags on the wire. Every other column is sent to the client at login through Game Data Sync. Per-skill speed scaling and the mounted-cast override from SkillTweaks.xml are layered in at the same time. Editing this file and restarting the GameServer is enough; no client-side BMD needs to be rebuilt.

Equipment Requirements

ReqWeapon (column 32) is a bitmask over item groups. A skill is only castable when one of the listed item groups is equipped; the check runs for manual casts, MuHelper and the offline helper alike, so bots can no longer fire skills their weapon does not support.

Bit
Value
Requirement

0

1

Sword (item group 0)

1

2

Axe (group 1)

2

4

Mace / Scepter (group 2)

3

8

Spear (group 3)

4

16

Bow / Crossbow (group 4; the arrow and bolt subtypes 7 and 15 are excluded)

5

32

Staff (group 5)

6

64

Shield (group 6)

7

128

Helm (group 7) - reserved, unused

8

256

Rage Fighter sword-form gloves (group 0, subtypes 32-35)

15

32768

Accept the item in either hand. Without this bit only the right hand (weapon slot 0) is checked

Common values:

Value
Meaning
Example skill

0

No equipment requirement

most magic skills

1

Sword

Spiral Slash

8

Spear

Impale

32

Staff

Mana Rays

31

Any weapon except a staff

Death Stab

32784

32768 + 16 - bow or crossbow in either hand

all Elf shot skills

33024

32768 + 256 - gloves in either hand

Chain Drive

Why the either-hand bit exists: a crossbow sits in the right hand with bolts on the left, while a bow sits in the left hand with arrows on the right. Any skill that must work with both needs bit 15 set, otherwise it only fires with one of the two.

Stat Requirements

The Require* columns (10-14, 22-23) are enforced twice: when learning the skill, and again on every cast. All five stats (strength, dexterity, energy, vitality via level, and command) are checked - there is no separate formula gate.

Reset servers that strip stats on reset can keep learned skills castable by setting KeepSkillBelowLearnReq=1 in Common.dat. Learning still enforces the requirements; only the per-cast re-check is skipped. The client mirrors the same values through Game Data Sync, so grayed-out icons match server rejections.

Relationship to Other Skill Files

  • MasterSkillTree.txt - master skill prerequisites and tree-progression values per master level

  • SkillDamage.txt - optional per-skill damage overrides vs users and monsters

  • Skill.dat - global formula constants (ManaShield, Greater Defense, etc.) that layer on top of the base Damage from this file

  • SkillTweaks.xml - per-skill delay scaling, minimum-delay floor, and mounted-cast override, also synced to client alongside this file

  • CustomCombo.xml - primary and secondary skill lists for the cross-class combo system, referencing Index from this file

  • Character.dat - class/global damage rate multipliers applied on top of this file's Damage

  • SkillElect.hit in this folder is a binary client asset; do not edit on the server side

Common Issues

  • Skill shown but does no damage - Damage is 0, or the class's RequireClass column is 0

  • Skill won't learn - RequireLevel / RequireEnergy / RequireLeadership / RequireKillCount / RequireStrength / RequireDexterity gate not met

  • Skill was learned but stopped casting after a reset - the Require* columns are re-checked on every cast. Set KeepSkillBelowLearnReq=1 in Common.dat if resets should not disarm learned skills

  • Skill icon greyed out with a weapon equipped - ReqWeapon does not list that item group, or the weapon sits in the left hand and bit 15 (32768, either hand) is not set

  • Bow skill fails silently - ReqAmmo=1 and the equipped arrows or bolts are missing or at 0 durability

  • Range feels off vs client - the client's view comes from the synced value of Range; server value is authoritative

  • Skill cooldown too short / long - Delay column; combined with per-skill override in SkillTweaks.xml

  • Effect type wrong - Type column maps to elemental resistances via Monster.xml; wrong type bypasses the wrong resistance

  • Change not applying - clients already logged in keep the old skill data; reconnect or restart

Last updated