> For the complete documentation index, see [llms.txt](https://axiomemu.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axiomemu.gitbook.io/docs/data/skill.md).

# 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](/docs/data/game-data-sync.md), 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](/docs/data/game-data-sync.md): 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](/docs/data/effect.md))                                                                                                                                                                                                                                                                                                   |
| 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                                                                                                                                                                                                                                              |

{% hint style="info" %}
**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](/docs/data/game-data-sync.md). Per-skill speed scaling and the mounted-cast override from [SkillTweaks.xml](/docs/data/plugins/skilltweaks.md) are layered in at the same time. Editing this file and restarting the GameServer is enough; no client-side BMD needs to be rebuilt.
{% endhint %}

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

{% hint style="info" %}
**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.
{% endhint %}

{% hint style="warning" %}
`ReqAmmo=1` requires ammo that matches the equipped launcher and still has durability. Set it on shot skills together with the bow/crossbow bit in `ReqWeapon`; on its own it does nothing.
{% endhint %}

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

{% hint style="info" %}
Reset servers that strip stats on reset can keep learned skills castable by setting `KeepSkillBelowLearnReq=1` in [Common.dat](/docs/gameserver/common-dat.md). Learning still enforces the requirements; only the per-cast re-check is skipped. The client mirrors the same values through [Game Data Sync](/docs/data/game-data-sync.md), so grayed-out icons match server rejections.
{% endhint %}

## Relationship to Other Skill Files

* [**MasterSkillTree.txt**](/docs/data/skill/masterskilltree.md) - master skill prerequisites and tree-progression values per master level
* [**SkillDamage.txt**](/docs/data/skill/skilldamage.md) - optional per-skill damage overrides vs users and monsters
* [**Skill.dat**](/docs/gameserver/skill-dat.md) - global formula constants (ManaShield, Greater Defense, etc.) that layer on top of the base Damage from this file
* [**SkillTweaks.xml**](/docs/data/plugins/skilltweaks.md) - per-skill delay scaling, minimum-delay floor, and mounted-cast override, also synced to client alongside this file
* [**CustomCombo.xml**](/docs/data/plugins/customcombo.md) - primary and secondary skill lists for the cross-class combo system, referencing `Index` from this file
* [**Character.dat**](/docs/gameserver/character-dat.md) - 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](/docs/gameserver/common-dat.md) 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](/docs/data/monster/monster.md); wrong type bypasses the wrong resistance
* **Change not applying** - clients already logged in keep the old skill data; reconnect or restart
