Repository navigation
Horizon with mod input, ui, render and world (2)
A build of Horizon with four mod capabilities from Horizon's own roadmap, so a mod can be a whole feature rather than a HUD. It's what Orbital Laser runs on.
| Capability | What a mod can do |
|---|---|
input |
claim an item's right-click (use-start, use-stop, ticks held), register keybinds (listed in Options → Controls → Key Binds under the mod's name), read the held item |
ui |
own a screen drawn from fills, quads, sprites, item icons and text, with clicks and Escape as events; it doesn't pause the game |
render |
a post-processing pass in the shader-pack stage format, with 16 per-frame parameters (frame.mod_params), drawn after any shader pack; new: shake(strength, seconds), a real camera shake (the view turns, so the world, the hand and post passes move together; scaled by Distortion Effects) |
world |
raycast up to 1024 blocks (new: past the loaded chunks across the distant terrain, with LOD Distance on), run commands at operator level silently in one tick (single player and LAN hosts), play sounds |
Mods built for Horizon's API 0.1 still load unchanged. New events are pulled by the mod (input.poll) rather than called as new hooks, and the WIT package stays horizon:mods@0.1.0. The details are in docs/mods.md on the branch.
Also new on the branch since orbital-mod-api-1:
horizon-ctl record PATH [FPS]/record stop: the finished frames, post passes and HUD included, streamed to a video through ffmpeg (NVENC when it's there).- Block-break sounds and particles reach only 64 blocks, as vanilla's server sends them, and a few sound channels stay free for sounds played to the player, so a crater's worth of breaking can't silence them.
/fillskips blocks that are already the target and caches its filter per state; timing spans for mod ticks and commands (HORIZON_SPIKES).- Settings rebuilt by
horizon-ctl options-setno longer drop the enabled mods.
Install
- Download horizon-orbital-linux-x86_64.tar.gz below and unpack it (Orbital Laser's
play.shlooks in~/horizon-orbital). - Prepare the resources once from your own Minecraft 26.3 (Java 25 and the 26.3 server jar, as Horizon's PLAY.txt explains):
./horizon-prepare --prepare --server-jar PATH/TO/server.jar, then./horizon-prepare sounds.
If you already have Horizon prepared, you can pass its resources instead (--resources …/.local/horizon-client/26.3). - Start it from your game folder (
~/.local/share/horizon), since the game keeps saves, options and mods where it starts.README-ORBITAL.txtin the download has the command, and Orbital Laser'splay.shruns it for you.
Important
This is not an official Horizon release, and it contains nothing from Minecraft: you need your own copy of Minecraft Java Edition 26.3. It's built from mod-api-input-ui-render-world, which is upstream main as of 2026-10-22 plus these changes. Orbital Laser 0.5.0 needs this build (or newer).
Warning
Linux x86-64 only, and experimental. Tested on one Linux PC (Fedora, NVIDIA). Elsewhere, build the branch from source: cargo build --release -p horizon-client.
Assets
| file | what |
|---|---|
horizon-orbital-linux-x86_64.tar.gz |
horizon-client, horizon-ctl, horizon-prepare, the licence and notices, and README-ORBITAL.txt |
| Source code (zip / tar.gz) | the branch's source |