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