Skills
skills.toml lists the 58 skills. Each id names a SkillType, whose value is the
number the client uses (0 to 57), so the entries stay in that order, from alchemy to
throwing:
[[skill]]id = "alchemy"name = "Alchemy"title = "Alchemist"profession_name = "Alchemy"primary_stat = "int"secondary_stat = "dex"str_scale = 0.0dex_scale = 5.0int_scale = 5.0str_gain = 0.0dex_gain = 0.5int_gain = 0.5gain_factor = 1.0| Field | Meaning |
|---|---|
id |
The skill, by SkillType name; its value is the client’s skill id. |
name |
The skill name. |
title |
The title of a character whose best skill is this one. |
profession_name |
The name the profession files use for the skill. |
primary_stat, secondary_stat |
The stats the skill depends on: str, dex or int. |
str_scale, dex_scale, int_scale |
The chance, in percent, that a skill gain also raises that stat. |
str_gain, dex_gain, int_gain |
How much a skill gain favours that stat when a stat rises. |
gain_factor |
How fast the skill rises; 1.0 is normal. |
delay |
Optional. The seconds a character waits before another skill after using this one, from 0 to 3600. Without it, and when the script of the skill returns no number, one second. |
The 23 skills a player uses directly carry ModernUO’s waits:
delay |
Skills |
|---|---|
| 30 | begging, stealing, animal_taming |
| 10 | detecting_hidden, hiding, stealth, poisoning, remove_trap, tracking, meditation |
| 1 | anatomy, animal_lore, arms_lore, item_identification, taste_identification, evaluating_intelligence, forensic_evaluation, cartography, inscription, spirit_speak, peacemaking, provocation, discordance |
Where ModernUO’s wait depends on the outcome (meditation, spirit_speak, hiding) the file has the
usual one, and the script of the skill returns the others. Ten skills have a script so far, in scripts/skills/: a
delay does nothing until the skill has one.
The skills read gain_factor when a skill is gained, delay when it is used, and
str_gain, dex_gain and int_gain when a stat may rise; str_scale, dex_scale, int_scale,
primary_stat and secondary_stat are not read yet.
Validation at startup
Section titled “Validation at startup”The server stops when:
skills.tomldoes not exist or has no[[skill]]entries;- the ids are not in
SkillTypeorder without gaps: entry 0 must bealchemy(value 0), entry 1anatomy(value 1), and so on; - an id is a number or not a
SkillTypename; - a
delayis below 0 or above 3600.
See also
Section titled “See also”- Data files overview: file locations, loading order and shared value formats.
- Check your changes: validate edited data before restarting.
Made with ❤️ by Tom
