Files
rivencraft/ports/mc263
2026-11-02 09:30:22 -05:00
..

Minecraft 26.3 beta port workspace

This is an experimental beta port for issues #97–#104, not gameplay parity with the Minecraft 1.21.1 release. The 26.3 backend persists separate Ages and their seeds. Books, the Book Binder, and the Ink Mixer work, and the Binder can author Standard, Amplified, Island, Flat, Void, or Cave terrain with supported biome-distribution pages, selected material/vegetation/structure features, and independent Age weather. Celestial/lighting systems, instability, crystal portals, and much of the 1.21.1 gameplay remain unported. Use a test world and keep a backup; do not substitute this JAR for the 1.21.1 mod or import 1.21.1 saves.

The entries below record how the port was built, including earlier alpha-only limitations that were addressed by later slices.

The creative tab contains the two Books, Crystal Block and Crystal Shard; the player verified these in game. Unbound Linking Books use the Legacy sprite, and four Crystal Shards craft into a Crystal Block; both were also verified in game. The current local iteration adds Budding Crystal and all four blue crystal growth stages with vanilla-style harvesting. Natural crystal formation generation is not yet ported; use Creative or commands to obtain a Budding Crystal for this test. The player verified the growth chain in game. The next local slice adds the Link Panel Page as a separate creative entry, using the existing item texture. Blank Pages remain unavailable in Creative; the player verified the Link Panel's appearance in game. Ink Vials now use the existing crafting recipe and animated sprite. With paper in the other hand, an Ink Vial prepares a Link Panel for two of its sixteen ink uses, as in the current 1.21.1 default. The player verified the Ink Vial interaction in game. Symbol writing remains unported. A prepared Link Panel can now be combined shapelessly with leather to craft an unwritten Linking Book, as in 1.21.1. This custom recipe rejects a blank Page and extra ingredients. The first Book Binder slice now assembles random-Age Descriptive Books from leather and a Link Panel. Authored pages remain later.

The next local 1.0.1.10-alpha.1 slice exposes all eight combinations of plain, Disarm, Maintain Momentum, and Intra-Linking Link Panels in the Link Pages creative tab. Leather crafting preserves those flags on the Linking Book. Intra-Linking permits same-dimension travel; Maintain Momentum rotates horizontal speed to the destination yaw; Disarm leaves the player's inventory at the departure point after a successful teleport. These are development variants until the Ink Mixer is ported; other Link Panel modifiers are not implemented in 26.3. The player passed this modifier slice in game.

The local 1.0.1.11-alpha.1 slice adds a craftable Book Binder with persistent leather, Link Panel, and output slots. Name an Age in its GUI and press Bind; the server creates a random prototype Age and places its completed Descriptive Book in the output. Disarm and Maintain Momentum carry from the panel into the book; Intra-Linking has no effect on Age creation. Symbol-page authoring and the Ink Mixer remain unported. This slice passes the build and dedicated-server smoke test. The player passed crafting and travel in game, but found that E closed the focused title field and the provisional layout did not match the existing 1.21.1 Binder GUI.

The local 1.0.1.12-alpha.1 follow-up reuses the 1.21.1 Binder layout: title bar, cover and output at opposite sides, and a central Link Panel page strip. The title persists in the block, the missing-panel cue pulses red, and a focused title field consumes inventory/hotbar keys. Click the output once to bind, then click again to take the completed book. Authored symbol strips and the full 1.21.1 Binder grammar remain unported. This same slice also ports the 1.21.1 Ink Mixer block, menu, animation, modifier additives, 16-ink-per-panel cost, and automatic vial exchange. The creative tab includes it and its vanilla-shaped recipe is available. This slice needs an in-game Binder visual/ keyboard check and Ink Mixer interaction check.

The local 1.0.1.13-alpha.1 iteration makes Binder assembly place the new Descriptive Book directly on the cursor with one click. It also renders the five-page strip from the 1.21.1 GUI and refreshes the Mixer's virtual result in the same server click that changes paper or ink. The Mixer now consumes one ink unit and one paper per Link Panel (16 panels per full vial); additive chances reset when a panel is taken. In-game retest of the first-update behavior and Binder visual/click flow is pending.

