Horizon has two kinds of mod, and they install differently. Content mods (.hmod) are data and textures: you install them from the launcher’s Mods page or drop the file into the horizon-mods folder, then switch them on in Options → Mods and restart the game. Native mods (.hnmod) are Rust code: you install them into an instance from the Mods page, press Build, accept the warning, and the launcher compiles a copy of the game with them inside. Fabric and Forge jars don’t run at all.
That last point trips up most people coming from Java Edition, so it gets its own section below. First, the practical part.
Content mods vs native mods
| Content mod | Native mod | |
|---|---|---|
| File | .hmod |
.hnmod |
| What it holds | Blocks, items, recipes, loot tables, tags, models, textures, structures. No code. | Rust code compiled into the game: HUDs, keys, commands, settings, new behaviour |
| How it loads | The game reads it at start | The launcher builds a game with it, for one instance |
| Safety | Data only, it can’t run anything | Not sandboxed: full access to your computer |
| Where it works | Single player today | Single player, LAN and servers (client-side parts only on a server you join) |
Almost everything popular right now is a native mod. Horizon’s own Zoom, Minimap, FPS Counter and Keystrokes are native mods too, so you’ll meet the Build button sooner or later.
How to install a content mod (.hmod)
- Get the mod. Open the launcher’s Mods page, pick Horizon (beside Modrinth) and install it. Or download the
.hmodand put it in thehorizon-modsfolder of the game folder:~/.local/share/horizonon Linux,~/Library/Application Support/horizonon macOS,%APPDATA%\horizonon Windows. Create the folder if it isn’t there; a fresh install doesn’t have one. - Switch it on. Start the game and open Options → Mods…. Each mod is listed with what it may do, for example “May add blocks and items to your worlds”, and a switch. Content mods start off.
- Restart. Content that adds blocks or items loads when the game starts, so quit and start again after flipping a switch.
A mod that failed to load shows the reason in red on its row. If two mods you turned on use the same namespace, only one loads and the log says which.
Some projects come in two halves, for example an “assets” content mod plus a native part (ProjectE for Horizon and Wayfarer Stones in the registry work this way). Install both, or the content half does little on its own.
How to install a native mod (.hnmod)
Native mods live in instances, the list on the left of the launcher. A native build belongs to one instance, so your other instances never run those mods.
- Pick an instance on the left, open its Mods page and install the mod. The first time, the launcher explains what native mods are.
- Build. The installed list gets a row called Native build of {instance} with a badge: Not built, Needs rebuild or Up to date. Press Build. The launcher names every mod in the build and warns you in red that they run with full access to your computer. I trust these mods: build starts it.
- Wait for the first build. The first time, the launcher downloads its own Rust toolchain and compiles the game: the docs say 20 to 30 minutes and a few GB of disk. You never install Rust yourself. Later builds only recompile what changed and take a few minutes.
- Play that instance. In the game, Options → Mods lists each native mod with a switch, and a Settings page and rebindable keys when the mod has them. A mod’s settings are stored in
horizon-mods/.horizon-mod-data/<id>/.
Turning a native mod off in Options → Mods stops it at once; the next build leaves it out. When a newer Horizon is installed, the row offers Rebuild on Horizon {version}. A normal Build stays on the Horizon version the instance already plays, because many community mods are pinned to one Nightly and its commit.
That pinning is the most common source of trouble. Some mod pages say plainly that they build only on the exact Horizon and horizon-mixins revisions they were tested on, and can’t be combined with a native mod pinned to a different commit. If a build fails, read the error on the row and check each mod’s page for the Nightly it targets.
Why Fabric, Forge and NeoForge mods don’t work
Horizon is not Java Edition with a new renderer; it is a separate program written in Rust. A Fabric or Forge jar is compiled Java that calls and patches Minecraft’s Java classes (Mixins included), and Horizon has no Java classes to patch. So Java mod jars don’t run, and Horizon mods don’t run in Java Minecraft either.
What can come across is the data inside a jar. Much of a typical content mod is data: blocks, items, recipes, loot tables, tags, world generation pieces, textures. The launcher reads a jar (without running it) and turns that part into a content mod:
- Works: the mod is only content and all of it carries over.
- Partly: the content carries over, but not machines, containers, mobs, blocks with their own behaviour, custom recipe types or Mixins.
- Doesn’t run: nothing to carry over (performance mods, libraries, code-only mods).
Carried-over blocks take the shape, hardness and sounds of the closest vanilla block, so one may break faster or slower than in Java. The docs are blunt that most popular mods today land on Partly or Doesn’t run. Performance mods like Sodium, Lithium and FerriteCore are marked “not needed”: Horizon itself is the replacement.
For whole modpacks there is a Modpacks page (a tab of the Mods page in newer launchers). It imports a Modrinth .mrpack, a CurseForge zip or a Prism/MultiMC/CurseForge instance folder, shows a coverage report per mod (Ported, Partial, Not yet, Not needed) and ports what it can. The official measurements: All the Mods 10 (496 files) ports 42 mods, all partial, and a world with them takes about 40 seconds to load against about 5 without mods. Nothing is uploaded; jars and ports stay on your computer.
Resource packs from the same page
The launcher’s Mods page also searches Modrinth for resource packs and modpacks, labels each Works, Partly or Doesn’t run, checks the download against Modrinth’s checksum and puts it in the right folder. A resource pack still has to be turned on in the game’s Resource Packs screen. Details in resource packs in Horizon.
Staying safe with native mods
Install only mods whose authors you trust. The registry lists a native mod only after a maintainer has read its source, and each mod page links that source. Horizon’s own mods say “Made by Horizon”; everything else names its author and says it isn’t made or endorsed by the Horizon project. A project that turns out harmful is taken down, and the launcher then refuses its files and switches installed copies off. More in Is Horizon safe?
Where to find mods
Our mod catalog mirrors the official registry with our own write-ups, and the best Horizon mods right now is a shorter list to start from. Shader packs install differently again; that’s in how to install shaders.