LauncherPacksModsShadersServersDownloadGet the launcher
Mods

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.

Browse 144 modsMods that ship together

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 ports and content packs compared
Native portContent pack
File.hnmod.hmod
Written inRust, compiledData: blocks, items, recipes
Depends onEngine hook API version; sometimes one exact commit (a pin)A free namespace and the capabilities the pack registers
Count13311
Typical failureBuild left out: missing hook or module conflictLoads but never runs: namespace clash or capability gate
Pairs

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 and content pairs in the Horizon registry
Native partContent partWhat it adds
deepbore_quarry_nativedeepbore_quarryA working quarry
projecte_coreprojecteTransmutation and EMC
voltz_corevoltzPower, reactors, warheads
wayfarer_stones_nativewayfarer_stonesTeleport stones
The pack pages check both halves; a hand-built pack does not. If a mod from this list shows up without its partner, add the missing file before you debug anything else.

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.

1 click

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.

file

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.

registry

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.

Horizon mod failure symptoms
SymptomCauseWhat to do
Mod is missing from Options > ModsThe 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 packA 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 numbersTwo 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 thingTwo 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 opensTwo 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.

Full mod pages on this site

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.

FAQ

Questions 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.

All Horizon pages