The local 1.0.1.14-alpha.1 follow-up compares the current 26.3 Binder against the new dev-image sequence. The Binder no longer paints five permanently empty pages: the first strip page appears when a Link Panel is inserted or carried, and the missing-panel cue remains above it. Clicking that page inserts/removes the Link Panel using the same server-owned cursor flow as 1.21.1. Its tooltip also shows the stored panel. Multi-page symbol writing and strip scrolling cannot be exercised yet because symbol pages are still unported to 26.3.

The local 1.0.1.15-alpha.1 Binder polish uses the Link Panel's actual 16×16 item icon for the missing-panel cue instead of a full-size page sprite. The red pulse and tooltip remain confined to that icon.

The local 1.0.1.16-alpha.1 slice adds the bundled 1.21.1 symbol-page identities to the 26.3 creative menu, grouped by category. Their names and descriptions are reused from the 1.21.1 translations, and the Page item now persists each symbol ID. These pages currently use the generic symbol-page artwork; the Legacy-style runtime glyph compositor has not been ported. They cannot yet be inserted into the Binder or change Age generation. This is the page-data foundation for the next authored-writing slice.

The local 1.0.1.17-alpha.1 follow-up derives biome pages from the active 26.3 biome registry instead of only the older bundled list. It excludes the TerraBlender staging placeholder and separates cave/Nether biomes. Full-block materials and true source-fluid blocks also receive registry-derived pages, covering eligible new and modded blocks. Five 26.3 feature symbols cover poplar trees, fallen poplars, shelf mushrooms, red shrubs, and abandoned camps. These feature pages are identities only until their Age-generation handlers are ported. Biome, material, and feature pages still use generic artwork and cannot yet be placed in the Binder.

The local 1.0.1.18-alpha.1 follow-up restores the 1.21.1 animated redaction for Corrupted Page names and descriptions. It does not yet port the dynamic glyph artwork used for other symbol pages.

The local 1.0.1.19-alpha.1 slice ports the runtime glyph compositor for symbol Page items. It uses the shared Legacy component sheet and page parchment with a bounded 256-texture client cache; generated textures are released on resource reload. Registry-derived biome and material pages use the same deterministic four-word poem pattern as 1.21.1. No per-symbol PNGs are generated in the source tree. Binder insertion and authored Age generation are still unported.

The local 1.0.1.20-alpha.1 visual follow-up enlarges symbol artwork on Page items, slightly thickens the component strokes, and centers number glyphs at a larger size so they remain readable in inventory and creative-menu icons.

The local 1.0.1.21-alpha.1 slice ports the Binder's ordered, scrollable symbol-page strip. Pages persist in its block inventory and can be inserted, removed, and moved via the cursor or shift-click. A Binder with symbol pages cannot yet produce a book: authored Age compilation is the next port step, and silently producing a random Age would consume the player's writing incorrectly.

The local 1.0.1.22-alpha.1 visual follow-up gives large Binder pages the transparent, full-size Legacy glyph composition. Item icons retain their separate parchment-backed, reduced-size artwork.

The local 1.0.1.23-alpha.1 follow-up places Binder glyph overlays in a later 26.3 GUI stratum than the page atlas, preventing texture batching from drawing the opaque page backgrounds over the dynamic artwork.

The local 1.0.1.24-alpha.1 follow-up renders Binder page glyphs through their working special item model, scaled to the page thumbnail. Direct GUI blitting of the generated texture remained blank in the 26.3 client.

The local 1.0.1.25-alpha.1 follow-up marks temporary Binder preview stacks for glyph-only special-model rendering. The full-size transparent artwork now uses the working item pipeline without drawing a second, smaller page outline.

The local 1.0.1.26-alpha.1 corrects the temporary preview component's codec registration, which NeoForge 26.3 requires during bootstrap.

