Overview
A pinned container mod embeds a specific version of your mod directly into the container jar. This enables:- Fully offline usage without requiring initial download
- Controlled, user-approved updates via click-to-update prompts
- Modpack distribution with known mod versions
- Gradual rollout strategies for new versions
- Full auto-updates: Behaves like a thin container, ignoring the pinned version
- Click-to-update (default): Users are notified in-game and can choose to update
Embedding a Pinned Jar
Container Mod Configuration
To create a pinned container mod, add the following properties to youressential-loader.properties file at the root of your container jar:
- Basic Pinning
- With Version ID
Pinning Properties
Path to the embedded mod jar inside the container jar.Must include the leading slash (e.g.,
/bundled-mod-1.2.0.jar), otherwise it will be read as a regular URL.MD5 checksum of the pinned jar file.Used to verify the integrity of the embedded file and detect version changes.
The version name as shown in the Essential Mods Panel.Required for:
- Click-to-update functionality
- Diff-updates (otherwise full jar is downloaded on first update)
- Mods that need to know their own version
1.2.0The version ID from the Essential Mods Panel.Optional identifier that may be used instead of human-readable version in certain contexts. Currently unused but reserved for future functionality.Example:
6b26c76a26d49e5b60ecf53dPinning Stage2
Stage2 can be pinned on Fabric and ModLauncher platforms. (On LaunchWrapper, stage2 is already included in the stage1 jar and cannot be updated independently.)Configuration
Instead of the rootessential-loader.properties file, place a properties file at:
All three properties (
pinnedFile, pinnedFileMd5, and pinnedFileVersion) are required for stage2 pinning.autoUpdate, branch, pendingUpdateVersion, and pendingUpdateResolution.
Use Cases
Offline Environments
Pinned container mods work perfectly in environments without internet access:autoUpdate=false in the user configuration, the mod runs entirely offline.
Modpack Distribution
Modpack creators can distribute specific tested versions:Controlled Rollouts
Gradually roll out new versions by updating the pinned jar in new modpack releases:- Initial Release
- Updated Release
Version Override Behavior
The loader tracks accepted updates to prevent unintended downgrades:- User accepts update to version 1.3.0
overridePinnedVersion=1.3.0is written to user config- If container mod is downgraded (e.g., older modpack version with 1.2.0 pinned):
- Pinned version 1.2.0 is ignored (older than override)
- User continues using 1.3.0
- If container mod is upgraded (e.g., newer modpack with 1.4.0 pinned):
- Pinned version 1.4.0 is used (newer than or equal to override)
overridePinnedVersionis cleared- User can now downgrade by downgrading the container mod
This behavior ensures users don’t lose functionality when modpack versions change, while still allowing intentional downgrades through container mod updates.