Repository navigation
How An Upgrade Works
craft-conductor runs your modded Minecraft server and keeps it on the newest Minecraft
release once your mods support it. It watches for new releases and checks
whether your loader and every mod you depend on (plus their dependencies) have
builds for them. When they do, it counts down in-game, backs up, swaps
everything over, boots the new version to make sure it works, and
rolls back automatically if it doesn't.
Each candidate file must list the target Minecraft version and a compatible loader. Required
dependencies are checked too; a failed lookup does not mean ready. Local JARs that Craft
Conductor cannot identify block a Minecraft-version change until you identify or disable them
on Mods. They remain untouched. Explicitly selecting a version still respects the
wait_for_all_mods setting, and local files are checked again before an update is applied.
It's one tool for both jobs: running the server (like autoMCS) and doing the fragile upgrade pipeline you'd otherwise do by hand.
$ craft-conductor check
installed: Minecraft 1.21.4 / fabric 0.16.10 - latest release is 1.21.5
Minecraft 1.21.5 is blocked by:
x Create Fabric: Create Fabric has no fabric build for 1.21.5
ready to update to Minecraft 1.21.4 with fabric 0.16.14:
loader 0.16.10 -> 0.16.14
~ Lithium mc1.21.4-0.14.7 -> mc1.21.4-0.14.8
- Plan: for each candidate release, find the newest loader build and the newest acceptable file for every mod and dependency.
-
Stage: make sure any manual downloads are present, get the right Java, download
everything into
.craft-conductor/staging/, verify hashes, and run the loader installer. If anything fails here, the live server hasn't been touched. -
Warn and stop: in-game countdown, then a graceful
stop. -
Back up the server directory to
backups/(old backups are pruned). If the backup can't be made (a full disk), the update stops here and the old version is started again. Then Craft Conductor writes.craft-conductor/update-in-progress.json, naming that backup. - Swap: remove the old managed mod jars and loader files, then move the new ones in.
-
Verify: boot the server and wait for
Done (…)!. -
Commit or roll back: on success, record the new state in
craft-conductor.lock.json(written to disk before anything else) and remove the note. On failure, restore the backup, restart the old version, and remember the failed combination.
If Craft Conductor is stopped anywhere in steps 4–7 (the power goes, the process is
killed), the note is still there on the next start. If craft-conductor.lock.json still
matches the note, the update never finished: the backup is put back before the server
runs, and the combination is remembered as failed (craft-conductor update tries it again).
If the lock file has changed, the update had finished and only the note is removed. A
restore or world swap cut off half-way is put right the same way (the old folder is kept
until the new one is in place). If the backup can't be put back (a full disk, a damaged
file), the server isn't started on half-updated files: free some space, or restore another
backup.
World upgrades are one-way: once a world has been opened in a newer Minecraft version, older versions can't load it. That's why every upgrade makes a full backup first.
craft-conductor restoreputs back the latest one (or a named one).
User manual
- Start here
- What it can and can't do
- Getting started
- Creating a server
- Messages
- Your servers
- Dashboard
- Console
- Players
- Mods
- Updates
- Backups
- Java
- Settings
- Playing with friends
- Joining a friend's server
- Remote access and phones
- People and what they may do
- Craft Conductor settings
- Troubleshooting
- Getting help
Power users
- Power users: start here
- Configuration (craft-conductor.toml)
- Building servers from the command line
- Running it forever
- Linux servers without a screen
- Managing players from the command line
- Java in detail
- How an upgrade works
- Updating Craft Conductor
- Mods that block third-party downloads
- Security
- Other ways to install
- For maintainers
- Where Craft Conductor keeps things
- Command line