The local 1.0.1.27-alpha.1 slice applies the first authored Age subset: Standard terrain plus at most one Biome page. The selected biome is persisted with the Age and used by a fixed-biome Overworld noise generator on creation and reload. Ordered page IDs are stored on the finished book. Other page combinations remain in the Binder and cannot yet be assembled, preventing silent loss of unsupported writing. Multi-biome distribution, other terrain profiles, and feature/material pages still need their 26.3 generation ports.

The 1.0.1.28–1.0.1.32 slices add Tiled, Grid, Native, and five scaled biome distributions; multiple authored Biome pages; Amplified and Island terrain; and saved terrain/biome plans across reload. A Binder or Ink Mixer beside another block no longer hides that block's faces. Unsupported authoring still stays in the Binder rather than silently producing an incorrect Age.

The local 1.0.1.33-beta.1 slice adds Flat and Void terrain to Binder authoring. Flat uses vanilla's superflat layers; Void has no generated floor and uses the selected Biome for its environmental rules. Each accepts zero or one authored Biome page. Unsupported multi-biome Flat/Void books remain in the Binder until their custom generator is ported. The operator probe can create test Ages with rivencraft_port age create <name> <seed> flat|void.

The local 1.0.1.34-beta.1 follow-up starts Flat's solid layers at Y=0 (bedrock at 0, dirt at 1–2, grass at 3) and lands players at the ground surface instead of creating an elevated fallback platform. This affects newly generated Flat chunks; previously generated Age chunks are not rewritten.

The local 1.0.1.35-beta.1 follow-up enables biome decoration on newly generated Flat chunks, allowing the selected biome's trees, vegetation, and other placed features to appear on the Flat surface. Void remains undecorated.

The local 1.0.1.36-beta.1 slice accepts multiple Biome pages with Flat and Void terrain. It ports the 1.21.1 authored-biome Flat generator to 26.3, so Tiled, Grid, and scaled regions affect climate in both terrain types and surface decoration in Flat. Void continues to generate no floor or biome decoration. The operator-only age create_multi probe creates two-biome test Ages for the dedicated-server smoke test.

The local 1.0.1.37-beta.1 slice adds the Cave terrain page to Binder authoring. It uses Minecraft's caves noise settings, accepts Cave and Nether biome pages (including multi-biome distribution), and searches below Y=64 for a safe arrival instead of landing on the roof. The 26.3 vanilla Cave preset defaults to water below Y=32, so this port derives a dry Cave setting with air as its default fluid and the sea level below the world floor. This applies to newly generated Cave chunks; it does not drain existing chunks. Cave-specific Nether surface materials from 1.21.1 are not ported yet. The dedicated-server smoke now creates and reloads Cave Ages alongside the other terrain families.

The dry-Cave follow-up is packaged as 1.0.1.38-beta.1; no 26.3 release is published until the in-game check passes and publication is explicitly requested.

The local 1.0.1.39-beta.1 follow-up rejects fluid at both feet and head height during safe-landing searches. It also refuses to carve the fallback platform into submerged space if no dry footing can be found.

The 1.0.1.40-beta.1 port slice seeds terrain and biome selection for Descriptive Books with no authored symbol pages. It uses the same terrain and biome-controller rank weights as the 1.21.1 line, freezes the resulting plan in the Age index, and accepts the result after restart. The operator-only age create_random <name> <seed> probe exercises this path. Random feature, sky, weather, and instability choices are not yet ported; this slice covers terrain and biomes only.

The 1.0.1.41-beta.1 slice establishes an Age-scoped decoration wrapper for 26.3 and accepts one Block material page immediately before a Rocks feature page. Newly generated surface chunks place small rock clusters made from that block without modifying the shared biome registry. The selected block and generator survive a restart. Cave and Void terrain remain unsupported for this first surface-feature path; unsupported combinations stay in the Binder. Random feature selection, unpaired materials, duplicate feature pages, and instability scoring remain future port steps.

