horizon-modpack-compatibility README

The project's README from github.com/UpperSupervisor/horizon-modpack-compatibility. As one markdown file: README.md.

Hopper. Is my mod on Horizon?

Release v1.3.5 MIT license Windows 10 and 11, portable Horizon 26.3 Free

Download · How to use · What it does · How it works · FAQ

Sodium is typed into Hopper and comes back built in. Create comes back not yet, wanted by 1,240 players, and a vote makes it 1,241. Then a whole pack is dropped on the window: 30 mods come with you, 14 aren't needed anymore and 16 aren't there yet, and the 30 are added to Horizon in one click

Is my mod on Horizon? One search, one plain answer.

Hopper answers one question for Horizon players: is my mod on Horizon? Horizon is Minecraft: Java Edition 26.3 rewritten in Rust, and Java mod jars don't run there. Type a mod's name or drop your whole pack, and Hopper tells you what Horizon already does, what has a Horizon version, what works as it is and what isn't there yet.

It installs what works, keeps a board of the mods players miss most, and tells you when one you're waiting for arrives.

Download

System File
Windows 10 and 11 Hopper-1.3.6-portable-x64.exe One file. No installer, no admin rights

[!NOTE] The build isn't code-signed yet, so SmartScreen may warn you the first time. Choose More info, then Run anyway.

How to use

  1. Type a mod's name, or drop a jar, your mods folder or a modpack on the window.
  2. Read the answer: Built in, Ported, Works or Not yet.
  3. Press the button under it: Install, Add to Horizon or Want it too.

What it does

Is my mod on Horizon?

Create: not yet, 1,240 players want it, with Want it too, Tell me when it's here and a link to port it with Smelt

One plain answer per mod, one sentence on why, and one button. Built-in mods get How to turn it on, ported ones Install, working ones Add to Horizon and the rest Want it too.

Bring your whole pack

Our SMP pack, 60 mods: 30 come with you, 14 you don't need anymore, 16 not yet, with Add the 30 to Horizon

Drop a mods folder, a Prism or MultiMC instance, a .mrpack or a CurseForge zip, and get three numbers instead of a spreadsheet. One button adds every mod that comes with you; the per-mod list waits behind Show details.

Most wanted

The most wanted board: Create, Applied Energistics 2, Waystones, Farmer's Delight and Sophisticated Backpacks with their vote counts, two of them marked as your votes

The ten mods Horizon players miss most, with vote counts and your own votes marked. If you port mods, it's the list of what to make next.

Tell me when it's here

Watching: Waystones is on Horizon now, with Install, above three mods still waiting

Watch any mod that isn't there yet. When a Horizon version appears, Hopper says so the next time it starts, with Install right there.

Also: port it yourself with Smelt · revoked mods are turned off automatically · signed files are checked · no account.

How it works

Every answer comes from one of four places, checked in this order:

  1. Built in. rules/builtin.toml maps Java mods to what Horizon already has: Sodium, Lithium and the other speed mods to Horizon's engine, Distant Horizons to LOD Distance, JEI, REI and EMI to the official Recipes mod, and ten more rows. Each row links the Horizon doc that backs it.
  2. Ported. A Rust version is listed in Horizon's registry, the index.json built by horizon-rust/horizon-mods. The index doesn't say which Java mod a project replaces, so rules/ports.toml does, kept up to date by pull request. Revoked files never count.
  3. Works. Hopper runs Horizon's own check, horizon-launcher mods check <slug> --json, and shows its verdict in plain words. A mod works when its blocks, items, recipes and worldgen carry over. Add to Horizon hands it to the launcher, which carries that content over.
  4. Not yet. Anything else.

A dropped jar is read from its fabric.mod.json, META-INF/neoforge.mods.toml or META-INF/mods.toml, then looked up by hash with Modrinth's POST /v2/version_files. Modpacks list their mods' hashes, so nothing is downloaded to answer. CurseForge's API needs a key, so CurseForge-only mods are matched by name and may say Not sure yet.

Registry files install the way Horizon's launcher installs them. Each must match its SHA-256 and, when the project has a key, its minisign signature. Content mods (.hmod) go to horizon-mods/, native mods (.hnmod) to horizon-native-mods/, and Horizon asks you to trust each native mod the first time.

Votes go to a small Cloudflare Worker with a D1 database, in server/. It fits the free plan, checked on 2026-10-31: Workers allow 100,000 requests a day, and D1 allows 5 million rows read and 100,000 written a day.

Build from source

You need Rust 1.85 or newer. The desktop app also needs the Tauri prerequisites for your system.

git clone https://github.com/UpperSupervisor/horizon-modpack-compatibility.git
cd hopper
cargo test --workspace
cargo tauri build          # the desktop app
Path What's inside
crates/hopper-core Reading jars, the four answers, pack totals, the watchlist
rules/ Built-in and ported mods, reviewed by pull request
server/ The vote board: Worker, D1 schema and config (deploy steps in wrangler.toml)
app/ The desktop window (Tauri) and its icons
assets/ Images for this README

FAQ

Are the vote counts exact?

No, and they don't try to be. There's no account. Each install gets a random ID on first start, a vote counts once per mod per install, and each address can only send so many votes an hour. That's close enough to show what players miss most.

What does Hopper send, and where?

Mod hashes and names go to Modrinth, to identify your mods. Mod icons come from Modrinth's CDN (cdn.modrinth.com, nowhere else) and are cached on your PC; a mod without one shows its initials. Horizon's registry index is downloaded to see what's ported. Your votes go to the vote board with the random install ID. Your watchlist, your packs and everything else stay on your PC. There's no telemetry.

Why does a mod say "Not sure yet"?

Hopper couldn't find it on Modrinth, usually because it's only on CurseForge, so Horizon's launcher had nothing to check. Pack totals count it as not yet, so the numbers never promise more than Horizon can run.

Is installing safe?

Hopper installs only files listed in Horizon's registry, and checks each one before it reaches your game folder. Revoked files never install, and copies you already have are turned off with the reason. Native mods run unsandboxed, which is why Horizon asks you to trust each one.

My mod is "Not yet". Can I help?

Vote for it, so porters see it. To port it yourself, Smelt turns Fabric and NeoForge mods into Horizon mods. Once a port is in Horizon's registry, add a row to rules/ports.toml so Hopper knows which Java mod it replaces.

Is Hopper an alternative to Modrinth or Horizon's own Mods page?

It works alongside them. Modrinth lists Java mods, and Horizon's launcher checks and installs them one at a time. Hopper answers for your whole pack at once, says which mods Horizon already replaces, keeps a watchlist and counts votes for what's missing. Its verdicts come from Horizon's own check.

License

Hopper is MIT licensed. The UI prefers the system font where it has one (SF Pro on Apple devices) and bundles Inter and Geist Mono, both under the SIL Open Font License 1.1.

Minecraft is a trademark of Mojang Synergies AB. Mod names and icons belong to their authors and are shown only to identify the mods; icons load from Modrinth. Hopper isn't affiliated with Mojang, Microsoft, Modrinth, CurseForge, the Horizon project or any mod's authors.

horizon-modpack-compatibility (UpperSupervisor/horizon-modpack-compatibility)

Searching Database…