Overview
This quickstart guide will walk you through integrating Essential Loader with your mod on LaunchWrapper (Forge 1.8.9 - 1.12.2). The process involves adding the loader as a dependency, configuring your build script, and creating a metadata file.This guide focuses on LaunchWrapper integration. For Fabric or ModLauncher, see the Integration Guides.
Prerequisites
Before you begin, ensure you have:- A Minecraft mod project for Forge 1.8.9 - 1.12.2
- Gradle or Gradle Kotlin DSL as your build system
- Basic understanding of Minecraft mod development
Integration Steps
Add the Essential repository
First, add the Essential Maven repository to your build script where Essential Loader is hosted.
build.gradle.kts
If you’re using Groovy Gradle instead of Kotlin DSL, use
maven { url 'https://repo.essential.gg/repository/maven-public/' } instead.Configure the embed configuration
Create a custom Gradle configuration for embedding Essential Loader into your mod jar.This configuration ensures that Essential Loader is available at compile time and will be embedded into your mod jar at build time.
build.gradle.kts
Embed the loader and set the Tweaker
Modify your
jar task to embed Essential Loader and set it as the TweakClass in your manifest.build.gradle.kts
Create the essential.mod.json file
Create a file named
essential.mod.json in your src/main/resources folder. This file defines metadata about your mod and specifies which libraries it includes.id: Your unique mod identifierversion: Your mod version (can be templated from Gradle)jars: Array of Jar-in-Jar dependencies your mod includes
(Optional) Automate Jar-in-Jar dependencies
For mods with multiple dependencies, automate the generation of the Then use the template version of
jars section and the inclusion of libraries.build.gradle.kts
essential.mod.json shown in Step 4.This automation ensures that your
essential.mod.json always stays in sync with your actual dependencies, reducing maintenance burden.Build and test
Build your mod and test it in your development environment.Launch Minecraft with your mod installed. Essential Loader will:
- Bootstrap from Stage 0 (embedded in your jar)
- Load Stage 1 (also embedded)
- Extract and load Stage 2
- Initialize your mod with proper dependency management
Adding Mixin 0.8.x Support
One of Essential Loader’s key features is bringing Mixin 0.8.x support to legacy Forge versions. Here’s how to add it:Add Mixin as a Jar-in-Jar dependency
build.gradle.kts
Essential Loader will automatically initialize Mixin for any mod with a
MixinConfigs manifest attribute. You don’t need to manually call any initialization code.Configure Mixin annotation processor
Ensure your build system is configured for Mixin’s annotation processor and refmap generation. This is done the same way as with stock Mixin 0.8.x or 0.7.10—Essential Loader only affects runtime behavior.Refer to the SpongePowered Mixin documentation for annotation processor setup.
Example Configuration
Here’s a complete example of abuild.gradle.kts file with Essential Loader integration:
Troubleshooting
Essential Loader not loading
Essential Loader not loading
Check that:
- The
TweakClassmanifest attribute is set correctly - Essential Loader jar is properly embedded in your mod jar (check
META-INF/MANIFEST.MFand jar contents) - You’re testing on a supported Minecraft version (1.8.9 - 1.12.2 for LaunchWrapper)
Dependency conflicts
Dependency conflicts
Essential Loader automatically resolves Jar-in-Jar conflicts by selecting the most recent version. If you’re experiencing issues:
- Ensure all dependencies in
essential.mod.jsonhave correct version numbers - Check that dependency jars are actually present in
META-INF/jars/ - Review the Minecraft logs for version resolution messages
Mixin not initializing
Mixin not initializing
Verify that:
- Mixin is included as a Jar-in-Jar dependency
- The
MixinConfigsmanifest attribute is set (if using Mixin) - Your Mixin configuration JSON file exists in resources
- Annotation processors are properly configured in your build script
Build failures
Build failures
Common issues:
- Missing repository: Ensure
https://repo.essential.gg/repository/maven-public/is added to repositories - Version mismatch: Check that you’re using a valid Essential Loader version
- Template expansion errors: Verify your
essential.mod.jsontemplate syntax matches the examples
Next Steps
Now that you have Essential Loader integrated with your mod:Core Concepts
Learn about the three-stage architecture and how each stage works
Platform-Specific Guides
Deep dive into LaunchWrapper, Fabric, or ModLauncher integration
Container Mods
Learn about offline deployments and version pinning
Auto-Update Configuration
Configure automatic updates and update channels
For Fabric or ModLauncher integration, the process is different. Check the Integration Guides for platform-specific instructions.