Skip to content
RF DataData reference
RU

Characters and creatures

Skills and force

Five effect tables, mastery limits, SkillForce.edf

Total 220 Known 106 Derived 110 Unused 4

Overview

Skills, force, class skills and potion and ammo effects are five server tables with two schemas (Skill.dat, ClassSkill.dat, BulletItemEffect.dat, PotionItemEffect.dat share one schema, Force.dat has its own). The client SkillForce.edf and NDSkillForce.edf are derived from the server tables: the same order and record count in every block, the code as a hex number; the conversion rules were verified byte for byte. Mastery limits are the four *MasteryLimit.dat tables ↔ block 5 of Character.edf.

How it works

  • Mastery is a pair (kind, number): weapon, defence, shield, skill 0–47, force 0–23, crafting 0–2, race special skill. The limit comes from *MasteryLimit.dat by class and level, in points by the level ↔ points formula.
  • Level 1–7 of a skill or force is computed from mastery by a common formula; the 7-level arrays of class skills and projectiles matter only in their first element.
  • Checks on use: the order and refusal codes are fixed; an attack skill needs m_nAttackable ≠ 0, attack shape 0–7, weapon types in m_strFixWeapon and a projectile for ammo weapons; attack force is used only with a staff.
  • Action: instant effect m_nTempEffectType (−1, 0–57, 70–75; anything else crashes the server), continuous effect and whom it affects m_nContAreaType (0, 1, 2, 3, 10; values 2 and 3 work as 0), aura — a kind 4 skill with radius m_nBonusDistance.
  • Flag strings: race 5 positions, target 4, rank 12, weapon 13 (12 types + cloak); other positions are not read.
  • Required records: BulletItemEffect with codes 15 and 16 (otherwise the server does not start), 17 — for instant effect 46.

What matters when editing

  • The key is the row number; auxiliary skills are in the first 256 rows of Skill.dat.
  • ForceItem.m_strForce_Codekey points to an existing Force.dat code; a class skill must be in the list of a class of the right type.
  • Client-only conditions (passive skill, special type, shield) are not checked by the server.

The client SkillForce.edf is assembled from the server Force.dat, Skill.dat, ClassSkill.dat, BulletItemEffect.dat, PotionItemEffect.dat by the generator R&D\disasm\skillforce\gen.py; on the AoP pair the result matched byte for byte (sfcheck.py, skills.md §17). Therefore all fields of the client record are derived; bytes the generator does not write are constant 0.

Files of the category

11 in the registry
FileSideFormatLevelCorporaRecordDigestNote
script\BulletItemEffect.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 1168, GU 1168, Sirin 1168skills.md, items.mdskill schema (Skill.strs); items.md §11.3, skills.md §9
script\ClassSkill.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 1168, GU 1168, Sirin 1168skills.mdskills.md §9–10
script\Force.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 1088, GU 1088, Sirin 1088skills.mdskills.md §9: its own schema, 0x50 shorter than Skill
script\PotionItemEffect.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 1168, GU 1168, Sirin 1168skills.md, items.mdskill schema (Skill.strs); items.md §11.3, skills.md §9
script\RangerMasteryLimit.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 232, GU 232, Sirin 232skills.mdskills.md §6.1–6.2
script\Skill.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 1168, GU 1168, Sirin 1168skills.mdskills.md §9–10
script\SpecialistMasteryLimit.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 232, GU 232, Sirin 232skills.mdskills.md §6.1–6.2
script\SpiritualistMasteryLimit.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 232, GU 232, Sirin 232skills.mdskills.md §6.1–6.2
script\WarriorMasteryLimit.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 232, GU 232, Sirin 232skills.mdskills.md §6.1–6.2
DataTable\<language>\NDSkillForce.edfclientedfderivedAoP ✓ (en-ph, ru-ru), GU ✓ (en-gb, ru-ru), Sirin ✓ (en-gb, ru-ru)AoP 5 sections: 544×5, GU 5 sections: 544×5,…skills.md, localization.mdDerived from: names and descriptions of skills, force, effects. skills.md §17
DataTable\SkillForce.edfclientedfderivedAoP ✓, GU ✓, Sirin ✓AoP 5 sections: 1096/1120×4, GU 5 sections: …skills.md, items.mdDerived from: Force.dat, Skill.dat, ClassSkill.dat, BulletItemEffect.dat, PotionItemEffect.dat. skills.md §17

“ready for full” — the format is understood and the fields are described; “derived” — the file is assembled from another; “opaque” — the format is not fully known; “postponed” and “out of scope” — the studio does not edit the file.

Sections of the category

The files of the category are split into groups; every group and subgroup has its own page with the fields of its files only.

Force

script\Force.dat

Total 46 Known 45 Derived 0 Unused 1

Mastery limits

script\RangerMasteryLimit.dat, script\SpecialistMasteryLimit.dat …

Total 10 Known 8 Derived 0 Unused 2

Client: SkillForce.edf

DataTable\<language>\NDSkillForce.edf; DataTable\SkillForce.edf

Total 110 Known 0 Derived 110 Unused 0

Unused parameters

Fields that neither the server nor the client reads. For each: why it was decided so and where that was established. The editor keeps their bytes as they are.

script\Force.dat server file

OffsetFieldWhy unusedData
+0x344m_nTempParamCode
unused: the server does not read the field; the client receives it as the instant effect block code, but there is no reader of the code; the potion tooltip with code 0/1/2 is identical (game, G110, 29.10.2026); keep as imported, 0 for new records
skills.md §17.3; game-checks.md G110
3 values; most often -1 (92%)

script\RangerMasteryLimit.dat, script\SpecialistMasteryLimit.dat, script\SpiritualistMasteryLimit.dat, script\WarriorMasteryLimit.dat server file

OffsetFieldWhy unusedData
+0x000m_dwIndex
never read
skills.md §6.1: digest — “0x00 | m_dwIndex | — | never read”; does not go to the client file (block 4 of Character.edf is fully mapped, skills.md §6.6)
66 values; most often 0 (2%)
+0x004m_strCode
never read (0 everywhere in AoP)
skills.md §6.1: digest — “0x04 | m_strCode (64) | — | never read (0 everywhere in AoP)”; does not go to the client file (block 4 of Character.edf is fully mapped, skills.md §6.6)
always 0
RF Online is a trademark of its owners. The reference is compiled from research for content development. Built 01.11.2026 · field catalog dated 29.10.2026 · Adagio UI 0.5.0