The local 1.0.1.42-beta.1 follow-up lets a Rocks page choose a deterministic full-block material when no Block page precedes it. Repeated Rocks pages now add independent placement attempts (up to 32) instead of being rejected. The ordered material choices are frozen in the Age index and restored after a restart; old single-material beta Ages still load. An explicit Block page must still directly precede the Rocks page it modifies. Most other feature pages and material-feature pairings remain unported.

The local 1.0.1.43-beta.1 slice replaces the temporary 3×3 Rocks piles with Minecraft 26.3's forest-rock block-blob feature and its placement rules, matching the 1.21.1 Age feature path more closely. The selected material and repeat count still come from the frozen Age plan. Only newly generated chunks use the new rock shape; previously generated chunks remain unchanged.

The local 1.0.1.44-beta.1 slice ports ordered Flowers, Trees, and Huge Trees pages to surface Ages. Their 26.3 vanilla placed features run after biome decoration, with the Age's own seed; repeated pages make independent placement attempts. Cave/Void terrain and cave/Nether/End biome pools are not treated as surface vegetation. The feature plan survives server restart; already generated chunks do not gain new decoration.

The local 1.0.1.45-beta.1 slice ports the Dungeons page for Standard, Amplified, and Island noise terrain. It uses the 1.21.1 placement definition (eight monster-room attempts per page per chunk across the build height), stores repeat count with the Age, and rejects Dungeons pages on Flat, Void, or Cave terrain. New chunks only; existing chunks are not regenerated.

The local 1.0.1.46-beta.1 slice adds Surface Lakes, Deep Lakes, and Small Lakes on surface noise terrain. A Fluid page immediately before a lake page selects its fluid. Unmodified pages choose a seeded fluid from the same source- fluid pool exposed in Creative, with repeated choices and their order saved with the Age. Surface/Small Lakes retain the 1.21.1 one-in-twelve attempt rule; Deep Lakes retain vanilla underground placement. These pages currently require Standard, Amplified, or Island terrain. Existing chunks do not redecorate.

The local 1.0.1.47-beta.1 slice adds authored Floating Islands alongside Standard, Amplified, Island, Flat, and Void terrain. A preceding Block page sets the island core material; otherwise each occurrence resolves a seeded material from the full-block pool. The 1.21.1 shape, high altitude, rarity, and biome-dependent grass/dirt cap are retained. Repeated pages use independent island seeds. Cave terrain remains unsupported for this feature.

26.3 combines base noise, surface, and cave carving in one terrain operation. Floating Islands run after that operation and before decoration, so the added islands are not cut by the base terrain's carvers. The saved feature plan is used again after restart and for new chunks; existing chunks keep their blocks.

The local 1.0.1.48-beta.1 slice adds authored Tendrils on every terrain type, including Cave and Void. A preceding Block page selects the material; unmodified occurrences resolve seeded materials from the full-block pool. Repeated pages use independent paths, with up to 32 occurrences per feature. Mixed Floating Islands/Tendrils retain their authored order in the saved plan.

Tendrils retain the 1.21.1 branching path algorithm, source rates, and vertical distribution concentrated below Y=128. They can replace existing terrain while preserving bedrock. As with Floating Islands, they run after 26.3's combined terrain operation and before decoration. Build checks are automated; in-game generation, appearance, and restart validation are handed to the player.

The local 1.0.1.49-beta.1 slice adds the Skylands feature page. Its seeded seven-octave filter removes base terrain at/below a varying cutoff near Y=76 and removes liquid above it, preserving the upper solid terrain. It accepts all terrain types and no Block modifier. On low Flat terrain this removes the base layers; on Void it leaves the empty base unchanged.

The filter runs once before authored Floating Islands and Tendrils, matching 1.21.1; duplicate Skylands pages do not compound the filter. Its flag is saved with the terrain-feature plan. Existing chunks are unchanged. Try Amplified terrain for a clear visual check; generation and restart validation are manual.

