MasterSkillTree.txt
Per-master-level skill progression table. For each master skill, defines 20 values (level 1-20 progression), prerequisites, replacement chains, and per-class Rank gating.
File Location#
Data/Skill/MasterSkillTree.txt
Loaded once at GameServer startup. Changes require a restart.
Format#
Whitespace-delimited. One row per master skill. First comment line names the columns. Terminated by end. Numeric values in MainValue1-MainValue20 are parsed as floats; all other columns are integers.
Columns#
| Column | Effect |
|---|---|
Index | Skill index from Skill.txt |
Group | Tree group. 1 = left, 2 = middle, 3 = right (three master trees per class) |
Rank | Vertical tier within the tree (1 = base row, 9 = top row). Higher ranks require lower-rank investment in the same group |
MinLevel | Minimum master level for the first investable point in this skill. Typically 1 |
MaxLevel | Maximum investable level for this skill. Fixed at 20 in S6.3; values above 20 are clamped |
MainValue1 ... MainValue20 | Effect magnitude at invested level 1 through 20. Parsed as floating-point; per-level curve is pre-baked in the table, not interpolated by formula |
RelatedSkill | Skill whose effect also benefits from this row's bonus (e.g. an "Improved" node boosting a base skill). 0 = none |
ReplaceSkill | Skill index that gets replaced on the active bar when this node is learned. 0 = no replacement |
RequireSkill (first) | Primary prerequisite. Must reference an Index in this file. 0 = no prerequisite. Both header labels in the shipped file are the string RequireSkill; this is the first of the two |
RequireSkill (second) | Secondary prerequisite. 0 = not required. When both are non-zero both must be learned |
DW / DK / FE / MG / DL / SU / RF | Per-class visibility and tree position. Non-zero = this class sees the node at that ordinal position in its tree; 0 = the class does not see this node |
Tree Semantics#
- Group - which of the three trees a skill belongs to (left/middle/right columns in the master UI)
- Rank - vertical position in the tree. Higher Rank requires at least one investment at every lower Rank within the same Group before becoming learnable
- MainValueN - effect magnitude at invested level N. The server looks up the value for the character's current invested level directly; it does not compute intermediate values between the 20 entries
Relationship to Common.dat#
Common.dat Master Skill Tree Settings controls global gates:
MasterSkillTree=1enables the treeMasterSkillTreePoint= points per master levelMasterSkillTreeMaxLevel= master level cap
Cross-File Dependencies#
| Attribute | Related in |
|---|---|
Index | Skill.txt |
| Base skill damage formula constants | Skill.dat |
Both RequireSkill columns | Must reference another entry in this file |
ReplaceSkill | Must reference an existing Skill.txt entry |
| Class rate multipliers | Character.dat |
| Attack speed / delay scaling | SkillTweaks.xml |
| Cross-class combo list | CustomCombo.xml |
| Master level cap | Common.dat |
Common Issues#
- Skill available too early -
Ranktoo low for the intended progression; reorder within the Group - Per-class rank shows zero - the class column is
0; set to the non-zero position that class should see - MainValueN progression too flat - regenerate the curve; shipped values follow a tuned diminishing-returns shape
- Prerequisite skill learned but dependent still locked - one of the two
RequireSkillcolumns points to the wrongIndex, or the required node has not reached at least level 1 - Replace not applying -
ReplaceSkillmust match the exactIndexof the skill being replaced in the active bar - File edit ignored - missing
endterminator or a malformedMainValuetoken; parser drops the file on error