Foxcraftupdates

Parkour
  • 🐛 Fixfix(protection): let anyone open a map container, refuse only moving items thread ↗
  • 🐛 Fixfix(play): admit items a map's own dispensers hand out to the runner thread ↗
cloakfox

OneBlockSurvival
  • Price a spawner by its mob, and a stacked one by the spawner (#545)
  • Tell FoxAuctions what a spawner item is, and how many
  • Compute total XP in a long: /xpbottle was unusable at the vanilla XP ceiling thread ↗
cloakfox

OneBlockSurvival
  • Let a player opt their own text out of emoji substitution
  • feat(migrate): convert PyroFarming-era items in inventories into FoxFarming ones in place
Survival
  • 🐛 Fixfix(database): skip comment-only chunks when replaying the schema files
  • 🐛 Fixfix(baltop): time-slice the balance leaderboard refresh instead of freezing the server
cloakfox

OneBlockSurvival
  • 🐛 Fixfix(migrate): carry stored produce + persisted climate on import; add `/farm import <dir> restore` to repair already-migrated stations
Survival
  • Enforce unique team names at the database level
cloakfox

Network
  • Stop TNT minecarts and end crystals damaging allies
  • 🐛 FixPrevent invalid turret state during placement
OneBlock
  • Preperations for lobotomizing frogs (without compromises)
Parkour
  • 🐛 Fixfix(protection): deny item actions to players in a parkour world with no mode
  • 🐛 Fixfix(play): actually lock a runner's inventory — pickup, drop, armor and gliding
  • 🐛 Fixfix(protection): route container access through the map's owner/trust gate
  • 🐛 Fixfix(build): stop a creative builder dropping items into their map world
  • feat(replay): record runner state — ground contact, sprint, double-jump and fall-damage cues (format 0x0A)
  • feat(showcase): consume recorded runner state — exact cues, recorded ground, recorded sprint FOV
  • feat(replay): record fire state and water splashes; hurt flash, flames and splash on phantoms
  • feat(replay): record potion-effect snapshots and block clicks; swirls and plate clicks on playback
  • feat(replay): ambient phantoms make sound during normal play
cloakfoxfweef

OneBlock
  • 🐛 FixFix announcement bar lifecycle: stranded bars, orphaned boss bars, UUID keying, cleanup
  • 🐛 FixModernise to Paper 26.2 + Adventure, and fix the render hot paths
  • Validate config values and declare exclude permissions
  • Condition operators, per-player scope, and announcement targeting
  • Command UX: list, info, show, stop, help and tab completion
  • Review pass over #19-#22: private previews, rotation accounting, loader consistency
  • Route every detection alert to the staff channel, not just the red ones (#542)
  • 🐛 Fixfix: code review cleanup
  • 🐛 Fixfix: don't call CompoundTag.remove, which does not exist on 26.x
  • 🐛 Fixfix: repair enchantments in the format Minecraft actually uses
  • 🐛 Fixfix: repair the enchantments of items stored inside other items
  • Snapshot-based, thread-confined save pipeline for the chest cache
  • Event handlers: stale cache after reload, off-hand double fire, own-inventory swaps, holder snapshots
  • Commands: null-group return, chest-lock gates, modern material names
  • Load path: per-group importers, row off-by-one, NBT validation, importer threading
  • Storage: serialize database access, write chest files atomically
  • Item-filter costs and remaining cleanup items
  • 🐛 FixFix races and edge cases found by independent review of PRs #32-#37
  • Store the items waiting to be handed to a chest's owner
  • 🐛 Fixfix(selldecay): maturity gate on hand-harvest credit + per-instance credit bridge rebinding
  • 🐛 Fixfix: reload completeness, live join-notice resolve, single-stage idle flag
  • 🐛 Fixfix(recipe): stop vanilla recipes consuming FoxFarming items (crafting table + Crafter)
  • perf: incremental leaderboard scan, chunk-gated liquid flow, gated market clock, commit-stamped version
  • feat(skilltree): confirm the reset, give Bedrock a real form, group the Elysium costs
  • 🐛 Fixfeat(bedrock): native forms for the three chest-only info menus, plus two config-parity fixes
  • feat(shop): make the farm shop's feedback and its price visible
  • feat(codex): Bedrock forms for field crops, a visible discovery reward, lifetime harvest counts
  • feat: make the farm's progression legible — hub tiles, generated command list, guide topics, harvest feedback
  • feat: un-invert the confirmation friction, and make personal orders actually personal
  • 🐛 Fixfix(bedrock): stop double-rendering entity-backed crops where GeyserModelEngine mirrors them
  • ⚖️ Tweakfeat(selldecay): surface the hand-harvest credit balance
  • feat(api): publish orders, Elysium, growstation and skill-tree events (api 1.4.0)
  • 🐛 Fixfix(skilltree): seed the FormMax message key #751 introduced
  • Gate the 42 sulfur-caves fish on the phase biome, not a phantom world
  • 🚫 RemovedMake debug.disable-debuglogger disable the whole debug logger; audit of #195
  • Read the storage snapshot once per iteration; drop two Gson serialisations from hot paths
  • perf: cache outbound protocol resolver's handler context per channel (#5)
  • Toolchain + CI + unit tests (Gradle 9.7.1, packetevents 2.13.0, GitHub Actions, JUnit)
  • Track region music through WorldGuard's session system; drop WGRegionEvents (#23, #18, #19, #22)
  • Toast + resource-pack awareness: grant-then-revoke, suppress for pack-less Java clients, re-emit only when needed (#21, #20, #25, #33, #36)
  • Playback UX: leave-grace period, last-track memory, per-player volume, vanilla-music stop (#24, #35, #27, #37)
  • Player controls + region-flag audit: /nowplaying, /frm off|on via FoxSettings, /frm regions (#26, #39)
  • Hygiene: config-key drift warning, string lengths, micro-optimisations, proxy hardening, docs drift (#29, #34, #32, #38)
  • sellDecay: expose one seller's unspent hand-harvest credit
  • TransactionLog: batch CSV appends per drain (#137)
  • Sell from the off-hand: include slot 40 in sellable count and removal, drained last (#132)
  • Perf: cache per-Trade derivations; lazy, clone-free menu rendering (#125, #126)
  • ConfirmMenu: clamp amount to live caps (parity with the Bedrock slider); one modifier scan per render (#127, #131)
  • sellDecay ops: resolver TTL caches + reload re-arm + BentoBox softdepend + /shopadmin status section (#128, #129, #130)
  • Bedrock-aware list-menu lore; one combined sell-all line; open-sound parity (#133)
  • Widen bundled pool past every day-group request; warn and preview-flag saturation (#134)
  • PlaceholderAPI: sell-decay multiplier / pressure / grace-left / harvest-credit placeholders (#135)
  • shopadmin list: pagination + display names + search; register: optional id:<name> (#136)
  • 🐛 Fixfix(editmode): point marker direction, preview leakage and stand ids
  • Placement safety: physics after confirmation, own-half containers, inventory-holder drops, top-down destroy, BentoBox hook (#19 #20 #21 #25 #26 #28 #38)
  • 🐛 FixCharging & command correctness: selection-world gating, one affordability rule, DEFAULT use on first placement, give fixes, quiet NBT-API (#22 #23 #24 #27 #41 #42)
  • 🐛 FixHotpaths: batched per-tick charging, lazy region, resolve-once hooks, cheaper selection box, wand pre-filter (#29 #30 #31 #32 #33)
  • Player UX: real limits, forgiving materials + tab completion, /pwe pos1|pos2|sel|clear, feedback + progress, confirm + undo, hex colours (#34 #35 #36 #37 #39 #43 #44)
cloakfox

OneBlock
  • Make market_key compare byte-exact so recent-sales grouping respects case (V34)
  • Gate Bedrock form senders on the player, not on whether Floodgate is installed
  • 🐛 Fixfix(stats): answer "unknown", not zero, when a player's data isn't loaded
Parkour
  • refactor(replay): carry the phantom label in one text display, not four
  • feat(onboarding): "Start Here" hub tile that starts a curated starter playlist
  • 🐛 Fixfix(replay): spawn phantom info labels with zero pitch so they stay upright
cloakfox

OneBlock
  • 🐛 Fixfix(stats): add a monotone %wwarp_explored% for timed leaderboards
cloakfox

OneBlock
  • Let a player turn off region and combat music (foxregionmusic.nomusic)
Parkour
  • feat(cosmetics): drive cosmetic models via item_model instead of shared custom_model_data
  • perf(chunks): bound the chunk-ticket region and release it when a map empties
  • feat(diagnostics): name the maps that are expensive to load
cloakfox

OneBlock
  • Group recent-sales figures by product, not just material (#536)
  • 🐛 Fixfix(commands): count a bag on the cursor or in an open screen as held
  • Stamp the shared foxmarket:key product tag on backpacks
  • Stamp the shared foxmarket:key product tag on fish and rod skins
  • Stamp the shared foxmarket:key product tag on minion eggs
  • 🐛 FixFixed hostile mobs not dealing damage in pvp area
  • sellDecay C4c: let prestige scale the global backstop grace too (opt-in)
  • 🐛 Fixfix: return a sentinel for missing-{type} vehicle data instead of throwing
  • Stamp the shared foxmarket:key product tag on vouchers
Parkour
  • perf(replay): mount phantom info labels as NPC passengers instead of per-tick moves (#823)
  • feat(browse): instant scrolling — read-ahead prefetch, cold-load-only rate limiting, view loads, instant HUD swap
  • feat(browse): keep the top of the default browse order loaded (warm-browse-maps)
  • perf(unloading): exempt read-only worlds from max-unloads-per-cycle
  • feat(bedrock): optional per-ability bedrock-strength-multiplier (#881)
  • refactor(text): unify player-facing vocabulary on "map" (#878)
  • feat(ux): browse core — weighted highest-rated sort, rate-limit countdown, legacy filter aliases, hotbar slots (#853 #855 #858 #879)
  • feat(ux): build & publish flow — hotbar tools, publish feedback, seeded dialogs, hub My maps, start-point flow, test-run notice (#859–#864)
  • feat(ux): play-mode controls & post-run flow (#869 restart confirm, #870 two visibility items, #871 post-run flow)
  • feat(ux): Bedrock chat-click fallbacks — duel/party forms, /fp accept|decline, typed hints, spectate skip clock, Bedrock sound fallback, map share link (#866 #867 #868 #872 #884)
  • feat(ux): Bedrock parity leftovers — /fp stats compare, horse-style icons, phantom real-skin toggle (#880)
  • 🐛 Fixfix(text): vocabulary + typo cluster in shipped lang/menus/config (refs #878)
  • feat(ux): parkour feed toggle + quieter broadcasts, prestige confirm, duel wager cap, challenge tracking hints (#873–#876)
  • feat(ux): browse position memory, keyword search results, play-by-name, richer map cards (#854 #856 #857 #882)
  • feat(ux): hub party/duel/elimination menus, topic-grouped help, elimination + chained-mode onboarding (#877, #883)
  • feat(ux): empty-draft cleanup + quota message, collaborators menu + save-in-place (#865, #885)
  • 🐛 Fixfix(browse,spectate): snapshot featured sort key + guard returnToBrowse in elimination (#899, #900)
  • 🐛 Fixfix(browse): snapshot every single-key sort comparator so the whole browse sort is immutable
cloakfox

OneBlock
  • ✨ NewAdd /emoji picker GUI so players can browse and use chat emoji
  • 🐛 Fixfix: don't let an unreadable vehicle record abort chunk loading
cloakfox

Kingdoms
  • 🐛 FixFix/advancement regeneration
OneBlock
  • Name a minion listing by its type and tier, not "Minion Egg"
  • ✨ NewWire up 91 new Pepe + Meme chat emoji (emoji.yml)
  • 🐛 Fixfix: don't overwrite survival armor when respawning into a disabled world
  • List each bingo cell's catchers on the card view
  • perf: swap the query cache on invalidation instead of clear()-walking it
cloakfoxfweef