Horizon 2026.10.22.04: Linux, LAN guests, live player count and 434 more changes — release notes

· v2026.10.22.04 · 022600481e · GitHub ↗

The launcher installs and updates the game — no need to grab these archives by hand. You need your own Minecraft: Java Edition.

Binaries removed (licence cleanup, see #6741); tags and source remain.

New

  • horizon-prepare sounds: sound copy in Rust, run by the launcher (no Python for players) (#123)
  • Controllers: design note, gilrs input layer and gameplay (#120)
  • Controllers: menus, screens and inventories (virtual cursor) (#129)
  • Controllers: Controller options, button binds and glyphs (#145)
  • Controllers: rumble (#149)
  • Horizon extras: zoom, FPS counter, keystrokes and the Extras page (off by default) (#135)
  • Horizon extras: minimap (off by default) (#136)
  • Horizon extras: auto-reconnect (off by default) (#137)
  • Design system: one set of tokens for the launcher, menus and website (#166)
  • Horizon's mark and its icon everywhere (#167)
  • Game menus (Horizon style) in the new design language (#173)
  • Title screen: "RUST EDITION" under the logo (#226)
  • Opt-in data collection (3/5): the game keeps crash reports and session summaries only with consent (#252)
  • Play with friends (2/3): Invite friends in the pause menu (no server needed) (#199)
  • Play with friends (3/3): Join a friend with the code alone, in game and in the launcher; end-to-end harness (#200)
  • Controllers: focus navigation in menus, on-screen keyboard, menu navigation option (#241)
  • horizon-client --benchmark SCENARIO: benchmark your own machine, report in the shared format (#263)
  • Battery mode: an opt-in 60 FPS cap (30 in menus or unfocused) and half the worker threads (#254)
  • Render the world with reversed depth like vanilla (far fire no longer flickers) (#296, fixes #272)
  • Rebuild every section when See-Through Leaves, Smooth Lighting or Biome Blend changes (#297, fixes #273)
  • Draw flying firework rockets as their lit item model like vanilla (#298, fixes #279)
  • Copper golems keep the persistence vanilla saved (#289) (#292, fixes #289)
  • Arrows stop jumping along their path after they land (#278) (#294, fixes #278)
  • Autosave stops waiting for entity writes: no more 2 s freeze (#224) (#300)
  • Bees live in hives and nests: they go home, come out in the morning and make honey (#208) (#307)
  • Load worlds ~4.7x faster: stop copying the face visibility table per mesh job (#269)
  • Stop reloading saved columns every frame after the player moves (#280)
  • Recipe toasts show the workstation icon and cycle through the unlocked recipes (#295, fixes #283)
  • Blur the panorama behind world selection, multiplayer and world creation, as vanilla does (#299)
  • Multiplayer: vanilla's server list, with the LAN scanning text and its animated dots (#301)
  • World list and pack lists: vanilla scroller, dragged with the pointer (#303, fixes #282)
  • Create New World: vanilla's Game, World and More tabs (#304, fixes #281)
  • Debug charts: F3+2 frame and tick times, F3+3 ping and bandwidth (#305)
  • F3+4 shows the lightmap texture in the bottom right corner (#306)
  • Shield blocks: the player hears the block sound, not the hurt sound (#310)
  • Shields turn arrows back, as vanilla does (#311, fixes #277)
  • Crossbows load firework rockets from either hand; bows and crossbows take held arrows first (#312)
  • Use the off hand when the main hand passes: place blocks, eat, charge anchors (#313)
  • Show the off-hand item in first person (#314, fixes #276)
  • Minecarts roll and rattle when ridden, and hits on vehicles sound (#315, fixes #227)
  • Axes on copper: a shield in the off hand is raised first, and sculk sensors hear it (#317, fixes #222)
  • Trial spawner state machine, checked against vanilla (#319)
  • Trial spawners run in game (#320)
  • Fishing: the rod casts, bites splash and bubble, and the line is vanilla's (#316, fixes #265)
  • Agent control: the widget tree of every screen, click and set by id (#349)
  • Agent control: read and set every option by key (#350)
  • Agent control: wait for a state, and the log of what happened (#351)
  • Relit chunks remesh only where their light changed (#352, fixes #270)
  • Save proto chunks on a worker, not the main thread (#353, fixes #224)
  • Cap a fresh install at vanilla's 120 FPS (#354)
  • Natural spawning skips air sections when finding the surface (#355)
  • Shift-click on every container screen, even when Shift is pressed after it opens (#358)
  • Vanilla text selection colours and blinking cursors in the creative search and anvil (#394)
  • Pick Block picks from the inventory in survival (#398, fixes #367)
  • Creative item tabs click as CreativeModeInventoryScreen does (#391)
  • Shift + double-click moves every matching stack (#392)
  • Drag highlight and counts as AbstractContainerScreen draws them (#393)
  • Clicking a creative search result selects the query (#395)
  • Mouse Tweaks-style inventory controls (extra, off by default) (#396)
  • Sort buttons for the inventory and chests (extra, off by default) (#397)
  • DualSense output over HID: the report, a writer thread, and rumble through it (#348)
  • Mods in the game: Options > Mods, hooks and HUD panels, off by default (#345)
  • Shader packs (3/3): pick a pack in Video Settings (#347)
  • DualSense adaptive triggers (#360)
  • DualSense vibration: shaped pulses, HD haptics on USB (opt-in) (#361)
  • DualSense lightbar and player LEDs (#362)
  • LAN guest: the guest sees himself (own player model on a server) (#425, fixes #366)
  • LAN: every player wears their own armour (#426, fixes #366)
  • LAN: chest and shulker box lids open and close for every player (#427, fixes #366)
  • LAN: name tags over other players, and the host under its own name (#428, fixes #366)
  • LAN guest: crafting in the 2x2 grid and at a crafting table (#429, fixes #366)
  • LAN guest: fall damage, regeneration and hunger on the host (#430, fixes #366)
  • Optional leaf and entity culling (Online5277's #387, rebased) (#420)
  • Java shader packs (1): horizon-shaderpack crate, Iris's preprocessor and options (#405)
  • Java shader packs (2): translate programs to WGSL (syntax-tree legaliser + naga) (#413)
  • horizon-shaderpack: read shaders.properties like Iris (#415)
  • horizon-shaderpack: plan a Java pack's full-screen passes like Iris (#418)
  • horizon-client: run a Java pack's full-screen passes over the world (#436)
  • Content mods (API 0.2): .hmod assets/ and data/, blocks and items from vanilla templates (#523)
  • Content mods in the resource root: template rows appended to every block table (#530)
  • Content mods in the game: loot, recipes, models, names and icons from mod namespaces (#531)
  • horizon-port-pack: import a modpack and classify its mods (#532)
  • horizon-port-pack carry: a jar's data and assets as a content mod (#533)
  • horizon-server: server.toml, init, and a supervisor that runs the game (#551)
  • horizon-server: start, stop, status, cmd and logs through a local control API (#552)
  • horizon-server: backups, restore and automatic backups (#553)
  • horizon-server: install scripts, a Docker image, and boot services (#554)
  • horizon-server: the web panel (#555)
  • horizon-bots and tools/server_bench.py: the first server benchmark against vanilla (#556)
  • Content mods: load real carried-over mods (large tables, convention tags, mod recipes) (#630)
  • horizon-port-pack carry: templates and numbers from the NeoForge oracle, 1.21.1 loot upgraded (#631)
  • horizon-port-pack report: coverage per mod, and ATM10 measured (#633)
  • Block textures: share identical sprites, and draw past 2048 layers (#647)
  • Content mods: refuse more block states than chunks hold; the pack against NeoForge, measured (#648)
  • horizon-prepare: keep the registry and command reports with the prepared files (#590)
  • LAN hub: hand a tick's packets to each connection together (#649)
  • Dedicated server: online mode, and refused logins in the log (#587)
  • Pathfinder: Fx-hashed nodes, and each path type worked out once per query (#660)
  • horizon-port-pack: a library, fetch and port; CurseForge zips name their mods (#653)
  • Carry: leave out the files the content loader would refuse (#681)
  • Dedicated server: encode each chunk section once, not once per player (#623)
  • Entity portal checks: skip the sweep where no section holds a portal (#661)
  • Online mode: players named in commands are their accounts (#589)
  • usercache.json, and console names resolved through it as vanilla does (stacked on #589) (#694)
  • Locator bar for vanilla clients on Horizon servers (waypoint packets as vanilla sends them) (#692)
  • Server: skip the advancement flush for players whose progress didn't change (#701)
  • Hoppers: look up the block only under container block entities (#702)
  • Chunk streaming: look at each column once when players' areas overlap (#703)
  • Entity tracking: each entity type's range once per tick, not per player (#704)
  • Chunk packets: one cache lock per column for its non-air sections (#705)
  • Chunk packets: keep each section's block entity blocks with its bytes (#706)
  • Server: Fx hashing for each player's sent chunks and tracked entities (#707)
  • Dedicated server: vanilla's chunk pacing and movement checks (#586)
  • Server benchmark against vanilla 26.3 on equal work (#670)
  • Block state ids past 16 bits: ATM10's 42 carried mods load (#674)
  • Content mods' memory: measure the footprint, drop the registry's second copy (#680)
  • GPU frame time on Metal, render spans and section draw counts (#742)
  • Metal: draw terrain sections as one index list per page run (#743)
  • Decode the server's command tree and complete commands with it (#708)
  • Show the server's recipe book on a server and place its recipes (#714)
  • Hoppers: look up the block only under five-slot containers (#738)
  • LAN: compress a large packet once for every connection (#748)
  • LAN: write chunk packets straight into one buffer (#739)
  • LAN: wake the writer threads from one post thread, once per tick (#737)
  • Server players finish vanilla's FULL square, not a 1.5x circle (#806)
  • Creaking hearts: scan only sections whose palette holds a heart (#793)
  • Dedicated server: never mesh sections (#813)
  • Modpacks and server hosting: modpacks-4's #753–#765 and server-host-5's #759–#790 combined (#823)
  • fix(server-thread): follow the render distance, past 32 too (#804) (#830, fixes #804)
  • feat(server): secure chat, as vanilla 26.3's server (#831)
  • Structures: honour a carried mod's start and placement rules (#820)
  • Region files: write each saved chunk in place, as vanilla's RegionFile (#827)
  • Brewing stands tick in the level's block entity ticker list (#828)
  • Block entity animations: read the drawn block entities only when they change (#829)
  • Clients keep the light the server sends; the server sends light updates (#824)
  • Server: track each entity once for all its clients, as vanilla's ServerEntity (#841)
  • Locator bar: update each connection in place, without clones (#842)
  • Region writer: encode and compress chunks on helper threads (same bytes) (#860)
  • Terrain vertices in 24 bytes instead of 28 (UV as 16-bit fixed point) (#865)
  • Light changes dirty sections by section, not cell by cell (#866)
  • Mesh scheduling looks at dirty sections column by column (#867)
  • Modpacks: mod structures in vanilla sets, YUNG's jigsaws and placements, Moog/Repurposed layouts (combined #832–#852) (#870)
  • Server: check each entity's range for every client from one compact pass (#864)
  • Locator bar: look up each connection and its two players once (#871)
  • Prepare: find native jars where Prism Launcher keeps them (#858, fixes #849)
  • Mining: harness for a player's mining (#844); tools count as used, wear damage_per_block, pots shatter (#875)
  • Structure starts: a sharded cache, so the server thread stops waiting on workers (#872)
  • Natural spawning reads a kept WORLD_SURFACE heightmap (#873)
  • Server: commands on other players, attributes, respawn, crouch, server-thread agent commands (combined #845–#892) (#901)
  • Processors: read rule ids without a namespace, as vanilla does (#907)
  • Structures: horizon:spawner_mobs, the mods' spawner randomizing processors (#908)
  • Carry: the structure mods' spawner processors, as data the game runs (#909)
  • Start checks: Repurposed's Nether city, Nether shipwreck and End stronghold rules (#910)
  • Carry: Repurposed's Nether city, Nether shipwrecks and End stronghold (#911)
  • Renderer: one command buffer per frame, uploads before the first pass (#905)
  • LAN: guests use machines and brewing stands, trigger plates, see hits, swings and the paused clock (bugs-lan-4 combined) (#913)
  • LAN: players see each other eat and use items (#887)
  • Server: tick blocks around every player, from vanilla's chunk tickets (#890) (#931, fixes #890)
  • Server build: Linux servers need neither ALSA nor udev (horizon-engine, its own archive) (#916)
  • Terrain: occlusion culling of solid sections that pays for itself (Vulkan) (#939)
  • Structures: Repurposed Structures' three rule tests (matter phase, piece-origin distance, height) (#919)
  • Carry: Repurposed's rule tests as the game's, and minecraft:chain as iron_chain (#920)
  • Structures: Repurposed Structures' mineshafts, laid out under the terrain (#922)
  • Carry: Better Dungeons' small Nether dungeon, as YUNG's jigsaw (#923)
  • Carry: vertical_distance_from_start_piece is a dead field, not a lost rule (#924)
  • Structures: Moog's trial spawners and vaults, without the templates' saved state (#926)
  • Structures: Better Desert Temples' placeholder blocks (suspicious sand, sherds, traps) (#929)
  • Structures: Better Dungeons' small dungeons keep one or two chests (#930)
  • Structures: Lithostitched's block swaps (Overhauled Village), with the shared properties (#932)
  • Chunk packets: pack paletted containers a long at a time (2.3x faster from_values) (#915)
  • Chunk batches: encode each column once a tick, its new sections on warm-up threads (#934)
  • Guest ticks: count per-tick statistics without making strings, date criteria only when granted (#914)
  • Entity tracking: check a pair again only when one side moves, as vanilla's ChunkMap (#927)
  • Cache carver biome lookups per generator worker (#943)
  • Server: spawn mobs around every player, and despawn from the nearest of them (#950)
  • Paintings, frames, boats, armor stands, falling blocks and TNT tick only in entity-ticking chunks (#951)
  • Coordinate concurrent neighbour cache misses by chunk key (#946)
  • Reuse terrain sampler scratch buffers between chunks (#949)
  • Strongholds: sample each ring's biome search through one climate sampler, as vanilla does (#954)
  • Carry: read data files with comments, as Minecraft does (#957)
  • YUNG's assembler: modifiers, piece_in_range and dead-end pools (#958)
  • Carry: write Lithostitched's processor references in (#960)
  • Carry: Lithostitched's apply_random, condition and set_block as the game's (#964)
  • Structure processors: Lithostitched's apply_random, condition and set_block as data (#963)
  • Optimize bulk density arithmetic, Beardifier and Perlin sampling (#796)
  • Beardifier: YUNG's and Moog's enhanced terrain adaptation kernels (horizon:enhanced_terrain_adaptation) (#955)
  • Carry: YUNG's and Moog's enhanced terrain adaptation as horizon:enhanced_terrain_adaptation (#956)
  • Carry: YUNG's dead-end pools, modifiers and piece_in_range (#959)
  • horizon-server update and rollback: switch releases, roll back by itself when the game doesn't come up (#966)
  • DirectX 12 on Windows: fallback when Vulkan fails, and a Graphics API setting (#979)
  • Server: run a dead player's chat commands, as vanilla does (#973) (#998, fixes #973)
  • Server: a right click with an item on a block uses it once (#999)
  • Server: players on one team without friendly fire don't hurt each other (#1000)
  • Server: a guest's projectiles are theirs (ender pearls take them) (#1001)
  • Place pillars and fluid fixes that reach outside the template (#981)
  • Carry the mods' pillar and fluid fix processors (#982)
  • Carry Formations' structures (#989)
  • horizon-server: delete old releases after an update (#990)
  • Far terrain: no faces for caves nothing can see into (-36% far quads) (#993)
  • Far terrain: bounded render-thread work while tiles generate (#994)
  • Far terrain: capped on integrated GPUs, held back on 4-thread machines (#995)
  • Loot: read every namespace's tables, so modded structures' chests are no longer empty (#975)
  • Content mods: namespaces besides the mod id, and no namespace shared by two mods (#969)
  • Carry: Towns and Towers' namespaces (kaisyn, towns_and_towers) as its manifest's namespaces (#974)
  • Flood and waterlog the structures built under the sea (#983)
  • Carry Better Ocean Monuments' processors and YUNG's legs (#984)
  • horizon-server config: change server.toml's settings from the command line, live where vanilla can (#1009)
  • Generate Formations' structures from the noise column (#988)
  • port-pack: Repurposed's structure voids keep the world's block (#1022)
  • port-pack: enter_block criteria name their block as blocks (mod advancements no longer granted on any block) (#1028)
  • port-pack: blocks whose sides are true/false are vines, not walls (Chipped's vines load) (#1027)
  • Far terrain: chunk summaries and mesh inputs on the worker (#1029)
  • Launcher and horizon-server update: install only releases whose signed checksums match (#1014)
  • Collision scans: a counting cursor, and fewer lookups and allocations per block (#659)
  • Structures: Repurposed Structures' waterlogging fix, as horizon:waterlog_in_world_water (#1032)
  • Content mods: shared tags merge like a data pack's, replace honoured with a warning (#1021)
  • Stars: build the star buffer once, as vanilla does (#1079, fixes #1054)
  • Video settings: cost tags from measured frame times, and Saves time for cave culling (#1089, fixes #897)
  • Weather: rain heights from a cached MOTION_BLOCKING heightmap (#1084, fixes #899)
  • Cave culling: vanilla's graph rules (every entry face, distant ray test) (#1094, fixes #629, fixes #782)
  • Items merge with their neighbours; falling blocks land in their own tick (#1110, fixes #996)
  • Loading screen: fill the chunk map square by square, as vanilla (#1112, fixes #770)
  • Cave culling: see the world from above or below its height (#1111, fixes #1037)
  • Sky, fog and water fog colours blend across biomes (GaussianSampler) (#1118, fixes #797)
  • Terrain particles: the model's particle sprite and vanilla tint (grass blocks break into dirt) (#1115, fixes #1034)
  • Extras: classic buttons two to a row; each extra's settings nest under its switch (#1122, fixes #812, fixes #815)
  • Book title: Select All's highlight and vanilla's centring (BookSignScreen EditBox) (#1123)
  • Station shift-clicks follow vanilla's quickMoveStack; the brewing stand runs on the menu engine (#1125, fixes #275)
  • End crystals spin and bob in every dimension (#1116, fixes #1051)
  • Boats: the water patch hides water inside the hull; the riding camera turns smoothly (#1119, fixes #1016)
  • Ender dragon: runs on server levels, fights every player, vanilla damage rules (#1137)
  • Other players' block cracks are drawn (#1149, fixes #1096)
  • Loot tables apply set_potion (a piglin's barter potions hold fire resistance) (#1134)
  • Other players are drawn lying in their beds (#1144, fixes #1045)
  • A new world knows its world spawn before its first save (#1135)
  • /summon reports primed TNT, falling blocks and projectiles it spawned (#1136)
  • Ominous item spawners are saved with their chunk (#1143, fixes #462)
  • Locator bar: one waypoint manager per level (#1150, fixes #843)
  • Advancement triggers test only the criteria that can pass; the log writes on its own thread (#1152)
  • Thrown potions: drawn as their item, facing the camera (ThrownItemRenderer) (#1117, fixes #818)
  • Audio: pan like OpenAL Soft's stereo output (explosions were ~6 dB too loud) (#1133, fixes #488)
  • Particles: 26.3's sulfur bubbles over wet potent sulfur (closes the #63 particle audit) (#1156, fixes #63)
  • Axolotl: free water paths, flat walk targets and the attack sound (idle swim and play dead match vanilla) (#1159, fixes #64)
  • LAN fixes: land the eight rebased B5 PRs together (#1138 #1139 #1140 #1142 #1146 #1147 #1148 #1151) (#1160)
  • Client of a server: abilities from the server, flight sent back (creative flight on the server thread) (#1108)
  • Run single player on its server thread by default (#1114, fixes #1072)
  • Shader packs: Steadfast, Bloop and Noble get past the preprocessor; a compatibility table (#1157, fixes #616)
  • Shader Packs page: the folder's path, Open Folder, a switch per pack (#1158, fixes #925, fixes #941)
  • Dynamic lights: held, dropped and burning light sources (Horizon Extras, off by default) (#1162, fixes #814)
  • Riptide: the auto-spin attack (pose, contact hit, spinning model, effect layer, first-person pose) (#1155, fixes #536)
  • Render thread ahead of the workers on macOS and Windows (RD 32 long frames) (#1179)
  • Chunk packets get 1 ms a frame on a client of a server (RD 32 frame spikes) (#1181)
  • Live player count: an anonymous "I'm playing" ping and "N playing now" in the launcher (#1185)
  • LAN guests: the lectern and the cartography table (#868) (#1188, fixes #868)
  • Linux: the game's workers go behind its render and server threads (RD 32 long frames) (#1192)

Fixed

  • Make the Rust rewrite main (#34)
  • Merge the parity work: 55% -> 71% Java parity (#38)
  • Add the playhorizon.dev website link (#43)
  • Fix the looping grass-step sound; classic menus lead back to Horizon's (#48)
  • Creative inventory: every tab and the search as vanilla builds them; scrollbar drag (#49)
  • Cosmic's camera, breaking, clouds and outline fixes (#42 + #47), integrated (#51)
  • Furnaces keep their cooking progress across menu clicks (#76, fixes #69)
  • Clouds: draw to the Cloud Distance option, not the render distance (#79, fixes #67)
  • Rain and snow: tile the weather texture like WeatherEffectRenderer (#78, fixes #71)
  • Composters take compostable items by hand, from hoppers and from droppers (#80, fixes #70)
  • Give the fire charge's use sound its own pitch (#84)
  • Game rules: save them with the world once, as they are now; save on Quit (#82, fixes #74)
  • Hand sway: the first-person hands lag behind the view, as in vanilla (#83, fixes #66)
  • Feeding sounds: each animal's own eating sound, or none, as in vanilla (#81, fixes #68)
  • Match the variant components of entity predicates (taming grants only Best Friends Forever) (#86, fixes #65)
  • Resource packs: reload everything in game and merge stacked files like vanilla (#85, fixes #72)
  • Read the physical Shift keys in container screens and drop a stack clicked outside (#87, fixes #77)
  • Powder snow: sinking, freezing, leather boots, buckets and falling blocks (#88, fixes #62)
  • Particles: vanilla random streams, and fixes to 20 providers (part of #63) (#89)
  • F3 key combinations, as 26.3's KeyboardHandler runs them (#90, fixes #73)
  • Prepare resources in Rust: horizon-prepare replaces the Python preparer (#92)
  • Entity particle bursts: five angry villager particles and the other bursts as in vanilla (part of #63) (#91)
  • Particles: 29 missing vanilla particle types (part of #63) (#96)
  • Particle emitters: waxing, scraping, sparks, eating, snowballs, eggs, slimes (part of #63) (#104)
  • Keep the compositor's fullscreen; copy and paste in every text field (#108)
  • Cobwebs and sweet berry bushes slow the player (#112)
  • horizon-ctl: mouse-move, and turn/look-at --over through the player's mouse path (#113)
  • Logs and crash reports: game, launcher, CLI and MCP (#98)
  • Apply the entity hurt and white-flash overlay in vanilla's order (#117)
  • Sweet berries can be planted; picking and bone meal work (#115, fixes #93)
  • Find a new world's spawn as vanilla does (NoiseSpawnFinder, setInitialSpawn, PlayerSpawnFinder) (#116)
  • Nether portals: vanilla timing and linking; items and mobs travel (#122, fixes #94)
  • OverlayTexture texels from one tested table; creepers flash white while swelling (#121)
  • Terrain gets its own 28-byte vertex without a normal (was 36) (#128)
  • Fix creative inventory tab and toggle-sprint item drops (#56)
  • Fix stuck keys when opening Options (#152)
  • Fix keybind category translations (#155)
  • Apply saved audio and GUI settings at startup (#150, fixes #134)
  • Fix World Options pause and Escape behavior (#154)
  • Fix classic options scroll limits (#156)
  • Fix fall damage sounds in creative mode (#151)
  • Play normal arrow impact audio for player hits (#158, fixes #130)
  • Monster spawners spawn, spin their mob and take spawn eggs (#146, fixes #95)
  • Respawn anchors charge, set the respawn point, explode outside the Nether (#163, fixes #99)
  • Beds and straw beds blow up when used in the Nether and the End (#169, fixes #101)
  • Maces: smash attacks, Density, Breach, Wind Burst (#175, fixes #105)
  • Fix LAN worlds pausing when the host opens menus (#172)
  • Fix LAN shutdown when leaving a singleplayer world (#171)
  • Fix missing background in Classic menus (#162)
  • Fix inventory banner face depth ordering (#165)
  • Fix tab list for singleplayer LAN hosts (#170)
  • Reuse verified Minecraft imports when preparing new versions (#178, fixes #160)
  • Fix classic menu click sounds to match vanilla (#182, fixes #140)
  • Fix screenshot, seed, and locate chat click actions (#176)
  • Render dragon egg teleport particles (#179, fixes #106)
  • Render falling blocks with their actual block models (#181, fixes #107)
  • Drive rabbit hop and idle animations from runtime controls (#183, fixes #109)
  • Resolve relative preparation roots before running Java exporters (#185)
  • Water cancels the player's fall damage (#180) (#186, fixes #180)
  • Arrows get vanilla's water physics (#127) (#187, fixes #127)
  • Burning arrows: lava, fire, Flame and what they light (#125, #124) (#189, fixes #124, fixes #125)
  • Arrows can be picked up (#119) (#193, fixes #119)
  • Creepers swell and flash for LAN guests; load ignited from NBT (#194, fixes #157)
  • Inverting crosshair and a working attack indicator (#196, fixes #97)
  • End crystals from EndCrystalModel: lit, with their base and beams (#197, fixes #102)
  • The dragon fight's world fog and the End's void darkness floor (#198, fixes #103)
  • Fix Classic singleplayer world management screens (#177)
  • Sprite mips from vanilla's MipmapGenerator: no cactus corner gaps (#201, fixes #110)
  • Fix GUI Scale button in classic Video Settings (#191)
  • Loaded spawners keep their mob; chunk block entities in vanilla's order (#203)
  • LAN: offline players get a kept generated name instead of Player (#195) (#214, fixes #195)
  • Items, orbs and arrows fly to whoever picks them up (#142) (#218, fixes #142)
  • Play the player's hurt sound for every damage, by its damage effects (#144) (#216, fixes #144)
  • Fix pixelated Classic menu panorama (#188)
  • Explorer, treasure and abandoned camp maps work (#147) (#232, fixes #147)
  • Match crosshair alpha cutoff and ready-target checks (#190)
  • perf(client): parse large fact JSON from in-memory bytes (#207)
  • Horizon menus: delete singleplayer worlds (#234)
  • perf(client): buffer model and render JSON reads (#205)
  • Fix animations, axolotls, fluids, fire and world progress isolation (#59)
  • perf(mesher): short-circuit section visibility flood fills (#243)
  • perf: reuse entity geometry vertex storage between frames (#240)
  • perf: group block entities once per save batch (#246)
  • Player water on #59: bubble columns, swim sounds, drown bubbles, vanilla fixes (#238)
  • Make options list scrollbars draggable (#257, fixes #242)
  • Honor Off, Fast and Fancy cloud settings (#260, fixes #255)
  • Add the F3+F4 game mode switcher (#266, fixes #209)
  • Prevent climbable blocks from slowing spectator flight (#262)
  • Clip options rows smoothly at list boundaries (#259)
  • Prevent block interactions through targeted entities (#268, fixes #217)
  • Mesh columns loaded past the render distance once they come in range (#228) (#274, fixes #228)
  • Save every generated chunk and decorated proto chunks, as vanilla does (#249) (#284, fixes #249)
  • perf: reuse renderer entity material batching buffers (#237)
  • perf: return only lighting from chunk light workers (#233)
  • perf(client): reuse parsed model states during preparation (#210)
  • perf(client): share parsed entity models across startup batches (#204)
  • Fix status effect icons and display effects in inventories (#184)
  • perf(client): skip tick chunk synchronization when membership is unchanged (#239)
  • Fix classic title menu layout and accessibility shortcut (#219)
  • perf: reuse unchanged resource-pack overlays after validation (#220)
  • perf(streaming): skip unchanged generation scans (#230)
  • Striders stand on lava instead of bobbing in it (#285, fixes #256)
  • Bats hang upside down and fly, with their wing animations (#287, fixes #215)
  • Bees fly, pollinate flowers, get angry and sting (#291, fixes #208)
  • Load gameplay facts with typed decoding and interned shapes (#309)
  • Cache random-tick section eligibility across unchanged chunks (#318)
  • perf(client): share parsed block and item models (#330)
  • Cache animated sprite mip chains within an 8 MiB budget (#341)
  • Prevent hotbar selection from changing behind menus (#402, fixes #401)
  • Interpolate animated textures like vanilla (prismarine, magma, stems, lit furnaces) (#343)
  • Show ping tooltips over multiplayer network bars (#403, fixes #379)
  • Preserve native sprite mipmaps in mixed-size texture arrays (#404)
  • Reopening a world no longer duplicates its entities (#406, fixes #374)
  • Commands follow the world's Allow Commands (#407, fixes #372)
  • Graphics presets set render and simulation distance like vanilla (#409, fixes #382)
  • F3 overlay like vanilla: on top of menus, debug GUI scale, default entries (#414, fixes #363, fixes #376, fixes #377)
  • F3 shows vanilla's debug crosshair (world axes) (#416, fixes #375)
  • Server list rows: favicons, styled MOTDs, player count colours, icon arrows (#421, fixes #365, fixes #370, fixes #378)
  • Server list: confirm before deleting, vanilla Direct Connection layout (#423, fixes #380, fixes #381)
  • Keep chat arrow keys from turning the camera (#459, fixes #458)
  • Vaults: server logic and a parity harness (#410)
  • Vaults in the game: ticking, keys, rewards and the display item (#417)
  • Show trial spawner and vault visuals (#422)
  • Give trial chamber pots their loot, sherds and insertion (#433)
  • Trial spawners: become ominous, Trial Omen and ominous item spawners (#439, fixes #223)
  • World list: hovered rows show the join arrow, clicking the icon joins (#445, fixes #369)
  • Pause menu: icons centred and in full colour like vanilla (#449, fixes #371)
  • World Options: vanilla layout, headings, port box, lock and footer (#450)
  • Level loading screen like vanilla: panorama, chunk map and progress bar (#451, fixes #364)
  • World screens' text fields: move the cursor, select, click and drag (#452, fixes #383)
  • Classic sliders follow the pointer and snap on release (#385) (#453, fixes #385)
  • World backup toast slides in and out with its sounds (#384) (#454, fixes #384)
  • Fix Happy Ghast riding controls and standing after dismount (#465, fixes #411)
  • Mod commands: coloured and Tab-completed in the chat like vanilla's (#456) (#463, fixes #456)
  • Wayland: VSync off draws uncapped in a window (#446, fixes #441)
  • Holding the drop key keeps dropping, in game and in menus (#447, fixes #443)
  • Dropping from a menu swings the hand (#448, fixes #442)
  • Command blocks: placing, the edit screen, and running commands (#455, fixes #444)
  • Keep held keys held through wait on the control socket (#477, fixes #469)
  • F3 debug crosshair: no view bob, drawn after the hand like vanilla (#476, fixes #475)
  • World Options: difficulty lock with its confirmation, and Restrictions (#482)
  • World Options: Edit Game Rules (InWorldGameRulesScreen) (#483, fixes #464)
  • Ctrl + Pick Block copies the block entity's data in creative (#479, fixes #386)
  • Item tooltips for container contents, spawner data and op-only data (#481)
  • LAN: mobs target and attack guests (#466)
  • LAN guest: hurt by lava, fire, drowning, suffocation and the void; hungry from moving (#467)
  • LAN: PvP between the host and guests (#470)
  • LAN guest: their own ender chest, and double chests as 9x6 (#471)
  • LAN guest: command feedback names the guest and shows its numbers (#472)
  • LAN: trial spawners and vaults see the guests (#473)
  • Name tags show through walls (#474)
  • Reuse cloud geometry and GPU buffers between frames (#485, fixes #480)
  • Upload animated sprites through a reused staging belt (#501)
  • Skip section face groups that face away from the eye (#503)
  • Animated textures: cache every animation frame's mip chain (#502)
  • Per-frame uploads through the staging belt; skip unchanged lightmaps (#520)
  • Mobs: shape only the cells that can support them (−11 % tick time) (#506)
  • Mobs: find the mobs to push through a grid, not a scan of every mob (−14 % tick time) (#508)
  • Villagers: each block state's POI type from a table built once (−11 % CPU at world load) (#509)
  • Data packs: walk only the folders functions, tags and predicates live in (#524)
  • Collision scans: skip blocks with no shape, build the entity shape lazily (−6 % tick time) (#507)
  • Stronghold ring searches run on every worker that needs them (#514)
  • Show the tenth storage slot in chests (#546, fixes #525)
  • Show translated hover tooltips in Classic options (#522, fixes #498)
  • Honor villager and zombie villager hat metadata (#521, fixes #334)
  • Handle fullscreen shortcut across menus and text fields (#510, fixes #497)
  • Preserve cloud opacity when shading faces (#511, fixes #491)
  • Remove duplicated settings from Classic graphics submenus (#512, fixes #496)
  • Correct Classic world-list search hints and text placement (#517, fixes #499)
  • Renderer: skip wgpu's indirect-draw validation in release builds (−0.05..0.11 ms/frame of render thread at RD 32) (#560)
  • Renderer: cull sections by chunk column from a dense list (section walk 5x faster, exact) (#561)
  • Apply falling anvil impact damage and wear (#528, fixes #399)
  • Fix main build: falling anvil wear reads blocks from self.pack (#572)
  • Package registry reports and show recoverable server resource errors (#576, fixes #573)
  • Preserve quit button sounds when leaving a world (#575, fixes #565)
  • Remember Direct Connection server addresses (#574, fixes #571)
  • Name the launcher's real button in the incomplete-resources error (#595)
  • Clear block breaking progress when opening inventory (#606, fixes #588)
  • Show live packet rates and server brands in F3 (#594, fixes #564)
  • Returning to the Overworld reuses its stronghold ring positions (#591)
  • Villagers search an index of POI blocks instead of scanning every block (#567)
  • Fix Ominous Banner data, tooltips and breaking effects (#547)
  • Add mod management to Classic Options (#585, fixes #559)
  • Support mouse buttons for Extras sorting and zoom (#637, fixes #581)
  • Correct inventory player scale, labels and equipment overlap (#638, fixes #583)
  • Add an off-by-default Fullbright toggle in Extras (#640, fixes #584)
  • Light both redstone ore variants when mining starts (#642, fixes #625)
  • Make Extras accessible from Classic Options (#639, fixes #580)
  • Honor mouse-bound hotbar swaps in inventories (#641, fixes #619)
  • Fix resource pack reload failures and broken Horizon menus (#646, fixes #618)
  • Keep the language search hint clear of the caret (#650, fixes #645)
  • Hide survival bars consistently behind the Horizon pause menu (#651, fixes #634)
  • Swap and sync the off hand on a server (#627, fixes #543)
  • Show equipment attributes in inventory and Creative tooltips (#519, fixes #400)
  • Open furnaces, blast furnaces and smokers on a server (#644, fixes #540)
  • Keep server blocks in sync with what guests dig (#626, fixes #500)
  • fix(rendering): correct selection outline on translucent blocks (#609, fixes #563)
  • Fix mouse capture after world loading (#614, fixes #612)
  • perf: reuse decoded gameplay and behaviour facts at startup (#607)
  • Reset experience on respawn and drop capped XP on death (#665, fixes #621)
  • Draw breaking cracks on chest models (#667, fixes #611)
  • Fix multiplayer pause menu and World Options permissions (#656, fixes #568)
  • Avoid hard clipping when explosion sounds overlap (#672)
  • Use the configured respawn point after saving (#675, fixes #622)
  • Show sweep particles on charged sword hits (#677, fixes #620)
  • Build a saved chunk's structure starts when it loads, not on the game thread (#489) (#657)
  • Sculk: find a loaded chunk's sensors from its palettes, not every block (#489) (#658)
  • Cache resolved block behaviours in versioned binary snapshots (#608)
  • Server: send tab-list latency every 601 ticks, as vanilla (#685)
  • Release unused terrain GPU buffers (#676)
  • Keep terrain in system memory when video memory is full instead of crashing (#600) (#688, fixes #600)
  • Blend animated sprite frames without a roundf call per byte on x86 (#686)
  • Allow render distances up to 64 chunks in settings (#673, fixes #654)
  • Swimming pose and stroke on the player model (#689, fixes #534, fixes #535)
  • Mobs float in water instead of bouncing (#690, fixes #542)
  • Trident throw pose in third person (#691)
  • Fix sleeping input, camera height and wake fade (#679, fixes #613)
  • Advancements: read the tree on another thread while the world loads (#713)
  • Render sulfur cube contents and award Uh Oh (#408)
  • Dedicated server: read level-type, generator-settings and generate-structures (#733)
  • Dedicated server: guests' command feedback reaches the console and ops, @s is the guest (#734)
  • Fix shield poses, held-item rendering and blocked-hit feedback (#682, fixes #615, fixes #720)
  • Restore saved death and health when reopening worlds (#736)
  • Cache closed chest geometry in large block-entity fields (#728)
  • VSync on waits for the display whatever the present mode (#684) (#715, fixes #684)
  • Cull minecarts by distance and view like vanilla (#735)
  • Give mob, beacon, sculk and splash effects to every player (#700)
  • Worker threads: leave a core for the render and server threads (#745, fixes #744)
  • Startup: load resources on a worker behind a loading screen (#712) (#740)
  • fix(minecarts): use per-kind display offset in cart geometry (#741) (#772, fixes #741)
  • fix(game): allow always-edible food when full and apply consume effects (#750) (#773, fixes #750)
  • Fix Horizon options scrollbar dragging (#783, fixes #730)
  • LAN guests: container clicks, head turns, XP orbs, sleeping, mob pushes and eating (#722–#727 combined) (#787)
  • Add Open Mod Folder buttons to the mods screens (#786, fixes #780)
  • fix(game): persist creative flight status across world save and reload (#777) (#794, fixes #777)
  • Fix item tooltip display parity (#792)
  • Block entities: tick only those with a ticker, in vanilla's order (#798)
  • Cave culling: search on a worker thread, frames never wait for it (#788)
  • Cull boats, paintings, item frames, armor stands, TNT, tridents and fireworks like vanilla (#789)
  • Specialize constant surface material-rule branches (#801)
  • Server: a dead guest is sent its health of 0, as ServerPlayer.doTick does (#807)
  • Server titles: /title reaches the guest, and its HUD shows and clears them (#808)
  • Command suggestions: ask the server for nodes the tree marks ask_server (#809)
  • Paletted container access: one palette probe per write, dispatched unpack (#761)
  • Upload section meshes through a reused staging belt (#834)
  • Decoration order: dense grids instead of hash maps (#835)
  • Portal scans: keep per-chunk section masks across ticks (#758)
  • Fix falling block collisions with partial blocks (#836, fixes #711)
  • light: pack the flood fill and precompute neighbour blocking (#781)
  • Add settings search to Video and Controls (#751, fixes #582)
  • Paletted containers: build palettes without hashing (#859)
  • Preserve container contents when mining their blocks (#855, fixes #844)
  • fix(game): finish every consumable as vanilla's Consumable.onConsume (milk, honey, chorus fruit) (#799)
  • Server thread: horizon-ctl tp and fly make the server load the new chunks (#861) (#888, fixes #861)
  • Fix F3 debug overlay toggling in the main menu (#889, fixes #811)
  • Startup: make the menu interactive while world resources load (#712) (#878)
  • Startup: no time limit on loading the world resources (#895)
  • Biome zoom: mix the shared corner prefixes once in quart_at_block (#752)
  • horizon-server: find game files prepared without sounds (#893)
  • horizon-server on Linux: say which libraries the game needs, and follow updates (#898)
  • Server log: vanilla's thread in latest.log, and local time on the console (#904)
  • Fix vanilla multiplayer tick and interaction parity (#912)
  • Villagers, traders and golems never despawn for distance (#917) (#942, fixes #917)
  • Fix spectator scroll wheel flight speed (#948, fixes #945)
  • Read GPU readbacks without assuming the mapping's alignment (fixes the Vega 11 launch crash) (#961, fixes #953)
  • Keep restored chunk entities out of /summon's result after a level switch (#962, fixes #947)
  • Fix execute source dimension for player teleports (#800, fixes #592)
  • Fix multiplayer chat scrolling (#854, fixes #810)
  • Add seed-driven voxel-column terrain LODs up to 1024 chunks (#771)
  • horizon-server: give the game its folders whole when --dir is relative (#965)
  • Fix the Intel HD 520/530 crash at Vulkan device creation (wgpu-hal patch) (#976, fixes #746)
  • Use Classic menus by default (#578, fixes #548)
  • Play the equip sound when the player puts on armour (#1002, fixes #986)
  • Apply legacy formatting codes in the scoreboard sidebar (#1003, fixes #937)
  • Give Java packs' full-screen passes Iris's sky, eye light and custom uniforms (#1008, fixes #944)
  • Far terrain: no dark band at the full-detail edge, no black cliffs (#992)
  • Release signing: add the first public key (#1023)
  • Carry: bare {min, max} number ranges in loot tables get 26.3's uniform type (#1019)
  • fix: reset spectator fly speed when changing game modes (#1039)
  • Fix creative and spectator hunger exhaustion and starvation (#1036, fixes #1033)
  • fix: prevent spectators from dropping hotbar items (#1059, fixes #1053)
  • Fix section headings in classic video settings search (#1064, fixes #894)
  • Fix creative barrier block markers (#1062, fixes #1057)
  • Prepare startup handoff CPU resources off the UI thread (#1042)
  • Mods: capability storage, a quota'd per-mod key/value folder (#1044, fixes #1040)
  • Restore missing accessibility settings (#1061, fixes #1058)
  • Centre the cursor when a screen opens from gameplay (#235)
  • fix(gfx): Stop the swapchain washing colours out (#1075)
  • Structures: Repurposed Structures' air fix as horizon:close_off_air_sources (#1020)
  • fix(hud): Apply legacy formatting codes to action bar and titles (#1077)
  • Keep the loading UI responsive during local world initialization (#1041)
  • Keep world saves and exit responsive while preserving durability (#1043)
  • Shears carve pumpkins (PumpkinBlock.useItemOn) (#1081, fixes #1067)
  • Blocks can't be placed into mobs and other entities (Level.isUnobstructed) (#1085, fixes #1052)
  • Cobwebs slow falling blocks (WebBlock.entityInside) (#1082, fixes #933)
  • Firework tooltips: flight duration and explosions (Fireworks.addToTooltip) (#1083, fixes #1047)
  • Creative pick block in inventories: full stacks and drags (AbstractContainerScreen cloning) (#1086, fixes #1048)
  • Title backdrop: build its generator on a worker (#1087, fixes #896)
  • Prepare: accept Mojang's republished 26.3 asset indexes (no sound, no panorama) (#1091)
  • Prepare: import the Unifont glyphs from the asset index (#1092, fixes #1076)
  • /tick on a server thread: sprint, query, step and a smooth frozen camera (#1088, fixes #1038)
  • Prepare finds installed JDKs; the launcher shows the preparation error up top (#1093, fixes #666)
  • Elytra: a glide that isn't diving keeps the fall distance at 1 (no landing damage) (#1103, fixes #1046)
  • Combat: attribute swapping (attack damage and speed from last tick's main hand) (#1105, fixes #505)
  • No block placing or item use while an item is in use (shield, bow, food) (#1102, fixes #1050)
  • Elytra: a landing glide lasts one more tick, so elytra hops keep their speed (#1104, fixes #1056)
  • Combat: sprint knockback and knockback along the attacker's yaw; vanilla knockback on players (#1106, fixes #504)
  • Explosions: two Blast Protection pieces cancel the knockback (explosion_knockback_resistance, per-slot enchantment modifiers) (#1101, fixes #1049)
  • Beehives: nests on trees grown in the world get their bees (#1107, fixes #1097)
  • fix(benchmark): create the world folder before writing its marker (#1120)
  • horizon-server update: version 0.2 counts as newer than the dated releases (#1127)
  • Draw and collide blocks while a piston moves them (#1113, fixes #935)
  • A release says its version: horizon-server, horizon-prepare, crash reports and user agents report 0.2.x (#1131)

Thanks to @ItsPotatoTime, @LookImEcho-Rick, @Online5277, @Yvonne-Aizawa, @feeldev12, @lazy-importer, @rdbtCVS.

This is an alpha build: launchers on the Alpha channel (Settings, Updates) install it now; Stable gets it in the next daily update if it holds up.

Install or update it from the Horizon launcher: it installs new versions by itself. New here? Get the launcher at https://playhorizon.dev. You need your own copy of Minecraft: Java Edition.

Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.

Contributors

@s, @ItsPotatoTime, @LookImEcho-Rick, @Online5277, @Yvonne-Aizawa, @feeldev12, @lazy-importer, @rdbtCVS