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 once at GameServer startup. Changes require a restart.

Format

Tab or space-delimited, 32 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; 1 = class can use this skill, 0 = cannot. 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

1 if the skill is granted by an equipped item, 0 if learned. Currently 0 for all shipped rows; item-granted skills are still resolved in game logic, not via this column

30

IsDamage

1 if the skill deals damage, 0 if utility/buff/debuff. Affects client damage-number display

31

SkillCategory

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

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 from SkillSpeedScale.xml is layered in at the same time. Editing this file and restarting the GameServer is enough; no client-side BMD needs to be rebuilt.

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

  • SkillSpeedScale.xml - per-skill delay scaling and minimum-delay floor, 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

  • 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 SkillSpeedScale.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