Overview
Essential supports multiple mod loaders across different Minecraft versions. Instead of creating a separate codebase for each loader, Essential uses a platform abstraction system with four distinct platform variants.The four platforms are defined by the underlying mod loading technology, not just the mod loader name. This is why Forge has three different platforms.
The Four Platforms
Essential’s loader is built for these four platforms:fabric
Fabric LoaderAll Fabric versions from 1.16.2 to 1.21.x
launchwrapper
Forge with LaunchWrapperMinecraft 1.8.9 and 1.12.2
modlauncher8
Forge with ModLauncher 8Minecraft 1.16.5
modlauncher9
Forge/NeoForge with ModLauncher 9+Minecraft 1.17.1 and above
These platforms correspond to different class loading and transformation systems, which is why they require separate loader implementations.
Platform Details
Fabric
- Overview
- Implementation
- Container mod
The Fabric platform is the simplest and most consistent across versions.Characteristics:
- Lightweight mod loader
- Consistent API across versions
- Uses Fabric Loader’s mod discovery
- Supports mixins out of the box
LaunchWrapper
- Overview
- Implementation
- Container mod
The original Forge mod loading system used in legacy Minecraft versions.Characteristics:
- Uses Java agents for class transformation
- Tweaker-based mod loading
- Legacy LWJGL2 support
- Direct bytecode manipulation
ModLauncher 8
- Overview
- Implementation
- Container mod
Forge’s first-generation ModLauncher system, used exclusively in Minecraft 1.16.5.Characteristics:
- Service-based architecture
- Improved class transformation pipeline
- Better Java 9+ compatibility
- ModLauncher API version 8.x
ModLauncher 9+
- Overview
- Implementation
- Container mod
The modern Forge/NeoForge loading system used in Minecraft 1.17.1 and above.Characteristics:
- Enhanced service layer
- Improved performance
- Java 16+ support
- Compatible with NeoForge (1.20.4+)
- ModLauncher API version 9.x and 10.x
Platform Selection
How Essential determines which platform to use:Platform detection code
Platform detection code
Simplified platform detection
Container Mod Variants
Essential provides four container mod variants, one per platform:- Distribution
- Download locations
| File | Platform | Minecraft Versions |
|---|---|---|
essential-fabric.jar | Fabric | 1.16.2 - 1.21.x |
essential-launchwrapper.jar | Forge | 1.8.9, 1.12.2 |
essential-modlauncher8.jar | Forge | 1.16.5 |
essential-modlauncher9.jar | Forge/NeoForge | 1.17.1 - 1.21.x |
Pinned Mod Variants
Pinned mods (Modrinth/CurseForge) include the full Essential Mod:Pinned mod naming
- Stage 0 loader (platform-specific)
- Stage 1 loader
- Stage 2 loader (platform-specific)
- Full Essential Mod (version-specific)
Platform-Specific Code
While most of Essential’s code is shared, some platform-specific implementations exist:Loader Stages
Loader structure
Mixins
Some mixins are loader-specific:Fabric-specific mixin
Forge-specific mixin
NeoForge Support
Starting with Minecraft 1.20.4, Essential supports NeoForge:NeoForge introduction
NeoForge is a fork of Forge that continues development independently. It uses the same ModLauncher 9+ infrastructure.
Platform compatibility
NeoForge uses the
modlauncher9 platform, making it compatible with modern Forge builds.From Essential’s perspective, NeoForge is treated as a variant of Forge using ModLauncher 9+. No separate platform is needed.
Cross-Platform Features
Despite platform differences, Essential provides consistent features across all loaders:Cosmetics
All cosmetics work identically on Fabric, Forge, and NeoForge.
Social Features
Friends, messaging, and parties function the same on all platforms.
Screenshots
Screenshot manager and sharing work across all loaders.
Settings
Identical settings UI and configuration on all platforms.
Platform Abstraction Layer
Essential uses a platform abstraction to handle loader-specific logic:Platform abstraction example
Platform abstraction example
Platform interface
Fabric implementation
Forge implementation
Building for Specific Platforms
Build All Platforms
Build Specific Loaders
Building specific platforms
Build Container Mods
Building container mods
Platform Compatibility Matrix
| Minecraft | Fabric | Forge | NeoForge | Platform |
|---|---|---|---|---|
| 1.8.9 | - | ✓ | - | launchwrapper |
| 1.12.2 | - | ✓ | - | launchwrapper |
| 1.16.2 | ✓ | ✓ | - | fabric / modlauncher8 |
| 1.17.1 | ✓ | ✓ | - | fabric / modlauncher9 |
| 1.18.x | ✓ | ✓ | - | fabric / modlauncher9 |
| 1.19.x | ✓ | ✓ | - | fabric / modlauncher9 |
| 1.20.1-1.20.2 | ✓ | ✓ | - | fabric / modlauncher9 |
| 1.20.4+ | ✓ | ✓ | ✓ | fabric / modlauncher9 |
| 1.21.x | ✓ | ✓ | ✓ | fabric / modlauncher9 |
Fabric support starts at Minecraft 1.16.2. Earlier versions are Forge-only.
Next Steps
Loader Stages
Learn how the three-stage loader works across platforms
Building Essential
Build Essential for different platforms
Multi-Version Support
Understand version compatibility
Architecture
Return to the architecture overview