The local 1.0.1.50-beta.1 slice ports Spheres and Spikes using the 1.21.1 generation algorithms. Spheres add solid nodes on all terrain types, including Cave and Void, while preserving bedrock. Spikes require solid surface terrain: Standard, Amplified, Island, or Flat. Their circular footprint stays in one chunk and must have solid ground beneath every column.

Each page accepts a preceding Block material or resolves a seeded random material when unmodified. Repeated pages have independent placement seeds, up to 32 per feature. Spheres run during terrain construction, after Skylands; Spikes run after biome decoration. Both use the existing saved solid-feature plan. New chunks only; in-game appearance and restart checks remain manual.

The local 1.0.1.51-beta.1 slice ports Obelisks. It preserves the 1.21.1 one-in-128 candidate chance per chunk/occurrence, 4×4 plinth, and 2×2 shaft extending 12 blocks above it. Placement requires dry, sturdy ground across the base, at most two blocks of surface variation, and clear/replaceable space for the complete structure. The footprint stays within its chunk.

Obelisks support Standard, Amplified, Island, and Flat terrain. A preceding Block page sets their material; otherwise a seeded full-block material is selected. Repeated pages make independent attempts, up to 32 occurrences. Spikes and Obelisks share surface-stage classification and preserve their authored order within that stage. World and restart validation are manual.

The local 1.0.1.52-beta.1 slice ports Crystal Formations using the 1.21.1 surface-mound algorithm and the existing blue crystal blocks. Each occurrence has a one-in-fifteen candidate chance per chunk; suitable dry, nearly level ground produces a 3×3 mound with budding crystal and occasional small buds. The existing budding blocks continue growing crystals through random ticks.

Crystal Formations accepts Standard, Amplified, Island, and Flat terrain, but not Cave/Void terrain or Block/Fluid modifiers. Up to 32 repeated pages make independent attempts. The ordered feature plan survives restart, and only newly generated chunks receive formations. For a quick manual test, bind a Flat/Plains Age with several Crystal Formations pages, inspect the blue mounds and bud growth, then revisit after restarting the world.

The local 1.0.1.53-beta.1 slice ports Dense Ores. Each page replays eligible ore placements from the Age's actual biomes, preserving their height ranges, replacement rules, and biome filters. Vanilla and modded ore features are recognized by their ore targets; custom placements can opt in through the rivencraft:dense_ores placed-feature tag, just as in 1.21.1.

Up to 32 pages add independent passes on Standard, Amplified, Island, or Cave terrain. Flat/Void and Block/Fluid modifiers are unsupported; an explicitly authored biome pool must contain at least one ore-producing biome. The count survives restart. Only new chunks gain extra ore, and this slice does not yet port the later instability system or random-Age feature selection.

For manual validation, create a Standard/Plains Age with several Dense Ores pages and inspect underground ore abundance, then restart and explore more chunks. A Cave Age with a Nether biome can check Nether ore placements too.

The local 1.0.1.54-beta.1 slice ports the Star Fissures page. On first book/ operator arrival, it carves the 1.21.1 Legacy-shaped rift near the arrival chunk and places a starfield portal at the dimension's minimum Y. Cave terrain keeps its bedrock roof. All terrain types are supported; repeated pages still create one fissure, and Block/Fluid modifiers are not accepted.

The first arrival and completed generation are saved per Age, so revisits and restarts do not recarve the rift. Touching its bottom returns entities to a safe location near the shared Overworld spawn, not a bed, with the original fissure sound. The portal is unobtainable and inert in the Overworld. Random-Age feature selection remains later work; author a Star Fissures page to test this slice.

For manual validation, create a Flat/Plains Age with Star Fissures. Look near the arrival point (generally east/south), descend through the rift, and touch the starfield to return. Re-enter after restarting; check that the same fissure and its portal still work. A Cave Age checks that carving leaves the roof intact.

The local 1.0.1.55-beta.1 slice adds authored Villages, Mineshafts, and Strongholds. Repeated pages (up to 32 per type) scale the registered placement using the 1.21.1 frequency/spacing and ring-count rules. Copies are Age-local: the Overworld's placements and biome source are not modified. Authored structures can bypass their usual biome eligibility without changing the terrain biome; their instability cost remains pending with the instability port.

