Upgrading to 1.6.0
1.6.0 is the largest set of file changes in the mod's history. Here is exactly what happens to your server, in order.
Overview
1.6.0 retires more owner files than any release before it: wallets, storefronts, bounty boards, NPC placements, conversations, ability overrides, and the offline reward spool all move to a new home. None of that requires a rewrite of your server. Most of it converts itself the moment the server starts; the rest is one command away, or a short, named list of files to re-author by hand. This page walks the whole thing in order.
Nothing is ever deleted
.legacy suffix or moved into a timestamped backup/ copy, never erased, and the server always logs one line naming what happened and what replaced it. If something looks wrong after upgrading, the old file is still sitting right there to compare against.Before you upgrade
- Back up
mods/mmoskilltree/,mods/ziggfreedcommon/, and your world save. The conversions below are safe and additive, but a backup costs you a minute and a bad upgrade costs you an evening. - Install the ZiggfreedCommon jar version 1.6.0 requires first. This mod currently pins
ZiggfreedCommon-2.0.0.jar. Booting with an older or missing companion jar now fails up front, naming the version it needs, instead of a confusing class error partway through startup, so update it before you touch anything else.
First boot: what converts itself
Start the server once after dropping in the new jar, and read the log. These conversions need no action from you:
- Bonus drops.
luck-loot.jsonand (if present)mob-drops.jsonfold into the newbonus-drops.json, with every override you had carried across field by field and one startup line per row naming what it became. The jar's own bonus-drop rows now all live under oneMmo_naming convention (Mmo_Ore_Adamantite,Mmo_Vortex_Charm,Mmo_Trork_Kill, and so on); an override still keyed to an older row id is re-keyed onto the new id automatically at fold, with one startup INFO per row naming the move. See What happens when you upgrade. - Offline rewards.
pending-quest-rewards.jsondrains into the newpending-rewards.json, filed by player UUID only. An entry that was keyed by a player's name instead of their UUID cannot be carried across, since a name is not an identity; it stays behind in the backup and the startup notice names it, so you can hand it out by hand. - Leaderboard cache and pending XP resets re-key to UUIDs.
leaderboard-cache.jsonandpending-xp-resets.jsonboth carry a legacy name-keyed entry across to the player's UUID the moment the server can resolve it. A leaderboard row nobody can resolve by name is dropped with one startup INFO naming the count and simply refills the next time that player logs in, since it is only a cache; a pending XP reset nobody can resolve is never delivered silently, so it is preserved in a timestampedbackup/copy with one notice instead. Both files, andpending-rewards.jsonand ZiggfreedCommon'splaced-blocks.json, now write a{"version": 1, "players": {...}}envelope; a bare old-shape file with noversionkey still reads correctly as version 1. - Each player's quests and achievements. The first time a returning player connects after the upgrade, everything they had (active and completed quests, cooldowns, tracked pins, earned and claimed achievements, criterion progress, point milestones) is copied once onto the record the shared quest and achievement engines read, with one startup line per player naming the move. Nothing is asked of you.
- Mob drop commands.
mob-drop-commands.jsonconverts in place to schema 4: a pool'sdelayfield is dropped (its commands now run immediately, in the order written) and the deadrequiredTierfilter is removed outright. A file still carrying either gets one startup warning naming it.
Run /mmomigrate
/mmomigrate is the built-in upgrade helper: one plain-language report of every older-format file the mod found on your server, what it already converted for you at startup, what it can convert in place for you, and what still needs your hand, with the exact shape to write quoted for each.
- 1
Run /mmomigrate for the report
A scan-only pass listing every older-format file it found, what already converted itself, and what is left. - 2
Run /mmomigrate --action=owner --confirm=yes
Applies every safe owner-file conversion it can make automatically, with a backup taken first for every file it touches. - 3
Run /mmomigrate --action=pack
Scans your installed content packs and reports what they still carry in an older shape, without changing anything on disk. - 4
Convert a pack in the web Migration Converter
Content packs are never rewritten in game. For a pack the scan flags, use the web Migration Converter to convert its files in your browser; they never leave your machine. See Migrating a content pack to 1.6.0 for the full pack-author checklist.
/mmomigrate
/mmomigrate --action=owner --confirm=yes
/mmomigrate --action=packEvery retired file, and what replaced it
This table is generated from the mod's own config reference, so it always matches what /mmomigrate actually reports. If a file below is sitting in your mods/mmoskilltree/ folder, it is no longer read; its replacement is where the same setting lives now.
More retirements worth knowing about
- The achievement
announcementCommandleaf. How an unlocked achievement's server-wide banner is drawn is authored once, for every achievement, in theAchievement_Unlockednotice file. An achievement file still carryingannouncementCommandgets one startup warning naming the replacement and the leaf is otherwise ignored. See Feedback moments. - The three
_defaults/echo files (quests/_defaults/default-quests.json,achievements/_defaults/default-achievements.json,achievements/_defaults/default-point-milestones.json) rename themselves to.legacyand are never read again. They exist in the table above too; this is just a reminder not to hand-edit them if you spot them on disk after the upgrade. - An old-format
mastery.json(orclasses.json). The file itself is still the live owner overlay - but a copy still carrying the pre-1.6.0 track format (the lower-casetarget/nodesgrammar, or the retiredextends/paramsDSL) is moved to a timestampedbackup/copy on first start with one notice, and nothing is carried across. The web Migration Converter rewrites the old file into the schema-v3 overlay (v2 for classes) so your tuning stays live; see the owner overlay. - The flat world-rule spellings. A
world-rules.jsonrule still naming its worlds with the retired flatMatchstring matches no world at all until it is rewritten as aWhereblock, and one still authoring its gameplay knobs flat at the top level (the 1.5.x shape) keeps working with one startup warning per rule naming the nestedRulesgroup./mmomigrate --action=owner --confirm=yesmakes both moves for you, backup first; see Per-World Rules. - A player database still holding legacy quest/achievement rows. This only applies if you run the optional shared-database player-data backend. Schema 2 replaces the old
QUESTSandACHIEVEMENTSdomains with the one sharedPROGRESSdomain; a database that still holdsplayer_datarows filed under either retired domain refuses to start, naming how many rows it found, rather than start over data it can no longer place correctly. Export or delete those rows by hand before upgrading such a server.dbDownPolicystill governs what happens if the database itself is unreachable at boot in the meantime; see Database backend operations.
If you author or install content packs
Every break above is a server-owner file. A content pack has its own, smaller list of breaks (a folder that moved, an action that was renamed, a selector that changed shape), none of which /mmomigrate --action=owner can touch, since packs are never rewritten in game. Read Migrating a content pack to 1.6.0 for the full checklist, or run /mmomigrate --action=pack to see whether any of your installed packs are affected at all.
If you maintain another plugin
One integration point was removed outright rather than deprecated: the old way another plugin registered to hear about achievement moments. If another plugin on your server used it, that plugin will not compile against 1.6.0 unmodified. See Native events for the replacement events and the full before-and-after recipe.
After the upgrade
- Run
/mmoconfig validateto audit everything the mod knows how to check: quests, achievements, abilities, masteries, placements, and more, in one pass. - Read the startup log once, in full. Every conversion, fold, and retirement above logs exactly one line naming what it did, so a slow read of one server start tells you everything that changed on your disk.
Related
- Migrating a content pack to 1.6.0 - the pack-author checklist.
- Migration Converter - convert a pack's files in your browser.
- /mmomigrate command examples.
- Troubleshooting - symptom-led answers if something still looks wrong after the upgrade.