1a067b3d9e
options-get [KEY...] gives every options.txt option by its vanilla key with its value and what it accepts (type, range, step or choices; enums by name, key bindings as key.keyboard.w). options-set KEY VALUE sets one, applies it at once and saves options.txt as the options screen does (language and resource packs reload too); a value the option refuses is an error naming what it accepts, and the option keeps its value. After a set, ui reads the redrawn screen. horizon-ctl and its MCP gain both; tools/agent_control_e2e.py gains an options scenario. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Horizon documentation
To play, use the launcher; the project site is playhorizon.dev. These pages are for developers.
Build and run
- Build from source: your own copy of the game, resource preparation,
cargo run. - Native client: options, controls, the dedicated server,
horizon-ctlscripting, packaging, architecture. - Graphics: the Simple and Advanced graphics settings, the graphics benchmark and what it measured.
- Benchmark: Horizon against vanilla 26.3 and vanilla with performance mods, on the same machine, world, path and settings: what is measured, how it is kept fair, how to reproduce it.
- Extras: optional zoom, minimap, FPS and keystroke overlays and auto-reconnect, all off by default.
- Launcher: installs, updates and starts builds; its CLI and MCP server; releasing it.
- Opt-in data collection: the consent, exactly what is sent, how it is stored and sent.
- Benchmark report format: the versioned JSON every benchmark writes (game, launcher,
tools/perf_bench.py), the local log and, with consent, the upload. - Menus: the title, world list, create world, multiplayer, options and pause screens share the launcher's design tokens and fonts (
crates/horizon-theme), drawn byui_themeover a live frozen backdrop (game/backdrop.rs, blurred and graded bypost.rs). Options → Interface → Menu style switches to vanilla's screens (Classic, kept inhorizon.txt;HORIZON_MENU_STYLE=horizon|classicoverrides it, and scripted runs default to Classic). Title (webm), worlds, options, pause.
Parity
- Rust rewrite status: completion criteria, how to reproduce the validation, and per-area scope.
- Parity workflow:
tools/parity.py, the gate, other machines, merging. - Area notes: block behaviours and ticking, section meshing.
- Decompilation and research lab and decompilation status: the local game inspection workspace the harnesses build on.
Architecture: world generation
- World generation: the pipeline from noise to features.
- Noise generation, compiled density functions, structure density, terrain filling.
- Biomes: lookup, temperatures.
- Surfaces: material surfaces, material conditions, rule libraries, vertical anchors, value providers.
- Carving, heightmaps, feature placement.
Architecture: world data and simulation
- World data: chunk storage, palettes, region files.
- Block-state codecs, scheduled ticks.
- Collision geometry: shapes, collision, movement and fluids.
- Face visibility: which model faces the mesher emits.