Horizon mods are not .jar files.
133 ports, 11 content packs.
There is no Forge or Fabric step, and an OptiFine zip will not load. A Horizon mod is either Rust code compiled against the engine or data the engine reads. Here is how the 144 projects in the registry split, install, and fail.
Two kinds of mod, two failure modes
A native port is a Rust crate that compiles against the engine's hook API. It can reach into rendering, movement, inventory and world generation, which is why ports exist for JEI, Jade, Create, Applied Energistics 2, Distant Horizons and Atlas. The cost is a compile step: the engine version has to expose the hooks the mod calls, and a port built for an older commit may not build at all.
A content pack is data: blocks, items, ores, recipes, models. It owns a namespace, and the engine drops the second pack that claims one. Content packs need no compiler, which makes them cheap to publish and easy to break with a duplicate namespace.
Four projects need both halves. Install only the content side and you get items that do nothing; install only the native side and you get a machine with no recipes.
| Native port | Content pack | |
|---|---|---|
| File | .hnmod | .hmod |
| Written in | Rust, compiled | Data: blocks, items, recipes |
| Depends on | Engine hook API version; sometimes one exact commit (a pin) | A free namespace and the capabilities the pack registers |
| Count | 133 | 11 |
| Typical failure | Build left out: missing hook or module conflict | Loads but never runs: namespace clash or capability gate |
Four mods ship as two files.
Forgetting the second half is the most common install mistake in the registry: the mod is listed, the game starts, and nothing works.
| Native part | Content part | What it adds |
|---|---|---|
deepbore_quarry_native | deepbore_quarry | A working quarry |
projecte_core | projecte | Transmutation and EMC |
voltz_core | voltz | Power, reactors, warheads |
wayfarer_stones_native | wayfarer_stones | Teleport stones |
Pins, hook floors and the native build
A pin is a native port tied to one exact Horizon commit. The registry snapshot behind this site lists 72 pinned ports. That is not a defect: a pin is what an author ships when the engine changes faster than the port can follow. It becomes a problem only when one pack mixes pins from different commits.
Each pack declares a minimum hook API. Near Vanilla asks for 2, Duel for 139, Any% for 40, Hearth for 409, and most of the catalog for 411. A lower floor means the pack runs on older Horizon builds; a higher floor means the pack needs a recent one. The pack page prints the number, so you can check before a 2 GB download.
The native build compiles every port in one pass. When a port cannot build, the launcher does not guess: it writes the mod to native-mods.json under left_out with a reason code such as E_MISSING_HOOK or E_MODULE_CONFLICT. A pack is expected to ship with that list empty; when it is not, the report says which mod and why.
Three ways to install a mod
Through a pack
The safest route. Pick a pack, press install, and let the manifest decide the set. Conflicts were resolved when the pack was written.
Single file, launcher
Import an .hnmod or .hmod from the launcher. It hashes the file, adds it to the profile, and lets you switch it off without deleting it.
Official client
The Horizon client reads the registry itself. Search for the mod id, install it into the version, and open Options > Mods to confirm it loaded.
When a mod does not load
Five symptoms cover most reports. The log names the mod id in every one of them, so start there instead of toggling files at random.
| Symptom | Cause | What to do |
|---|---|---|
| Mod is missing from Options > Mods | The file never loaded: namespace collision, capability gate, or a failed compile. | Read the log for the mod id. Two content packs with one namespace means one has to go. |
| Works alone, does nothing in a pack | A pin conflict sent it to native-mods.json left_out. | Open the build log, find the reason code, and drop the mod or pick a pack with fewer pins. |
| Two panels show the same numbers | Two mods from one job: two maps, two HUD editors, two recipe viewers. | Keep one. The catalog clusters these on purpose; a hand-built pack has to do it yourself. |
| A key does nothing, or does the wrong thing | Two mods bound to the same key. | Options > Controls, then Options > Mods for that mod. Bindings can be shipped with a pack. |
| Crash when a screen opens | Two UI mods drawing the same container. | Turn one off, check the crash report, and report the pair with both mod ids. |
What this catalog will not put in a public pack
The registry is public and stays public. A pack is a recommendation, and five mods do not get one: X To Xray, Baritone, SeedCrackerX and I'm Fast are ban material on most servers, and ViaHorizon targets offline-mode servers. I'm Fast appears in one single-player pack with the limit written on the card.
This is a policy about packs, not a moral position on single-player worlds. Install what you want at home. Just do not expect a server owner to accept a client that removes their checks.
The registry also carries duplicates on purpose: two AppleSkin ports, three zooms, four recipe viewers, several free cameras. That is what a public registry looks like when different people port the same idea. A pack picks one of each, and the pack page says which.
10 mods have a page with versions, hashes, license and source link. The other 134 are listed in the full registry with author and license.
- Jade - CC-BY-NC-SA-4.0
- JEI for Horizon - MIT
- Atlas - MIT
- Create for Horizon - MIT
- Applied Energistics 2 - LGPL-3.0-only AND CC-BY-NC-SA-3.0
- Voltz (assets) - MIT
- ProjectE for Horizon (assets) - MIT
- Wayfarer Stones (assets) - MIT
- Silent's Gems - MIT
- Tectonic-Horizon - CC0-1.0
Mods come in sets.
20 packs, which mods and why
The 20 manifests reference 104 unique mods. See the set each one ships and the pins it carries.
20 manifestsInstall mods step by step
The guide covers the launcher route and the official client route, including what to check after the first launch.
guideBetter+ in detail
A 39-mod pack with recipes, a map, a HUD and content. The page lists every entry with its version and license.
39 entriesQuestions this page gets
Can I install a Minecraft .jar mod in Horizon?
No. Horizon has no Forge, Fabric, NeoForge or OptiFine layer and does not read .jar files. A port has to be written against the engine hook API; content mods are .hmod data the engine reads directly.
What is a pinned mod?
A native port compiled against one exact Horizon commit. If a pack mixes pins from different commits, the launcher picks the newest and asks before building; some mods can then end up left out of the native build.
Why does a mod install but never appear in Options > Mods?
Usually a namespace collision, a missing capability, or a compile failure in the native build. Two content packs cannot own the same namespace, and a content mod whose capabilities exceed the pack registries installs but does not run.
How many mods are in the registry?
The snapshot behind this site holds 144 mods: 133 native ports and 11 content packs. With 12 shaders and 2 resource packs that is 158 projects. The 20 packs reference 104 of those 144 mods.
Does a content mod need a native part?
Four of them do. Deepbore Quarry, ProjectE, Voltz and Wayfarer Stones ship as a content pack plus a native core, and both halves have to be installed. Their registry entries list the pair explicitly.
Pick the set, skip the sorting.
A pack is a mod list someone already debugged. Twenty of them are here, with pins, hook floors and server flags on every card.