Villages and Strongholds allow surface noise terrain and Flat, but not Cave or Void. Mineshafts allow noise terrain including Cave, but not Flat or Void. These pages do not accept Block/Fluid modifiers. Their ordered counts persist in the feature plan. In books using these structure pages, unselected sets from these three families are disabled; other structure families and random feature selection remain later port work. Earlier books without this new structure plan retain their existing native structure behavior.

For manual checks, bind a new Standard/Plains Age with Villages, Mineshafts, and Strongholds, then use /locate structure minecraft:village_plains, /locate structure minecraft:mineshaft, and /locate structure minecraft:stronghold to inspect generated structures. Compare one page with several copies in a different Age, and restart/revisit. Flat/Plains with Villages and an otherwise incompatible surface biome with Villages provide separate terrain and biome-override checks.

The local 1.0.1.56-beta.1 follow-up fixes authored structures outside their normal biomes. Build 55 only bypassed the final biome check; 26.3's jigsaw placement can reject a whole biome column earlier. The override now supplies the generation context's biome predicate before either check, only for the explicitly authored structures in that Age. Terrain/height/geometry rules and unrelated structures keep their normal checks.

Test with a new Standard or Flat Age using a normally unsupported village biome, such as The End, plus a Villages page. Multiple copies increase density. Use /locate structure #minecraft:village rather than selecting only the Plains variant: an override Age can choose other village styles. Old chunks that already rejected their structure attempt are not regenerated; existing build-55 Ages can also test the fix in previously unexplored chunks.

The local 1.0.1.57-beta.1 slice adds the remaining 1.21.1 authored structure families: Nether Fortresses, Bastions, Trial Chambers, Buried Treasure, Shipwrecks, Ocean Ruins, Pillager Outposts, Ruined Portals, Nether Fossils, Ancient Cities, and Trail Ruins. It also enables the existing 26.3-only Abandoned Camps page using Minecraft's registered camp set and variants.

All 15 supported structure-set pages share saved counts, biome overrides, and repeated-page density scaling (up to 32 per type). Fortress and Bastion sets reuse the separate 1.21.1 placement definitions; the combined vanilla Nether set is disabled for authored structure plans so the pages stay separate. Unselected supported families are gated in these plans. Already generated chunks and Ages without an authored structure plan keep their existing path.

Only Villages/Strongholds support Flat; none support Void. Fortress, Bastion, and Nether Fossils require Cave terrain. Villages/Strongholds, Buried Treasure, Shipwrecks, Ocean Ruins, Outposts, Trail Ruins, and Abandoned Camps require surface terrain. Mineshafts, Trial Chambers, Ancient Cities, and Ruined Portals allow surface noise or Cave terrain. Physical terrain/height checks still apply even when the authored page overrides biome eligibility. Instability penalties and random selection of these features are not part of this slice.

For a quick in-game check, author a new Standard Age with Trial Chambers, Trail Ruins, and Abandoned Camps. Use /locate structure minecraft:trial_chambers, /locate structure minecraft:trail_ruins, and /locate structure minecraft:abandoned_camp_forest to inspect actual generation. Separately, test a Cave/Nether Wastes Age with Fortress and Bastion pages (/locate structure minecraft:fortress and /locate structure minecraft:bastion_remnant). Repeated pages and restart/ new-chunk generation remain useful checks. Structures can still fail when their geometry or required terrain is unavailable.

The local 1.0.1.58-beta.1 slice enables Caves and Ravines feature pages. They add carving to the chosen noise terrain (Standard, Amplified, Island, or Cave); they are not aliases for the Cave terrain page. Flat/Void and Block/Fluid modifiers remain unsupported, matching the 1.21.1 feature rules.

Authored paths retain 1.21.1's source range and seeded salts, using 26.3's registered cave/Nether-cave/canyon carvers. Nether-biome sources select the Nether cave carver and skip Ravines. The paths merge into the native carving mask before Minecraft applies aquifer, replacement, and surface rules; no second approximation carves raw air after terrain generation. Biomes are not replaced. The page list is saved, and old plans default to no extra carving.

