Classes Configuration
Classes are templates: you can edit the bundled configs or override them. Each class has tiers (T0–T4), innate stat bonuses per tier, weapon damage bonuses per weapon kind, and a list of passives. When you use a weapon that matches one of the class’s weapon kinds, you get the class’s damage bonus and passives for that weapon; innate bonuses apply whenever you have that class selected.How class bonuses apply
- Weapon kinds — In
ClassesGlobalConfig.json, WeaponKinds defines which weapons the mod recognizes. Each kind has an IncludedInId string (a part of the id is enough: e.g."Wand"matches any item id containing “Wand”). When you hold or use a weapon, the mod checks whether the weapon’s item id (case-insensitive) contains that string. If it does, the weapon is treated as that kind. - Class weapons — Each class lists weapon kind ids in its Weapons array and in each tier’s Dmg object. Only weapons that match one of those kinds get the class’s damage bonus (percentage per level). Innate bonuses (health, defense, etc.) apply for the class regardless of weapon.
- Passives — Class passives trigger in combat (damage dealt, damage taken, on kill) when you have that class selected; they are not tied to a specific weapon, but playing with that class’s weapons is how you tier up and unlock more.
Config checklist
- Weapon kinds — Every weapon id you use in a class’s
WeaponsandDmgmust exist inClassesGlobalConfig.json→ WeaponKinds (with IncludedInId and Icon). - All five tiers — Each class file must have exactly 5 tier objects (T0–T4). Each tier must have T, Innate, and Dmg; Dmg keys must match the Weapons array.
- Passives — Every id in a class’s Passives array must exist in
PassivesConfig.json. - Reload — After editing, use
/lvl reloador restart the server so the mod picks up changes.
Config location
- Class files:
mods/Zuxaw_RPGLeveling/Classes/Class<Name>.json(e.g.ClassHeavy.json) - Global class list:
ClassesGlobalConfig.jsonin the same folder (enables/disables classes, weapon kinds, tier progression) - Display names: All class names and descriptions are overridable via MessagesLanguageMapping so you can localize or rename without editing class JSON
Class JSON structure
Each class file contains:| Field | Description |
|---|---|
Id | Unique class id (e.g. "Heavy"). Used in code and config references. |
Icon | Item ID used as the class icon in the UI (e.g. "Weapon_Battleaxe_Doomed"). |
Weapons | Array of weapon kind ids this class gets damage bonuses for (e.g. ["Axe", "Battleaxe"]). Must match entries in ClassesGlobalConfig.json → WeaponKinds. |
Tiers | Array of tier definitions (T0–T4). Each tier has T, Innate (stat bonuses per level), and Dmg (weapon damage % per level per weapon). |
Passives | Array of passive ids (e.g. ["HighGuard", "ThickSkin", "Overkill"]). Must exist in PassivesConfig.json. |
Innate and Dmg
- Innate — Stat bonuses that scale with your player level. Keys are stat names (e.g.
Health,Stamina,Defense,MovementSpeed,ManaRegenSpeed). Values are per-level rates (e.g.0.35= 0.35% per level, or as defined by the mod). - Dmg — Per-weapon damage bonus per level. Keys are weapon kind ids; values are percentage per level (e.g.
1= 1% per level).
Adding or removing classes
- To add a class: create a new
Class<YourClass>.jsonand add its filename to the default class list in the mod (or ensure your config loader includes it). - To disable a class: remove it from the list of loaded class files in
ClassesGlobalConfig.json/ the mod’s class list, or omit its file. - To override a class: replace or edit the corresponding
Class<Name>.json; you can change weapons, passives, and all tier values.
Full class JSON example
Below is a complete Heavy class file. Every class file follows this shape:Id, Icon, Weapons, Tiers (with T, Innate, Dmg per tier), and Passives.
- Innate keys can include:
Health,Stamina,StaminaConsumption,Defense,MovementSpeed,ManaRegenSpeed, etc. Values are per-level rates (e.g.1.5= 1.5% per level for Health). - Dmg keys must match the class
Weaponsarray; values are damage % per level for that weapon. - Passives ids must exist in
PassivesConfig.json.
Minimal class JSON example
If you override an existing class and only want to change a few things, you still need all five tiers (T0–T4). Here is a minimal structure; adjust numbers and passive ids as needed.ClassesGlobalConfig.json example
Global class settings live in the sameClasses/ folder. WeaponKinds defines which weapon ids can be used in class Weapons and Dmg; TierProgression defines how players advance from T0 to T4 (by level range and kills).
- IncludedInId — A substring that the weapon’s item id must contain (case-insensitive). You do not need the full item id: a part is enough to define a whole kind. Example:
"Wand"matches any weapon whose id contains “Wand” (e.g.Weapon_Wand_Wood,Weapon_Wand_Crystal_Flame). Example:"Lightsaber"matchesStarWarsMod_Weapon_Lightsaber_Blue. This value is the id you use in classWeaponsandDmg. - Icon — Item ID used in the UI for this weapon kind (e.g. the mod’s weapon item id).
Custom weapons (modded weapons)
To give a class bonuses, add the weapon kind id to the class’sWeapons array and to its Dmg entries per tier so the class gets bonuses when using that weapon.
To give a class bonuses for a modded weapon: (1) Register the kind in WeaponKinds with IncludedInId and Icon. (2) Add that id to the class Weapons array and to every tier’s Dmg. Full step-by-step: Add Modded Weapons to a Class.