Reloading and Updating Changes
Not every change needs a server restart, but not every change can be picked up live either. This page explains what /dmzreload does, how config values reach the clients, when you still need a restart or a resource reload, and what happens to your files when DragonMineZ itself is updated.
The /dmzreload command
/dmzreload [target] is defined in ReloadCommand.java. It requires the dragonminez.dmz.reload permission node, dragonminez.admin, or operator level 2 (see Permissions). The console can always run it.
/dmzreload -> reloads everything (same as "all")
/dmzreload all -> config + story + wishes
/dmzreload config -> config files, raids, storage, NPC rules and placements
/dmzreload story -> quests, sagas, side quests and NPC dialogues
/dmzreload wishes -> dragon wishes only
| Target | What it reloads |
|---|---|
config |
Every file in config/dragonminez (general, combat, training, skills, techniques, entities, races, forms, stack forms, raids, tournaments), the raid types, the player storage backend (StorageManager.reload()), NPC alignment rules and NPC placements (respawning configured NPCs). Then every config file is resent to every online player, and their skill limits and progression are resynced.
|
story |
QuestRegistry.loadAll(server), which re-reads sagas, quests and side quests from the world save (running the quest auto-upgrade described below), and DialogueRegistry.loadAll(server) for NPC dialogues. Then the quest registry is resent to every online player.
|
wishes |
WishManager.loadWishes(server), then the wishes are resent to every online player.
|
all |
All of the above, in that order. |
After a reload, connected players are resynced automatically; they don't need to relog. The console also prints the JSON load report (files that failed to load, files that were auto-upgraded).
In-game config screen
The DragonMineZ entry of the Forge Mods screen has a config screen that lists every file in config/dragonminez and lets you edit them in-game; while you are in a world it also has a reload button that runs /dmzreload. It edits the files of your own game folder, so it is meant for singleplayer and LAN hosts. On a dedicated server, edit the server's files.
Changing one value live with /dmzconfig
/dmzconfig <file> <key> <value> or /dmzconfig <file> <section> <key> <value> (permission: dragonminez.admin or operator level 2) changes a single value, saves the file and resends it to every online player. Examples:
/dmzconfig general-server gameplay tpGainMultiplier 2.0
/dmzconfig general-server worldGen generateDragonBalls false
It only edits plain values (numbers, true/false, text) directly in the file or one section deep; lists and deeper objects must be edited in the file. It writes the file as it is, without the version upgrade described below.
How config reaches the clients
- When a player joins, the server sends them every file under
config/dragonminezexcept the client-onlygeneral-user.jsonandhud_layout.json, one compressed packet per file. While connected, the client uses the server's values for everything those files control (stats, forms, skills, combat values shown in the menus and so on). /dmzreload configand/dmzconfigsend the files again to everyone online.- The server sends the files as they are on disk. If you edit a file and don't reload, the server keeps running the old values while players who join afterwards receive your edited file. Always run
/dmzreload configafter editing. - On disconnect, the client drops the server's copy and goes back to its own local files.
What /dmzreload covers
config/dragonminez/general-server.json,combat.json,training.json,skills.json,techniques.json,entities.jsonconfig/dragonminez/races/<race>/character.json,stats.jsonandforms/*.json, andconfig/dragonminez/forms/*.json(stack forms)config/dragonminez/raids/*.jsonandconfig/dragonminez/tournaments/*.json<world save>/dragonminez/{sagas,quests,sidequests}and<world save>/dragonminez/dialogues(withstoryorall)<world save>/dragonminez/wishes/*.json(withwishesorall); see Custom Wishes<world save>/dragonminez/npcs/{placements.json,alignment_rules.json}(withconfigorall); see NPC Placement and Alignment
What /dmzreload does not cover
general-user.jsonandhud_layout.json: these are client files. Players change them from the in-game Configuration screen and the HUD editor; hand edits need a game restart.- Resource pack assets (models, textures, animations under
assets/dragonminez/...). They need a client resource reload (F3 + T), since they are loaded on the client, not from the server config. - Datapack reload listeners:
spacepod/*.json(see Space Pod Destinations),weapon_attributes/*.json(see Weapon Attributes) andrhythm_charts/*.json. These follow vanilla datapack rules: use the vanilla/reloador restart the server. - External Dragon Ball add-on packs under
<game dir>/dragonballs/. They are re-read by the vanilla/reload(ball sets, radars, dragons and the pack's wishes). Run/dmzreload wishesafterwards so the per-world wish files are merged on top of the reloaded pack wishes again. - Storage backend switch (
NBT↔JSON↔DATABASE):/dmzreload configsaves the online players and restarts the storage backend with the new settings, but switching backends with players online is not something to do casually; prefer doing it with the server empty. - New Java code or add-on jars: these always require a restart.
Updating DragonMineZ
When you install a new DMZ version, your files are upgraded automatically on the next start.
Config files
Each config file carries a configVersion (for example "2.2.0"). When it is older than the mod's version, DMZ moves the old file to config/dragonminez/oldBackup/<same path>, writes the new defaults, and merges your values back in: values you never touched take the new default, values you changed are kept, and new keys are added. The details are on How to JSON.
Quests, sagas and side quests
With autoUpdateQuests enabled in General Server Config (the default), the default quest, saga and side-quest files DMZ generated in your world are upgraded the same way when the server starts (and on /dmzreload story):
- Each generated file carries a
"defaultsVersion". Files already at the current version are skipped. - A field you never edited takes the new default, so balance fixes reach your world.
- A field you edited keeps your value. If the new version also changed that field, it is recorded as a conflict, and your value still wins.
- Keys you added are kept. Lists (objectives, rewards) are only merged entry by entry when their structure still matches; otherwise your whole list is kept and reported as a conflict.
- Before a file is changed, a copy goes to
<world>/dragonminez/oldBackup/<same path>. A summary of what changed is written to<world>/dragonminez/quest_update_report.txtand shown in the JSON load report. - Quest files you created yourself are never touched.
With autoUpdateQuests set to false, default files are only written when they are missing.
/dmzrestoreupdate. It deletes everything in <world>/dragonminez/wishes, sagas and quests, then runs /dmzreload all to regenerate them (side quests are not touched). It asks for confirmation first: click the button or run /dmzrestoreupdate confirm within 15 seconds.Practical workflow
- Edit your JSON file or files.
- Validate the JSON syntax (see How to JSON).
- Run the narrowest
/dmzreload <target>that covers your change:configfor balance, race, form and raid edits,storyfor quest, saga and dialogue edits,wishesfor wish edits. - Check the server log (or the JSON load report in chat). A
malformed JSONmessage means DMZ couldn't read your file: it is running on defaults for that file and your file was left untouched. Fix it and reload again. - For resource pack or datapack changes, do a client resource reload or a vanilla
/reloadinstead.
If in doubt, /dmzreload all is safe to run at any time: it just re-runs every reload path and resyncs everyone.