Skip to content

Latest commit

 

History

History
75 lines (61 loc) · 33.5 KB

File metadata and controls

75 lines (61 loc) · 33.5 KB

Retold Issues

Internal issue tracker. This file is meant for confirmed issues, failed tests, and reproducible broken behavior that need follow-up. Design decisions, planned missing features, and undecided work belong in retold_design_risks.md, retold_roadmap.md, or design_implementation_status.md.

Open Issues

When adding an issue, include:

  • affected area
  • observed behavior or problem
  • expected behavior or desired outcome
  • reproduction steps
  • relevant command/debug output
  • whether it is confirmed in a fresh world, existing world, singleplayer, server, or both
Area Issue Reproduction / Evidence Status
Panda bamboo navigation A hungry Panda could repeatedly select a bamboo stalk after navigation had already shown it was enclosed and unreachable, leaving it idle or pushing near the same obstacle instead of trying another food source. Generic hunger search could also intermittently claim random movement and prevent the dedicated bamboo owner from starting. Follow-up audit prompted by the developer's short-playtest Panda movement note on 2026-08-23. The initial end-to-end fixture placed the strictly nearer stalk inside a two-high stone enclosure and timed out after 320 ticks before the fix. The final focused regression isolates the selection contract: the bounded search must first choose that enclosed stalk, then choose the reachable alternative after the exact target is marked unreachable without consuming either block. Repeated validation also exposed the generic-search ownership conflict. The nearby adult-Panda jump caused by a baby sneeze is separate vanilla behavior and already excludes adults in water. Fix implemented by reserving ordinary bamboo acquisition for the specialist owner, consuming the shared ground-navigation outcome, and temporarily excluding the exact failed stalk from that Panda's bounded bamboo search. The exclusion lasts 30 seconds, retains at most four positions per Panda, and is never created by LOD or path-budget deferral. The exact replacement and ordinary meal tests pass 1/1, and all five 50-Panda TPS phases hold 20 TPS with a 4.024 ms/tick peak. Needs natural grove, obstacle, and long-term depletion confirmation before moving to Resolved Issues.
Phantom attack completion Phantoms could acquire and retain valid Retold prey but circle near it without completing an attack. Developer short-playtest report on 2026-08-30. The focused production-handoff regression assigns an exposed Cow through the real Phantom stalk owner and requires actual health damage; before the fix it timed out after 240 ticks with the correct target still retained and no damage. Fix implemented with a bounded per-Phantom circle/dive state and narrow travel hook. Only an owned active dive receives constant-time line-of-sight and collision-checked steering; ordinary vanilla flight remains intact. Successful vanilla or fallback damage releases target/control and starts an eight-second recovery that blocks both Retold and vanilla reacquisition. All three Phantom behavior tests pass together, and the five-phase 50-Phantom benchmark holds 20 TPS with a 3.866 ms/tick peak. Needs natural terrain, player/prey variety, visual pacing, multiplayer, and dedicated-server confirmation before moving to Resolved Issues.
Armed-mob weapon pose Mobs carrying weapons could repeatedly lower and raise them while approaching an attack; it was unclear whether the visible reset also interrupted combat for a tick. Developer short-playtest report on 2026-08-29. The exact Skeleton regression assigns a Retold-owned target, lets vanilla lower the aggressive pose and begins real bow use, then refreshes the unchanged target/source. It failed before the production fix because the refresh forced the weapon pose back up. Fix implemented by making exact live target/source refreshes idempotent and suppressing only their redundant aggressive=true write. Active bow use now survives; target/source changes and explicit non-aggressive writes remain functional. The exact test passes 1/1; needs natural visual and attack-cadence confirmation across Skeletons, Pillagers, Piglins, and melee weapon users before moving to Resolved Issues.
Combat target selection Combat AI almost never replaced a still-valid target when another attacker demonstrated substantially greater danger by dealing more damage. Developer short-playtest report on 2026-08-29; the original playtest environment was not recorded. The focused regression gives a Zombie an ordinary target that deals six real damage, then requires an eight-damage attacker to replace it through source-aware retaliation ownership. Fix implemented with five-second bounded post-mitigation damage memory, burst-weighted threat scoring, 20% plus one-point hysteresis, and a one-second retarget lock. Flee/shelter work, owner defense, territory attacks, tame-owner safety, central target rules, and specialist selectors remain authoritative. Five policy tests and the exact real-damage GameTest pass 1/1; needs natural mixed-combat and repeated-switch confirmation before moving to Resolved Issues.
Excessive mob target distance The generic faction owner scanned 40 blocks and retained targets to 48 blocks, overriding shorter Stage 1 Zombie/Skeleton awareness and allowing relayed or Brain-backed targets to feel implausibly distant. The same ceiling was not consistently enforced for player and mob targets. Developer short-playtest report on 2026-08-30. The focused boundary regression checks Stage 1 Zombie mob/player limits, Stage 2 Skeleton limits, a Brain-backed Piglin, bounded retaliation and release, receiver-side Undead assistance, and the long-range Ghast exception. Fix implemented through the central species/profile-aware RetoldTargetRangePolicy, enforced at raw Mob targets, Brain memories, Retold-owned assignments, faction scans, and retained-target cleanup. Ordinary acquisition is 12–24 blocks, urgent sources use bounded retention, explicit ranged specialists retain longer limits, and unknown modded mobs use clamped FOLLOW_RANGE. Exact boundary plus focused Undead, Phantom, Wildfire, Wither, faction, threat-response, village-defender, territory, and retargeting regressions pass; needs natural mixed-combat, multiplayer, and dedicated-server verification before moving to Resolved Issues.
Flee route stability Mobs visibly zigzagged while running away because the eight-tick flee refresh added fresh lateral drift and the broad land-position sampler could put consecutive route segments on opposite sides. A changed random flee speed could also replace an otherwise unchanged active path. Developer short-playtest report and confirmation that the first destination-commitment fix was insufficient on 2026-08-30. One exact regression requires an aligned eight-tick Sheep refresh to remain in the same straight escape corridor; another seeds a reachable route, changes its speed, and requires the same active Path object. Fix implemented with per-mob weak destination memory shared by ordinary, wounded, Creeper, and Cat flight, removal of per-refresh lateral randomness, and a straight direct corridor on clear ground. Genuine route rejection can try at most two deterministic side detours; work-budget deferral does not trigger one. A route is reconsidered when reached after navigation ends, no longer usable after its minimum commitment, unsafe for a land mob, or materially misaligned with the current danger. Shared movement adopts or updates an unchanged active path in place while retaining the existing 40-tick stuck recovery. Both exact tests and focused damage, water, visible-intent, Creeper, Cat, wounded-predator, and ground-recovery regressions pass. Exact Cow, Wolf, Salmon, and Cat runs sustain 20 TPS in all 20 phases with a 6.472 ms/tick peak. Needs developer confirmation across natural obstacles, crowds, and circling attackers before moving to Resolved Issues.
Land-mob flight routing Animals could choose or accept urgent flee routes through water even when they began safely on land. Developer short-playtest report on 2026-08-23. The focused regression builds a dry floor beside a water strip, requires a Sheep to choose a dry escape destination, and rejects any started path whose remaining nodes enter water. Fix implemented through straight escape-corridor selection, bounded deterministic dry detours, and water-aware route rejection for ground mobs that are not already swimming. The exact GameTest passes 1/1; 50-Cow and 50-Wolf runs peak at 5.806 and 5.476 ms/tick. Needs developer confirmation in natural mixed terrain before moving to Resolved Issues.
Creeper fuse awareness Skeletons, Ghasts, and other Undead could flee an ignited Creeper because the exemption checked only the Java Zombie class; another Creeper could flee too. Developer short-playtest report on 2026-08-23. The expanded focused regression places a Cow, Iron Golem, Zombie, Skeleton, Creeper, and Ghast around an active fuse and checks each reaction boundary. Fix implemented by excluding Creepers and the full Retold Undead faction while retaining animal and village-defender flight. The exact GameTest passes 1/1; needs natural multi-species confirmation before moving to Resolved Issues.
Village-defender neutrality Iron Golems could use vanilla's broad hostile-mob target goal to attack exposed Piglins and Endermen despite the confirmed pacifist-purpose defender contract and neutral faction relations. Developer short-playtest report on 2026-08-23. The focused regression requires unsolicited Piglin and Enderman target writes to fail, then applies real Piglin damage and requires retaliation to remain legal. Fix implemented in the central target/melee policy for idle Nether Remnants and Enders, preserving recent direct attacks and explicit defense/retaliation sources. The exact GameTest passes 1/1; needs natural village confirmation before moving to Resolved Issues.
Aender stabilizer release In multiplayer, breaking a stabilizer could make a watched chunk visibly disappear while its released halo was marked stale and queued for regeneration. Developer short-playtest report and confirmed deferred-release direction on 2026-08-23. The prior AenderStabilizerEvents path force-loaded the 3x3 halo, forgot its generated mark, and enqueued regeneration immediately. Fix implemented with a persistent deferred-release attachment state: the forcefield disappears immediately, but unstable released chunks preserve terrain and edits while tracked by any client. The last watcher makes a chunk eligible for the existing paced blank/regeneration queue. Pure policy tests and the exact persistence/handoff GameTest pass 1/1. The GameTest server cannot load the custom Aender dimension, so normal two-player watch/departure and save/restart confirmation is required before moving to Resolved Issues.
Wildfire movement Wildfires could sink below the lava surface while idle and inherited the stationary vanilla Blaze ranged attack, leaving the miniboss submerged or firing from one fixed point instead of controlling space. Developer in-game report on 2026-08-21. Focused regressions require a healthy idle Wildfire to clear the lava surface, a durable Undead target to produce explicit lateral combat movement, and a half-health leader under combat pressure to prefer lava over nearer fire, reject combat, enter the pool, fully submerge, restore all health and shields, and rise by more than one block. Fix implemented with healthy lava lift, a recovery-preemptible WILDFIRE_COMBAT orbit owner that coexists with vanilla fireball timing, and a persisted lava-recovery cycle with collision-aware owned flight. Exact surface, combat, full lava-recovery, formation, and fire-fallback tests pass, while the post-recovery 50-Wildfire run peaks at 5.092 ms/tick; needs developer visual confirmation in natural Nether lava and terrain before moving to Resolved Issues.
Nether Remnant combat Blazes and Wildfires could not complete combat against fire-immune Undead rivals. Wither Skeletons rejected Small Fireball damage, while vanilla's universal Mob.canAttack Ghast exclusion initially prevented Wildfires and other Retold faction enemies from retaining a Ghast target at all. After that exception, Wildfires still stopped faction acquisition at 40 blocks and forced retention at 48, leaving them helpless against more distant Ghasts inside their 64-block combat range. Ghasts also rejected Small Fireball damage. Developer in-game reports on 2026-08-20 and 2026-08-21. The Wither Skeleton regression applies Blaze- and Wildfire-owned Small Fireball damage and preserves ordinary fire immunity. The Ghast regression requires valid faction hostility, 56-block Wildfire acquisition, 40 further ticks of owned retention, rejection of a nearer non-Ghast target outside the ordinary radius, direct Small Fireball damage, and preserved ordinary Ghast fire immunity. Fix implemented through a faction-scoped Ghast target exception, Wildfire-only 64-block Ghast acquisition/retention, and a narrow entity-invulnerability event exception for Blaze-owned Small Fireballs hitting Wither Skeletons or Ghasts. The exact Wither Skeleton and extended Ghast tests pass 1/1, and the 50-Wildfire run peaks at 5.967 ms/tick; needs developer in-game confirmation.
Stage 2 Undead fire Zombified Piglins hit by Blaze or Wildfire fireballs caught fire but were extinguished almost immediately. The Stage 2 sunlight rule called clearFire() for every Retold Undead every tick, suppressing combat fire together with sunlight ignition. Developer in-game report on 2026-08-19. The focused Stage 2 regression applies Blaze- and Wildfire-owned fireball damage, ignites both Zombified Piglin targets, then requires both to remain burning after 20 ticks. Fix implemented by replacing the broad per-tick extinguish with StageTwoUndeadSunBurnMixin, which suppresses only vanilla's sunlight-ignition decision. Fire immunity remains removed from Zombified Piglins, and the exact GameTest passes 1/1; needs developer in-game confirmation before moving to Resolved Issues.
Mob action facing Villagers could turn away while magically relighting a torch because the action refreshed look control only on the ordinary slow Villager cadence and did not align body/head yaw. Several other stationary Retold interactions similarly used only a weak or one-tick look request. Developer in-game torch-relighting report on 2026-08-15. The strengthened all-stage regression deliberately turns an active caster 120 degrees away, then requires the next action tick to restore body, head, and look-control alignment. Focused golem, feeding, and weak-barrier regressions cover the shared facing contract. Fix implemented through RetoldActionFacing for stationary subject-facing actions: magical/physical torch casts, golem work, communal storage and livestock tending, feeding, weak-barrier breaking, Polar Bear warnings, and Spider web placement. Movement, combat, pursuit, migration, and free-flight paths retain normal look control so facing does not fight navigation. Focused tests pass; needs developer in-game visual confirmation before moving to Resolved Issues.
Ordinary predator self-defense Healthy wild and tamed Wolves did not retaliate against attackers. Retold blocked their vanilla predator target writes, while the shared replacement retaliation path recognized only Spiders. The same gap affected Foxes, Cats, Ocelots, and Dolphins. Developer in-game Wolf report on 2026-08-15. A focused regression applies real Zombie damage to every ordinary predator species and verifies wild and tamed Wolf behavior, retained source ownership, and the tame-owner exclusion. The test failed first on the wild Wolf before the production fix. Fix implemented by giving every healthy ordinary predator five-second attacker memory under explicit RETALIATION ownership, with continued defense after the one-time damage memory clears. Existing target policy, Creeper safety, owner safety, and below-25% wounded flight remain authoritative. The exact all-species test and focused passive-flight, wounded-flight, owner-defense, Spider, Dolphin, Bee, Enderman, faction, and undead-mount defense regressions pass; needs developer in-game confirmation before moving to Resolved Issues.
Tamed Wolf owner defense Standing tamed Wolves did not reliably defend an owner or attack a mob the owner hit. Retold blocked the vanilla Wolf target goals but its replacement only inspected the owner's attacker, not the owner's attacked target, and checked existing ATTACK ownership before higher-priority owner defense. Developer in-game report on 2026-08-12. The focused regression applies real Zombie damage to a survival owner, then gives the owner a separate attacked target while the Wolf already has ordinary combat ownership. Fix implemented with recent owner attacker/attacked memory, explicit OWNER_DEFENSE target ownership, vanilla wantsToAttack/sitting exclusions, and owner-defense priority over ordinary combat. The exact GameTest passes 1/1; needs developer in-game confirmation before moving to Resolved Issues.
Aender portal When an automatically created counterpart has no nearby island terrain, replaceable void support allowed it to be placed near the dimension floor instead of at a useful altitude. Developer in-game report on 2026-07-22. Fix implemented to skip void columns and use a supported Y=100 fallback; needs real-Aender verification before moving to Resolved Issues.
Aender portal Ambient particles spawned partly below the horizontal portal plane and were occluded instead of being visible to a player standing beside it. Developer screenshot and in-game report on 2026-07-22. Spawn height moved above the rendered plane with upward/outward drift; needs client visual verification before moving to Resolved Issues.
Aenderite generation Aenderite initially appeared not to generate because only about 3.6% of a 9,409-chunk real-sampler probe contained a planned vein. After an initial increase to 8.6%, the developer still could not find it during normal in-game inspection and approved matching diamond-like abundance. Developer reports on 2026-07-22; the original probe found 341 ore-bearing chunks and 1,134 valid replacements. A full-pipeline ProtoChunk GameTest confirms planned Aenderite survives terrain and decoration generation. A read-only scan of the newest local test save (New World (44)) found Aenderite in 361 of 1,396 saved chunks whose palettes contain Aender Stone. Diamond-style tuning now uses mostly 3–4 and 4–8 block veins with rare 8–12 block veins. The 9,409-chunk probe finds 2,917 ore-bearing chunks (31%) and 28,209 placeable blocks, approximately three per sampled chunk. Deterministic tests enforce the frequency, density, size, underside bias, and chunk-border behavior; fresh or legitimately regenerated Aender terrain still needs in-game verification.
Slime item pursuit Slimes recognized and consumed nearby dropped items but did not visibly seek items outside consumption range because ordinary navigation requests do not drive the specialized Cube Mob movement controller. Developer in-game report on 2026-08-02; the original tests covered appetite and direct consumption but not locomotion. Fix implemented through a Cube Mob facing-and-hop adapter with owned-heading protection. All 54 GameTests pass, including actual horizontal movement toward a distant item; needs focused in-game verification before moving to Resolved Issues.
Intermittent mob GameTest regressions Complete-suite or grouped-fixture contention previously missed otherwise focused-green movement requirements. Historical failures included exact feeder, Bat, Cube, fish-school, Villager-container, and staged Villager-golem paths. The Villager consumer regression was test cross-contamination: neighboring GameTests placed valid food containers inside its real 16-block search radius. Its route fixture uses a real bell POI, retries production behavior across budget windows, clears temporary stores, and is vertically separated while still requiring physical arrival and exact consumption. The broad retold:*communal_food* grouping can still contend with that route fixture, so the maintained strategy uses three isolated owning selectors instead: consumer transactions pass 4/4, the exact consumer route passes 1/1, and Farmer supply passes 2/2. The staged golem fixture assigned an untraded Cleric without a job site, allowing vanilla to reset it to none, and inherited whatever scheduled activity was active even though production correctly pauses outside IDLE/MEET/WORK. It now trade-locks test professions and explicitly selects IDLE while exercising staged mechanics. The focused golem selector passes 5/5 again. The last pre-supply complete run passed 160/160 in 3.504 minutes. The post-personal-stock 50-Villager TPS test passes with a peak of 8.459 ms/tick. Keep movement assertions under observation without weakening exact arrival, separation, supported destinations, or reachable paths; do not treat an artificial grouped-fixture timeout as permission to weaken behavior.
Villager golem advancement A player standing near a Villager-built Iron Golem received vanilla's player-summoning “Hired Help” advancement even though the Villager performed the construction. Developer in-game report on 2026-08-04. Vanilla's carved-pumpkin animation awards the summoned-entity criterion to every player within five blocks without tracking who placed the structure. Fix implemented with a try/finally-scoped Villager-animation marker and a narrow SummonedEntityTriggerMixin that suppresses only Iron Golem criteria during that call. Ordinary player construction remains outside the scope. The expanded focused golem selector passes 5/5; developer in-game confirmation is still needed before moving this advancement issue to Resolved Issues.
Nitwit torch-relighting tool visual A Nitwit's temporary Flint and Steel appeared for only one tick instead of remaining visible through the close relighting interaction. Developer in-game report on 2026-08-04. Villager systems were dispatched every 20 ticks, while vanilla could clear the visual hand stack on the next entity tick. Active Nitwit tool use now receives lightweight continuous dispatcher updates and reasserts the fake hand stack until the one-second interaction completes; idle discovery and routing remain on the normal cadence. The strengthened fake-tool regression passes within the 4/4 relighting selector and the latest Villager TPS test peaks at 7.259 ms/tick. Needs developer in-game visual confirmation before moving to Resolved Issues.
Hunger-profile survival integration Registry-wide survival testing found hungry profiles whose tests supplied food they would not reliably acquire in their actual spawn habitats. The expanded habitat matrix also exposed deterministic shared block-search starvation: under 41 concurrent cases, late environmental browsers could miss every search window even though total work stayed within budget, then generic food search carried them away from the source before their turn. A cactus-based Camel fixture additionally proved unsafe because collision damage correctly triggered higher-priority fleeing. The original audit compared all 40 positive-hunger profiles with patched 26.2 spawn-biome definitions and production acquisition owners. Reproduction used retold:hunger_survival_*; focused cases passed alone while the grouped matrix repeatedly deferred environmental foragers. Parrot first expanded coverage to 41 species; loaded diets for four school fish and both Squid types now expand it to 47 species plus the registry guard. Every profile now has a representative habitat route: safe renewable dead-bush scrub replaces deliberate cactus feeding, and the added badlands, alpine, Mushroom-Field, cave, Nether, caravan, Cube-prey, Parrot crop, aquatic-plant, and dropped-raw-fish paths complement existing forage, hunt, lava, and village-storage behavior. A weak fair-claim queue reserves capacity within the unchanged eight-start block-search cap so a live deferred claimant eventually runs; denied forage claimants hold position rather than beginning a random search until admitted. Two final different-order runs of the former matrix passed 41/41. The six new exact aquatic survival cases and expanded registry guard pass; the full expanded 48-test group was not rerun. The earlier five affected/representative TPS tests passed all 25 phases below 50 ms/tick with a 10.061 ms/tick peak, Parrot's five phases peak at 4.005 ms/tick, and the six aquatic profiles' 30 affected phases peak at 5.524 ms/tick. Needs representative natural-world and long-term survival verification before moving to Resolved Issues.
Bat hierarchy dispatch Loaded Bats stopped receiving their colony hunger/starvation tick because the 26.2 Bat class entered the PathfinderMob branch while the dispatcher called the Bat adapter only from its non-pathfinding branch. The grouped starvation regression left a player-loaded Bat at 99 hunger while Cow and Villager owners advanced. The exact retold:starvation_damages_every_hunger_tick_owner selector reproduced the missing owner. Bat colony dispatch now occurs before the vanilla hierarchy split, retaining its distinct adapter whether the upstream class hierarchy changes again. The exact loaded starvation-owner regression passes 1/1; natural Bat hunger/colony behavior still needs developer confirmation before this moves to Resolved Issues.
Feeding during urgent flight Sheep could visibly continue vanilla grass eating while Retold was already making them run from Wolves, because the long-running vanilla EatBlockGoal did not participate in Retold ownership. Species-specific meal callbacks also relied on their earlier dispatcher checks instead of rechecking priority at the final transaction. Developer in-game report on 2026-08-05. The exact regression starts vanilla Sheep grazing, gives the Sheep FLEE ownership, and probes ordinary forage and dropped Wheat during the same flight. Fix implemented with a narrow vanilla goal guard plus a shared transaction-time meal check across ordinary and specialized feeding paths. The exact unthrottled GameTest passes 1/1: grazing stops, grass/Wheat/hunger remain unchanged during flight, and one-item feeding resumes after flight ends. Needs developer in-game confirmation with Sheep naturally fleeing Wolves before moving to Resolved Issues.
Villager teaching screen Opening the merchant screen crashed the client because MerchantScreenMixin attempted an @Inject into containerTick, which is inherited from AbstractContainerScreen rather than declared by MerchantScreen. Developer client stack trace on 2026-08-09 reported InvalidInjectionException: ... could not find any targets matching 'containerTick' in MerchantScreen. The feedback countdown now overrides containerTick and calls super.containerTick() instead of targeting the inherited method with an injector. The development client reaches the title screen and the full build passes; opening a merchant screen still needs developer retesting before moving this issue to Resolved Issues.

