Configuration
How mcMMO's configuration system works, what each config file controls, and the rules that keep your server from crashing on a bad edit.
This page explains how mcMMO's configuration works as a whole. Each individual file has its own detailed page (linked below).
Where the files live
Everything is in:
plugins/mcMMO/mcMMO generates the default config files here the first time it runs (and regenerates any
file that's missing). To reset a file to defaults, delete it and restart. mcMMO copies
a fresh copy out of mcMMO.jar.
Changes require a full restart. Reloading is not supported. mcMMO reads its config at
startup; /reload or live edits won't take effect and can break the plugin. Stop and
start the server after any edit.
How edits are validated
mcMMO checks your config files at startup. If it finds an illegal value (a number out of range, a misspelled key, an invalid material name), it refuses to run with broken settings and disables itself. The server keeps running; mcMMO just won't load.
If mcMMO doesn't come up after an edit, read your server log. mcMMO is deliberately verbose about exactly which file and key it rejected. Fix that key and restart.
A file can be valid YAML and still have invalid mcMMO values. The YAML being well-formed only means the syntax is correct. mcMMO still range-checks the actual values.
What happens on update
- If a config file is missing, mcMMO recreates it with defaults.
- If an update adds new settings, mcMMO adds those keys to your existing files for you, without touching your customized values, except for a few loot/recipe files that don't auto-merge (see below).
upgrades_overhaul.ymlis internal: mcMMO uses it to track one-time data upgrades. Do not edit it.
These files do not auto-add new keys on update. If you customize them, update them by
hand each release (or delete them to regenerate fresh defaults):
treasures.yml, fishing_treasures.yml, repair.vanilla.yml, salvage.vanilla.yml.
The main config file
All configuration files
| File | Controls | When you'd edit it |
|---|---|---|
config.yml | General toggles, parties, ability cooldowns, scoreboards, database | Most common starting point |
advanced.yml | The math behind every sub-skill: chances, caps, formulas, activation values | Re-balancing skills |
experience.yml | XP curve & formula type, XP per block/mob/action, diminishing returns | Changing leveling speed |
skillranks.yml | The level at which each sub-skill rank unlocks | Re-pacing unlocks |
coreskills.yml | Enable/disable each skill and a few per-skill basics | Turning skills off |
chat.yml | Party-chat and admin-chat formatting & behavior | Customizing chat channels |
sounds.yml | Which mcMMO sound effects play, and their volume/pitch | Muting/tuning sounds |
potions.yml | Alchemy concoction recipes | Adding/removing brews |
treasures.yml | Excavation (Archaeology) loot tables | Custom dig loot |
fishing_treasures.yml | Fishing & Shake loot tables | Custom fishing loot |
itemweights.yml | Item rarity weights used by fishing treasure | Tuning treasure rarity |
repair.vanilla.yml | What Repair can fix and with which materials | Custom repair recipes |
salvage.vanilla.yml | What Salvage can break down and what it returns | Custom salvage recipes |
party.yml | Master on/off switch for the entire party system | Disabling parties |
persistent_data.yml | Which mcMMO data is saved persistently | Advanced data control |
custom_item_support.yml | Recognizing custom/modded items as mcMMO tools | Modded servers |
hidden.yml | Experimental/internal toggles | Rarely; leave alone |
upgrades_overhaul.yml | Internal upgrade tracking | Never edit |
Older guides mention a child.yml for child-skill (Salvage/Smelting) settings. Current
mcMMO no longer ships it. Child-skill relationships are built into the plugin. See
Getting Started.
Editing YAML safely
mcMMO config files use YAML. A few rules prevent most mistakes:
- Indent with spaces, never tabs. mcMMO's files use 4-space indentation; keep new lines aligned with the block they belong to.
- Keep the key names exactly as generated. Don't rename or re-case keys.
- Match the value type. A setting that ships as
true/falseexpects a boolean; a number expects a number (no quotes). - When in doubt, paste the file into a YAML validator such as YAML Lint to catch syntax errors before you restart.
You can always view mcMMO's current defaults in the source: default config files on GitHub.