ClassesCore – Class JSON Configuration
This guide explains how to create a class configuration JSON file used by ClassesCore.
Classes define gameplay roles for players and can restrict equipment such as weapons and armor.
JSON Generator (Recommended)
To simplify creating class files, you can use the official generator: https://azuredoom.com/classescore/
The generator allows you to:
- build class JSON visually
- avoid syntax errors
- quickly configure stats, passives, and equipment rules
- export ready-to-use JSON files
- generate asset packs
Recommended workflow:
- Create or edit your class using the generator
- Export the JSON (or pack)
- Place it into your
classes/folder - Start the server and test
Where Files Are Loaded From
Class configuration files are loaded from either:
Mod resources
resources/classes/
Asset zip packs
classes/
When the game loads, ClassesCore automatically scans these folders and registers all class definitions.
Pack loading workflow
Conflict handling rules
- Built-in/classpath definitions load first.
- If two built-in/classpath definitions use the same
id, the first one loaded wins and later duplicates are skipped with a warning. - External asset packs load after built-ins.
- Asset packs are processed in ascending filename order.
- If an asset pack provides a definition with the same
idas an existing built-in or previously loaded pack definition, the asset pack version overrides the existing one. - Because packs are sorted before loading, later-sorting pack files have the final say when multiple packs define the same
id.
Effective precedence
- Earliest built-in/classpath definition wins among built-ins.
- Asset packs override built-ins.
- Among asset packs, the last pack in ascending filename order wins for duplicate
idvalues.
File Structure
Example project structure:
my-mod/
├─ resources/
│ └─ classes/
│ ├─ warrior.json
│ ├─ mage.json
│ └─ archer.json
Or inside an asset zip:
assets.zip
└─ classes/
└─ warrior.json
Each file represents one class definition.
Testing a Class
After creating your JSON file:
- Place it inside the classes folder
- Start the server
- Use the
/joinclasscommand to select the class
Best Practices
Do not store multiple classes in one file.
Correct:
classes/
warrior.json
mage.json
archer.json