Resolved Issues

Move issues here only after the implementation is complete and the behavior has been tested in game.

Area Issue Resolution
Animal Feeder item duplication Survival insertion and later retrieval could return more food than the player transferred. Insertion now copies only into feeder storage and shrinks the Survival player's actual held stack by exactly the accepted count; Creative intentionally keeps its source stack. Automated coverage checks one-item insertion, sneak-bulk insertion, exact conservation, retrieval, and Creative non-consumption. The developer re-tested the controls and confirmed they work on 2026-08-04.
Animal Feeder approach A Sheep in an enclosed pen stopped one block short of the feeder because ordinary navigation accepted the node before the required access cell. The final feeder approach now requests reach range zero and movement memories distinguish route precision. Automated coverage drives a real Sheep to consumption without teleporting. On 2026-08-04, the developer re-tested the reported enclosure and confirmed exact arrival and feeding, the two-second source-facing pose for feeder/dropped/forage food, immediate damage interruption, and several hungry Sheep using one trough.
Passive mob fleeing Damage from Zombies, players, projectiles/explosions, and environmental sources did not enter shared passive flee memory. Successful health damage now immediately seeds remembered flight for eligible land and fish prey without overriding specialized defense/retaliation. Focused automated coverage passes, and the developer reported the ordered natural passive-flee acceptance pass works on 2026-08-03.
Bat obstacle routing, tall-cave roosting, and settling Bat flight lacked real obstacle routes, legacy homes could anchor near the cave floor, expensive ceiling/party work repeated, and returning Bats could stall below or stack at supported ceiling cells. Bounded 3D paths, upward supported-ceiling repair/search, cached and rate-limited colony work, owned final approach/settling, and persistent cell reservations resolve the combined behavior. Focused Bat tests pass 7/7, the expanded matrix stays below 50 ms/tick, the full suite passes 150/150, and the developer reported the ordered natural Bat acceptance pass works on 2026-08-03. Dedicated-server, multiplayer, profiler, and existing-world checks remain separate verification gaps rather than this resolved behavior bug.
Torch weather Extinguished soul and copper wall torches referenced loot-table filenames with an extra underscore, so breaking them produced no drop. Corrected both loot-table resource IDs and added a passing GameTest covering the matching drops for all six extinguished torch variants.
Aender persistence An obsolete chunk-storage mixin cancelled saves and disk reads for every unstabilized Aender chunk, leaving terrain region files empty and discarding placed/broken blocks after reload. Removed the obsolete interception so vanilla region storage saves terrain together with the persistent reality signature. Verified on an isolated copy of the affected world across three dedicated-server starts: place/save/reload, break/save/reload, with the formerly empty region file populated.
Ocean monument Guardian defense assist treated non-player attackers as nullable players, crashing when a drowned or another mob damaged a guardian. Non-player damage sources are now rejected before player target validation; a GameTest reproduces drowned-to-guardian damage and verifies it completes safely.
Mob AI performance Sight-cache cleanup could remove the current observer mapping after its entry list was obtained, so the fresh result was written to a detached list. Cleanup now runs before the observer list is obtained; a deterministic GameTest verifies expired-observer removal, retained fresh results, and immediate cache reuse.
Sniffer AI performance The Sniffer range validator ran an 11x5x11 nearby-diggable search for every candidate in its outer 37x9x37 range scan. The first 50-Sniffer matrix run reached 216.917 ms/tick in an active phase. New range anchors must themselves be diggable, while existing stored ranges retain their separate nearby-diggable validation. The complete 68-species rerun passed all 340 phases and reduced the Sniffer peak to 3.340 ms/tick.
Bat GameTest isolation A mock ServerPlayer used by the Bat disturbance regression had no client connection, but login synchronization still tried to send Retold payloads. The broken-roost regression also assumed that shared block-search and path-start budgets would admit its work in one short window during the complete suite. The reported run failed 2/139, while an immediate pre-fix rerun passed 140/140, confirming that the suite symptom was intermittent even though both unsafe boundaries remained in code. Player synchronization now returns unless the server player has an active connected play connection, with a dedicated clientless-player regression. Broken-roost coverage retries across five budget windows while still requiring a different valid dark supported ceiling, SHELTER ownership, and a real flying path before movement. Build, the 1/1 synchronization regression, the focused 7/7 Bat selection, all 68 TPS tests and 340 phases, and the complete 141/141 suite passed on 2026-08-03.
Mob AI GameTest isolation after feeder expansion The 154-test suite exposed two order-sensitive fixture assumptions: Axolotl defense shared the broad default environment and asserted damage at exactly tick 15, while the Bat multi-attacker scenario could retain a path from an earlier phase before checking distinct approach routes. One run also lost one invulnerable Ender Dragon benchmark subject, but that benchmark passed all 74 matrix tests and three immediate focused repetitions without a code change. Axolotl defense now runs in its own environment and waits for actual Guardian damage within the existing 40-tick timeout. The Bat scenario clears both fixture paths before requiring two new non-overlapping destinations. These changes retain the combat and route requirements. Focused Axolotl 1/1, focused Bat 8/8, all 74 TPS tests/370 phases, and the final complete 154/154 suite pass.

Maintenance Rule

Update this file when:

  • a player reports reproducible broken behavior
  • an issue is fixed and verified

Do not put design gaps here. For example, "Aender teleportation is planned but not implemented" is a design/implementation gap, not a confirmed issue.

AI Agent Instructions

See the shared AI Agent Instructions.