Tags
Creators
Details
5.0.0-rc.1
Compatibility
Changes
AutoModpack 5.0.0-rc.1
It took a while, but here it is: the first release candidate of v5. Pretty much everything changed. Core modpack concepts (groups!), config format, transfer protocol, storage layout, the UIs, you name it. This is the biggest update AutoModpack has ever gotten. It's actually also the smallest update since the entire mod now fits in just 3.8MB and it works on all supported targets!
Before you upgrade
- v5 drops Minecraft 1.19.4, 1.20.4, 1.20.6, and 1.21.3, and adds 26.3 (Fabric and NeoForge).
- Releases ship one jar for every supported loader and game version.
- Human files are
automodpack/server.confandautomodpack/client.conf. The format is a small HOCON subset. Your existing config will get auto-migrated to new format and the old file will be renamed with.backupsuffix. - The server's TLS certificate lives in
automodpack/credentials/. There is no auto-copy from v4 paths. If files are missing, the server generates a new certificate. - The
nonModpackFilesToDeletelist is gone. Deletions are ownership-checked, with no toggle. forceCopyFilesToStandardLocationis also gone,editablelist inherited its functionality.
Modpack content and groups
- The modpack is now declared as groups. Each group has
from-server(previously calledsyncedFiles- content from the server root.host-modpack/<id>/is included in full),exclude(list of file paths excluded from bothfrom-serverandhost-modpack), andeditable(previouslyallowEditsInFiles). Groups also have a display name, description, required, default-selected,requires,breaks-with, andcompatible-platforms.mainis the required core. Extra groups are optional. - Players pick optional groups in a Group Selection screen, with file counts, sizes, dependency and conflict text, and a platform dropdown. The choice persists across updates.
- Editable files always live in the game directory, mods included. A mod marked editable lands in the player's mods folder. It stays replaceable and removable, and it survives updates until the server changes its content.
- A server can ship a custom waiting track as
automodpack/host-modpack/waiting-music.ogg. Clients stream it during downloads and cache it.
Publishing (server)
- Publishing is a journalled workflow.
/automodpack generate previewshows a diff without publishing.notesattaches patch notes (or write them topatch-notes.md).if-contentpublishes only while the pack still matches a named state.historylists past generations.revert <seq>rolls back by publishing an old state as a new generation. - The server keeps every published generation in an append-only journal, with file bytes in a content store.
generate storage collect confirmis the only deletion. It prints what it removed. /automodpack generate export-httpwrites the pack as plain files (head,journal,objects/) for a static HTTPS host. It refuses whilevalidate-secretsis on, since a static mirror cannot check them. Files that Modrinth or CurseForge already serve are omitted unless you pass--all./automodpack groupsinspects the pack: one summary line per group, and/automodpack groups <id>for a single group's rules, files, and published state.
Connectivity
- All connection modes use one HTTP wire: GET over TLS for the pack head, journal, and objects, with the login-issued secret as a bearer header, resumable range requests, unchanged-check short circuits, and zstd with a gzip fallback.
- You can now host your modpack statically without minecraft server even. Any static HTTP host or S3 works.
- New default HOLEPUNCH connection mode behaves like a minecraft login protocol which now make AutoModpack work behind strict Minecraft proxies.
Client: pack management
- The multiplayer screen gains a Modpacks button (hideable). It opens an installed-pack manager: update, repair, stop and resume syncing, deactivate, remove, and switch between installed packs.
- A server running with
require-modpackoff offers its pack at login, before anything transfers: sync it, join without it, or cancel. - Every pack action is previewed first. A review screen shows added, changed, and removed files with sources, filters, and hashes, and states whether a restart is needed. A first install asks for consent, names how many mod files were matched on Modrinth or CurseForge, and gates unverified jars behind a risk acknowledgement.
- A Pack History screen lists every published generation of the installed pack with its patch notes, and can restore an older version offline. Restoring detaches the pack from syncing until you resume.
- An Instance timeline records every state this instance lived (installs, updates, rollbacks, repairs, and automatic captures of your files before a change). Restore the whole instance or single files, save copies out, or forget old snapshots to free space.
- A Repair action runs a cache-bypassing integrity check, asks before resetting edited files, can finish missing files from the server later, and prints a receipt.
- A Local storage screen runs a confirmed cleanup with a receipt and a storage integrity pass.
- Pinned mods: a player can pin mod ids that keep loading their version from their own mods folder even when the pack ships a mod with the same id. The player's jar survives even if the pack later drops that mod.
- Declining an update keeps local state with a detached warning. Joining through a new address asks before trusting it.
- A pack that needs a different Minecraft version or modloader is handled per launcher. Prism, MultiMC forks, and Pandora get their instance switched. Other launchers, get a manual-switch notice and no broken state.
Security
- The modpack connection's certificate is matched to the Minecraft hostname you join. SRV records and advertised endpoints are treated as routes only.
- Servers with a DNSSEC-signed domain can publish their certificate fingerprint as a
_automodpackTXT record. Clients look it up through DNS-over-HTTPS (Cloudflare and Quad9) and accept it only when both resolvers return the same DNSSEC-validated record./automodpack host fingerprint dnsprints the record. /automodpack host fingerprint shareproduces a copy-paste join address with the fingerprint embedded (e.g.play.example.com#amp1=...). Importing it pins the exact certificate and leaves a working vanilla entry in the server list.- A bootstrap file pre-configures a client with the server address, endpoint, and certificate pin, and can carry a provisioning secret for one-shot installs (
/automodpack host bootstrap pin|install).
Performance
- Downloaded files are stored once by hash and hard-linked into place. Identical files are shared across packs and instances.
- Hash results and parsed mod metadata are cached per file and reused across launches.
- The download scheduler interleaves large and small files per source, which removes the stall near the end of a transfer. The speed readout is smoothed.
- Server-side pack generation reuses the hash caches.
- The jar is leaner: pure-Java compression instead of bundled native zstd libraries, the JDK HTTP client instead of a shaded Apache HttpClient, custom simple toml parser instead of toml4j, removed bundled fabric api, waiting music replaced for a smaller noteblock remaster.
- Updates are computed in full before anything is touched, then committed as a crash-recoverable transaction. Locked files are handled by a detached helper after the game exits. A runaway update-restart loop is stopped after two looped attempts.
Fixes and changes
- Each pack gets a stable 7-character id, so a server-side rename or server address change no longer requires modpack redownload.
- The server configuration's
requireMagicPacketsboolean becameconnection-modewithHOLEPUNCHas the default: the pack rides the Minecraft login protocol with no second open port.MAGICandHTTPuse dedicated or external listeners. - Forge and NeoForge mods that must load early (coremods, language providers, transformation services) load straight from the modpack folder. That retires the force copied mod jars like sodium and the
forceCopyFilesToStandardLocationoption. - Configuration, secret, and state writes land atomically, so a crash mid-save cannot leave a half-written file.
- Removed Herobrine.
- Broken installs fail with a categorized error screen instead of running half-loaded. Corrupt stored objects are repaired rather than served. A failed join after an applied update suggests a restart, and the restart screen lists the reasons.
- The loader-version swap wait on MultiMC and Prism is the remainder of a five-second window since launch, not a flat five seconds.
- A "Preparing update" screen sits between certificate acceptance and the download, with cancel.
And much more...
Full changelog: https://github.com/Skidamek/AutoModpack/compare/v4.0.5...v5.0.0-rc.1
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:k68glP2e:qpeqKKkQ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:k68glP2e:qpeqKKkQ"
}