Duplicate pages are accepted up to 32 per type, but repeat the same seeded pattern in 1.21.1; this port skips those redundant passes rather than multiplying carving density. Random feature selection and instability remain pending. New chunks only. For manual testing, author a Standard/Plains Age with one Caves page and one Ravines page and inspect underground in Spectator mode. Restart and explore more chunks. A separate Cave/Nether Wastes Age with Caves checks the Nether variant without altering its biome distribution.

The local 1.0.1.59-beta.1 slice audits page presentation for the current port. Each Symbol Page now reports whether its effect is implemented. Unported pages have red-tinted item artwork and a red Binder page background, plus a red status line. Supported pages retain their normal artwork. This indicates port availability only: supported pages in an invalid order, terrain combination, or excessive quantity are not individually tinted red. Link Panels are unchanged.

The stale Standard/one-Biome message is removed. Structure descriptions now describe authored biome overrides rather than falsely requiring vanilla biome eligibility. Material pages explain the immediate-before-feature requirement; Flat/Caves/Ravines/Floating Islands descriptions reflect the current rules. These overrides are specific to the 26.3 language file and do not change 1.21.1. No new generation effect is introduced in this UI slice.

For manual validation, compare a working Villages or Caves page with an unported celestial or lighting page in Creative inventory and the Binder. Only the latter should be red; supported Block/Fluid modifiers and biome controllers should stay normal even though they need other pages.

The local 1.0.1.60-beta.1 slice implements Poplar Trees, Fallen Poplar Trees, Red Shrubs, and Shelf Mushrooms. They use the existing saved vegetation plan, ordered attempts, surface-biome rules, and combined 32-vegetation-page limit. They accept Standard, Amplified, Island, and Flat terrain, but not Cave/Void or Block/Fluid modifiers. The four pages now show as supported, without a red tint.

Poplar Trees uses the vanilla red/orange/yellow leaf-litter tree variants with their relative Dappled Forest weights and six attempts per page per chunk; it does not also select spruce or fallen trees. Fallen Poplar Trees makes one surface attempt per page, using the vanilla fallen-tree feature, decorators, and sapling survival rules. Red Shrubs uses the vanilla patch placement. All still require suitable ground and space; authoring does not bypass those requirements, and existing chunks are not redecorated.

Shelf Mushrooms applies Minecraft's standing/fallen-log decorator to existing log groups, not a new tree feature. It can decorate natural trees or logs from earlier authored tree pages; no suitable logs means no mushrooms. The vanilla side/age/spacing and water-avoidance logic is retained. Writes stay within the current chunk and require valid support. Consecutive mushroom pages reuse the host scan; adding trees invalidates the cached host list for subsequent pages.

For manual testing, bind a new Flat/Plains Age with Poplar Trees, Fallen Poplar Trees, Red Shrubs, then Shelf Mushrooms. Check leaf colours, fallen trunks, shrubs, and mushrooms on logs. The four pages should no longer be red. Restart, revisit existing terrain, and explore new chunks to check persistence.

The local 1.0.1.61-beta.1 follow-up removes the inappropriate surface-terrain and surface-biome gates from Shelf Mushrooms only. No tree page is required: natural logs or generated log Tendrils/Spheres/other features are hosts on any terrain, including Void and Cave, and in any biome. Other plants keep their existing terrain/biome restrictions. For example, Void + Oak Log + Tendrils + Shelf Mushrooms is valid authoring; there must still be exposed log faces.

The mushroom scan now considers log faces throughout the chunk height instead of treating a connected tendril as a standing tree with a small base-height decoration band. Placement retains native replaceability/water checks, valid support, random age, a per-side chance, and spacing checks. It does not grow hosts or continuously decorate player-built logs after chunk generation. Test a new Void Age with the example pages and inspect tendril surfaces.

The local 1.0.1.62-beta.1 sound slice reuses the complete 1.21.1 sound manifest and all six OGG files directly in the build. Successful Linking/Descriptive Book travel now plays the normal, Intra-Linking, or Disarm sound at departure and arrival, with the same modifier precedence and cloud bursts as 1.21.1. Failed travel stays silent. Star Fissures also play their return sound after arrival, instead of relying only on audio sent immediately before a dimension switch. Portal and meteor sound events are bundled for their later gameplay ports; this does not implement those systems. Binding still uses vanilla page audio. Manual checks: normal book travel, Intra-Linking, Disarm, rejected travel, and a Star Fissure return. Existing books/Ages do not need to be recreated.

The local 1.0.1.63-beta.1 slice ports the six active weather pages: Normal, Fast, Slow, Off, Always, and Storm. One weather page is accepted per book and its policy is saved in the Age's own data directory. Missing weather pages currently use Normal; random weather selection is still part of the pending random-trait port. Cave terrain forces Off, matching 1.21.1. Precipitation still follows biome temperature and precipitation rules; a desert does not start showing rain merely because Always or Storm is selected.

26.3 normally shares server WeatherData. Runtime Ages now use an isolated native WeatherData instance with its own persisted rain/thunder timers. The weather controller runs before the native cycle, allowing vanilla rendering, lightning, snow and client dimension-specific packets to handle the result. Fixed weather is refreshed before its timers expire; Fast and Slow use the 1.21.1 duration ranges and preserve saved timers on reload. Overworld weather and other Ages are not changed. The vanilla /weather command still targets the server's global weather, not the independent Age policy.

Operator diagnostics: /rivencraft_port age create_weather <name> <seed> <mode> creates a Flat test Age; /rivencraft_port age weather_probe <name> reports its policy, rain/thunder state and timers, data independence, and global state. For manual testing, bind separate Storm/Always/Off books with Plains, compare the Overworld, revisit and restart, and check that Cave + Storm remains dry. The six weather pages should no longer be tinted red. Existing Ages get a Normal independent cycle; author a new book to select another policy.

The local 1.0.1.64-beta.1 fix corrects the Binder's biome compiler: it now positively selects biome-category pages instead of treating every page not in an exclusion list as a biome. Weather pages no longer trigger an unknown biome lookup. The weather fixture command now exercises the same page compiler before creating an Age, covering the weather-only symbol list used by a Link Panel + Storm book. Existing Binder contents can be reused after updating.

The local 1.0.1.65-beta.1 spawn correction removes the Flat-layer shortcut and heightmap-only choice for non-Cave Descriptive Book arrivals. The search starts at the actual maximum build height and traces each nearby column down to its first colliding block, leaves, or fluid. A column without safe dry footing/headroom is skipped instead of descending through its roof or water into an underground pocket. Leaves are valid footing; fluids are not.

This also revalidates a stored Star Fissure arrival from above on non-Cave terrain. Cave terrain retains its Y=64-downward search, and bound Linking Books retain their exact coordinates. If no natural surface is safe, the safety platform is placed above the actual highest obstruction (or floor Y=63 in an empty Void), never buried below it. Plain Flat terrain still lands on its ground, not an artificially elevated platform. No new Age is required. Operator-only /rivencraft_port age surface_probe <name> <x> <z> reports the actual highest obstruction and a safe nearby surface without creating a platform or teleporting. It can generate chunks while inspecting the region.

From the repository root:

./gradlew -p ports/mc263 build

This standalone Gradle build uses Minecraft 26.3, NeoForge 26.3.0.99, ModDevGradle 2.0.148, and Java 25. The repository root remains the independent Minecraft 1.21.1/Java 21 build:

./gradlew build

The beta JAR is under ports/mc263/build/libs. Continue the port and its full dual-version validation in issues #98–#104 before calling 26.3 stable.

The dedicated development server uses build/run-server, with its own world and properties. Set a nonconflicting server-port there before running if another Minecraft server is active. The prototype restores all indexed Ages during the Overworld load, before initial chunk preparation completes.