Updates

Every change to the Foxcraft servers, newest first.

Update — October 5, 2026

Farming

  • Builders in a kingdom's claim can now break growstations, bushes, field crops and Skill Archives left by non-members, and the items go back to the farm's owner.

Islands

  • Island protection now covers more block and entity interactions, including off-hand use, straw beds, breeding, brushing, pots, spawn eggs and command aliases; TNT placed loose in island worlds no longer gets picked up by mobs.
  • 🐛 Fix Team panels now confirm actions on Java and Bedrock, invitations expire and can be withdrawn, and several island and team fixes are included.
  • 🐛 Fix Fixed obsidian scooping sometimes putting the lava back in place of the obsidian.
  • Pending team invites survive the update, and /is info now shows your real home limit.

Vouchers

  • Voucher rewards are no longer lost if you die while redeeming, and you're told when a reward command fails instead of being shown a false success.

Warps

  • 🐛 Fix Fixed item search skipping some shops after land changes made during a shop reload.
  • 🐛 Fix Shop search in warps now shows the current version of a shop after it has been replaced, instead of briefly hiding it.

Forum Board

  • 🐛 Fix Forum board announcements now show up on the main thread more reliably, and missing post details no longer break the board.

Message Announcer

  • 🐛 Fix Announcements now rotate correctly in sequential and random modes, conditions and join/leave checks are more reliable, and vanished players are no longer announced.
  • ✨ New Announcements can now display in the action bar, as a title, or as a boss bar, and Bedrock players get adapted lines with links shown as text.
  • ✨ New Announcements can now be hidden by category with /announcements, and timed tips shuffle through without repeating back to back.

Update — October 4, 2026

Parkour

  • 🐛 Fix Map of the Day now comes only from the highest-rated maps, and a map won't be featured again within 30 days.
  • ✨ New Party members now share a private Simple Voice Chat group, so they hear each other wherever they are while players nearby don't hear the party.
  • 🐛 Fix Duel match prompts and queue join lines now show their buttons, including [REROLL], on servers with older lang files.
  • ✨ New Direct duel challenges can now stake cosmetics alongside points: the winner takes the loser's staked cosmetic, and stakes are locked until the duel is settled.
  • 🐛 Fix Backpacks now stay hidden while you glide, swim, crawl, spin in a riptide or sleep, and turn with the boat or horse you ride.
  • 🐛 Fix Fixed chained parties starting over when a mount was slowly worn down on a cactus at the checkpoint, and hand-out items now follow reloaded removal timers.
  • ✨ New Added Tag, a 1v1 minigame: one player chases the other through a generated arena, and the faster catch wins.
  • 🐛 Fix Visitors can no longer change a map's mobs with splash potions, lures, their own pets, or by walking into them, and a lectern reader who loses permission to turn a map's page has the view closed.
  • ✨ New Added Red Light, Green Light, a group race on parkour maps where you must stop when the light turns red.

Update — October 3, 2026

Parkour

  • 🐛 Fix Runners whose mount keeps getting destroyed at a checkpoint no longer hear a respawn sound every lap or restart their run each time.
  • 🐛 Fix Visitors can no longer hit, ride, feed, tame or shove a map's mobs, boats or minecarts; runners are still allowed to.
  • ✨ New Browse hotbar is less cluttered: Map options holds favorites, playlists, time trials, spectating and settings; after a run, More holds favorite, time trial and share.

Red vs Blue

  • ✨ New Added "/rvb replay last" to watch your most recent recorded match, and a spyglass after games that replays the match you just finished.
  • Replay phantoms now show each player's name in their team colour, and their vanilla name tags are hidden.
  • Replays now show a kill feed and floating damage numbers, which can be toggled with /rvb replay overlay.
  • Replays now show each player in the skin they were wearing during the match, even when the replay is watched on another server or without the same kit plugins.
  • Duels configs with zero tickets now migrate to first-kill matches, and invalid arena settings are rejected before players are queued.
  • Red vs Blue players who leave, reconnect, or get moved mid-match no longer lose stats, get stuck flying, or get pulled back into a finished game.
  • Players can now challenge each other to direct duels, send rematch requests after two-player TDM matches, and opt out of challenges.
  • Duels now end in a draw after ten minutes, with warnings beforehand, and no winner rewards are given.
  • ✨ New Added /rvb replay recover to restore older Red vs Blue replays that were saved but never indexed, and saved replays now survive server restarts and database outages.
  • 🐛 Fix Fixed phantoms snapping back to their pre-seek positions after pausing, seeking and resuming a replay on 1.21.2 and newer clients.
  • 🐛 Fix Fixed players being removed for AFK after they start moving again following the AFK warning.
  • Replays of a match that ends during a database outage are now saved when the server stops, instead of being lost.
  • AFK removal now counts from the match start, and a match where everyone is AFK ends as a draw with no winner.
  • Replay commands now say when the replay index is unavailable instead of reporting no recorded matches, and failed map loads name the map.
  • Last and latest match IDs no longer go blank after an unfinished or force-stopped match, and keep naming your last complete replay.
  • The duel result menu now stays available after you reconnect, until it expires five minutes after the match.
  • Replays show mode and map names instead of ids, and damage numbers now float above name tags instead of over them.
  • Replays from matches played while the stats database is unreachable now become playable within seconds instead of several minutes later.
  • Match stats are no longer lost during database outages, and per-kit kill and death placeholders now update when a game ends or a player leaves instead of after each kill.
  • Kit selection menus now reopen correctly after spawning and reloads, off-hand items stay equipped, and Totems of Undying work as expected before a death counts.
  • Waiting-room chat stays inside its arena, forced kit commands reject empty kits, and killstreak messages show their placeholders correctly.
  • Red vs Blue health and scores now stay separate for each match, and Bedrock players see the real player list plus a score and kills boss bar.
  • ⬆️ Improvement Queues keep your global preference, stale duel invites are cancelled, refused queues explain why, and event admission is smoother with clearer notices.
  • Duels can now be started from an opponent picker, and bare /rvb duel reopens a pending invitation. Bedrock players get an invitation opt-out and clearer refusal messages.
  • ✨ New Red vs Blue duels now reuse ready empty arenas before loading new ones, and game ID commands accept any letter case.
  • ⬆️ Improvement Red vs Blue replays run smoother, with fewer lag spikes and more accurate phantom movement and head turns during playback.
  • Replays can now click a nearby participant to follow them, and show remaining hearts, held items, and clearer King of the Hill empty, contested, and capturing states.
  • Replay viewers can reopen replay controls with /rvb replay, with Bedrock players getting compact playback controls, settings menus and a double-sneak shortcut; showcase viewers can resume the automatic camera and stop their own showcase.
  • Players can view their career totals and top kits with /rvb stats, including for offline players, and leaderboard placeholders now show up reliably.
  • Red vs Blue matches now show a match clock, and results explain forfeits, timeouts and sudden death with each player's own totals.
  • ✨ New Added an optional lobby Play item with a mode picker and waiting counts, plus a Leave queue option and clearer command help.
  • Red vs Blue titles, action bars, team chat and match messages are now translatable, and Bedrock players no longer see Java head icons in match and replay messages.

Update — October 2, 2026

Farming

  • Cap how many other players' growstations one player can use (alt-fleet farming)
  • feat(fieldcrops): breaking grass or seagrass can drop a field-crop seed (#831)

NPCs

  • 🐛 Fix Fix LEFT_CLICK actions on Minecraft 26.1+ / 26.3

Warps

  • test: one all_signs tag for every static Bukkit mock, so the suite passes in any class order
  • 🐛 Fix fix(tools): defaults-history --check compares the history data, so squash merges no longer fail it
  • 🐛 Fix fix(back): a ban by any warp around a return point refuses /pwarp back there
  • 🐛 Fix fix(search): say when item results are partial during a QuickShop shop re-read

World Guard

  • Handle 26.3 poplar boats in boat placement and vehicle checks
  • Check EntityPlaceEvent placements (26.3 cushions) as entity spawns

Parkour

  • 🐛 Fix fix(protection): a map's powder snow, lily pads, lecterns, armor stands, mobs and vehicles stay as built (#1350)
  • 🐛 Fix fix(build): a test run started over a running one ends it first, and build mode's give-back neither despawns nor drops a beacon's payment (#1344)
  • 🐛 Fix fix(play): a plugin item can't go into a bundle, and a map's hand-out nobody picks up is removed after 15 s (#1346, #1350)
  • 🐛 Fix fix(play): a mount lost in a loop is quiet, leaves nothing on the ground and is logged per map stretch (#1348)
  • 🐛 Fix fix(build): the cursor and a crafting table's grid stay with build mode, and leaving build mode during a test run keeps the real inventory (#1342, #1343)
  • 🐛 Fix fix(play): what a hand-out bundle holds and what a runner crafts go at a reset too (#1341)
  • 🐛 Fix fix(play): nobody may hurt a runner's mount, and a mount the map takes sends the runner back (#1336)
  • 🐛 Fix fix(play): a move an ability teleported the runner out of no longer counts plates or portals (#1329)
  • 🐛 Fix fix(replay): a new run ends the finished run's save window, and only the move a teleport was made from is dropped (#1325, #1330)
  • 🐛 Fix fix(protection): bottles at a cauldron follow "Allow Decoration Use", and more ways to change a map without placing or breaking are refused (#1326, #1328)
  • 🐛 Fix fix(cosmetics): a backpack's body turn follows what viewers are sent when they start tracking the wearer afresh (#1331)
  • 🐛 Fix fix(modes): the cursor and crafting grid are held aside with the inventory when a mode starts, and discarded when it ends (#1338)
  • 🐛 Fix fix(protection): a map's boats and minecarts can't be punched or shot apart by anyone who may not edit it (#1336)

TAB

  • Preserve the nametag null guard in the 26.3 build

Update — October 1, 2026

Parkour

  • feat(build): let staff bypass test runs when saving or publishing maps
  • ✨ New Add cinematic capture for runs, duels, and replay groups
  • ✨ New Add checkpoint relay races with party and solo matchmaking
  • ✨ New Add cosmetic packs
  • Hold capture until the map is drawn and widen the capture viewer's border
  • feat(play): declutter the run hotbar and stop stray clicks setting off controls (#1282)
  • Balloons and backpacks without a visible stand, for spectators too (#1287)
  • ✨ New Capture: keep the finish off the POV lens, land airborne finishes, add elytra wind, hide map holograms
  • ✨ New A held right-click can't start a new run after the finish; runners can't use map decorations
  • Capture cameras keep filming when a wall blocks the view, stay clear of the runner, and give each shot its own angle
  • Stray wearables no longer block buttons or the bell; visitors can't reset redstone; per-map decoration use; left-clicks after a finish
  • Capture cameras keep their angle past posts, cut cleanly at resets and subject changes, and stop holding blind lenses
  • Record rocket boosts in replays (format 0x0B), capture finish polish, fewer wind restarts in the glide fade-in
  • 🐛 Fix fix(cosmetics): backpacks sit on the torso, drop with a crouch, and can be hidden from their wearer (#1317, #1318)
  • 🐛 Fix fix(replay): record a run's teleports as forced moves (#1316)
  • 🐛 Fix fix(protection): survival visitors can't edit a map's signs, punch its dragon egg, drain its cauldrons or bone-meal it (#1310, #1315)

Update — September 29, 2026

Auctions

  • Pay collected sales tax into a configurable tax.account (server lottery pool)

Farming

  • 🐛 Fix fix(player): online profiles take the player's login name (#823)
  • feat(growstations): list a player's stations and free phantom records (#824)
  • 🐛 Fix fix(ux): plant-message channel, blocked-bush status, Skill Archive ingredients (#825)
  • 🐛 Fix fix(ux): plant-message switch words, archive ingredients in two hints, lossless liststations hint (#829)

Minions

  • Lumberjack: replant crimson/warped fungus on decayed nylium; bone-meal only growable fungi (#479)
  • Chunk loaders: skip natively ticked chunks, activate every stacked spawner, explain the limits (#480)
  • docs: describe RoseStacker's indexed fake-player lookup (RoseStacker#173)

Mob Stacking

  • perf(api): index fake player locations by world and chunk (#172)

Ultimate Casino

  • Never save storage.yml before it was loaded; keep it complete from boot (#18, #33)
  • Claim games before refunding them; clean up failed reveals (#20, #21, #22)
  • 🐛 Fix Fix result messaging: raw keys, tax wording, broadcasts, offline results (#23, #27, #28, #29, #34)
  • Jackpot: charge the configured bet exactly and show every entrant (#19, #25)
  • Let players leave a jackpot pot; admins refund pots and unseat roulette joiners (#26, #30)
  • Minor correctness cleanups: an/a, jackpot draw, stats types, pane colours (#31)
  • Keep lifetime stats out of the per-bet storage.yml rewrite (#24)
  • Address the review nits from the #36–#42 stack (#43)
  • Server lottery funded by plugin taxes and ticket sales (#45)

Warps

  • chore(build): CI on every PR, build and licence hygiene, README accuracy (#328 #329 #330)
  • 🐛 Fix fix(config): strict startup loading and consistent reloads
  • 🐛 Fix fix(land): prevent uninvolved providers bypassing ANY-mode restrictions
  • 🐛 Fix fix(back): one-shot returns and shutdown-safe session persistence
  • 🐛 Fix fix(db): version schema migrations, preserve Unicode and index child rows
  • 🐛 Fix fix(warps): durable grace periods, stable moves and complete API lifecycle
  • 🐛 Fix fix(signs): protection during loading and after event validation
  • 🐛 Fix fix(featured): expiry ordering, purchased durations and queue controls
  • docs(licence): proprietary project and complete third-party notices
  • 🐛 Fix fix(economy): checked payments, durable failed credits and account audit
  • 🐛 Fix fix(featured): approved renewal terms and Folia owner checks
  • Refresh optional plugin hooks and keep PAPI expansion registered
  • ⚖️ Tweak Reduce shop search scans and update the index incrementally
  • Cache normalized sign search text and share a search cooldown
  • Limit placeholder invalidations and replace full-sort cache eviction
  • Cache land lookups and spread island indexing across ticks
  • Use each viewer’s language in menus, forms and clickable text
  • Support clearing warp fields and resetting display items
  • 🐛 Fix Fix whitelist actions and offline visitor-list completion
  • Make category controls and command help easier to follow
  • Cache sorted menu listings across page changes
  • Show Bedrock action results and readable warp details
  • ✨ New Pin featured warps and add Bedrock filter and leaderboard forms
  • Use consistent warp targets for favourite, rate and manage commands
  • Warn owners about paid featured time before deleting a warp
  • Use the viewers command alias in configured menu hints
  • Guide players through creating their first warp
  • Clarify owner settings and selected warp controls
  • Expose owner actions and preferences in Bedrock forms
  • ✨ New Add native Bedrock staff warp tools
  • Make sub-warps discoverable from Java menus
  • Keep menus open when a warp request is refused
  • Return searches to the originating menu and page
  • Clarify player messages and command feedback
  • Localize warp formatting and plural messages
  • Make rating, favourites and return discoverable on arrival
  • ✨ New Add Java owner controls and menu navigation improvements
  • Separate warp index and explored-credit state ownership
  • 🐛 Fix Integrate and verify all 78 open-issue fixes
  • 🐛 Fix fix(signs): only destructive explosions delete a warp
  • 🐛 Fix fix(grace): a staff delete moves the owner's later grace entries up
  • 🐛 Fix fix(admin): complete admin unlock on the global thread with the warp re-checked
  • feat(menu): Filters & views behind a right-click on the online-owners filter
  • 🐛 Fix fix(visitors): complete every listed player and tell same-name entries apart
  • 🐛 Fix fix: review notes from 2026-09-28 (featured expiry, staff move, search tests, QuickShop index, economy messages, top)
  • refactor(sign): move the remaining sign-table I/O into SignRepository
  • 🐛 Fix fix(back): a return into a warp's area follows that warp's rules and price
  • feat(admin): upgrade guide and /pwarp admin defaults for reviewing live config/locale
  • 🐛 Fix fix(config): random-prefer-online falls back to the bundled value when neither key is written
  • 🐛 Fix fix: QuickShop reloads found before the first item search; Bedrock leaderboard chooser refusal in a notice
  • feat(top): switch ranking and period inside the Java leaderboard chest
  • 🐛 Fix fix(back): check a warp's bans and locks on free own-route returns into its area
  • 🐛 Fix fix(signs): keep a trapdoor or fence gate that holds up a warp sign shut

mcMMO

  • Ignore block tracker positions outside the world's height (#22)

Holograms

  • 🐛 Fix Fix all 84 issues from the September code review (bugs, performance, Java/Bedrock UX)
  • 🐛 Fix Fix hologram viewer cleanup, Folia relayouts, and atomic save attributes

Stats

  • Preserve stats across resets and reconnects; modernize tracking and configuration
  • ✨ New Enable the missing TimesEaten statistic and placeholders

Update — September 28, 2026

Better Model

  • ✨ New Add Minecraft 26.3 support (nms/v26_R3)
  • Refresh dependencies for the OneBlock 26.3 runtime

Chat

  • 🐛 Fix Fix full adapter dependencies and Paper 26.3 skull profiles
  • Authenticate sender tags before resolving player data
  • Preserve processed chat when item hovers fail or exceed size limits

Creative

  • 🐛 Fix fix: ignore synthetic block-break permission probes
  • perf: cheaper tracked-block lookups under BlockPhysicsEvent (Sep 27 profile)

Farming

  • perf: cut four event/tick hot paths from the 2026-09-27 spark profile
  • perf(fieldcrops): let tickAll's idle skip and the near-scan decide without loading the crop

Fishing

  • Player UX: command list, onboarding, number formatting, codex progress, Bedrock form bodies (#649, #653, #672, #674, #676, #677, #678, #680, #681)
  • Persistence & admin: failed quit-save count, safe quarantine, UUID admin targets, scalable import/backup (#598, #599, #627, #628, #629, #630)
  • Seasonal events & crabs: wall-clock window, live open/stop, close refunds, Bedrock charm UX, crab hardening (#651, #662, #663, #664, #665, #666, #667, #668, #669, #670, #671, #682)

Islands

  • perf: cut per-lookup work on the island-at / move hot paths (spark 2026-09-27)
  • perf(util): ExpiringMap#get moves the entry's deadline instead of rescheduling its timer

Minions

  • perf: memoise the chunk scan's block classification; distance-first viewer filter
  • 🐛 Fix Fix lumberjack harvesting and replanting poplar trees

Mob Stacking

  • 🐛 Fix perf(spawner): memoize the resolved player-activation range per tile
  • perf(storage): don't encode the keys simple storage strips (26.3)

Rewards

  • feat(value-label): "$<value>" template, so money boards read "$1,234"
  • feat(leaderboards): /leaderboards menu built from rewards.yml and the rotation

mcMMO

  • Sync upstream mcMMO-Dev/mcMMO 2.3.003-SNAPSHOT
  • 🐛 Fix Fix Tricky Trials splash and lingering potion conversions

World Guard

  • perf: cheaper piston debounce key, entry bypass check and query cache hits

Update — September 27, 2026

Minions

  • 🐛 Fix Fix Collector and Slayer entity scans on 26.3

World Edit

  • 🐛 Fix Fix new wand creation on Minecraft 26.3

Update — September 26, 2026

Cached Player

  • ✨ New feat: add Paper 26.3 (ALPHA) NMS module (v26_3_R1)

Chat

  • ✨ New Add Paper 26.3 support (V26_3 NMS module)

Ender Chest

  • Load items on Paper 26.3 (CraftItemStack.asCraftMirror was renamed)

Heads

  • Accept MC 26.3 in the version check

Interaction Visualizer

  • ✨ New Add Paper 26.3 support (V26_3 NMS module)

Mob Stacking

  • Pre-emptive Paper 26.3 support: NMS module v26_3_R1
  • 🐛 Fix Address review findings #90–#147 (bugs, hot-path perf, Java/Bedrock UX, build)
  • build(deps): bump actions/cache from 4 to 6
  • build(deps): bump actions/setup-java from 4 to 6
  • build(deps): bump actions/checkout from 4 to 7
  • build(deps): bump org.junit.jupiter:junit-jupiter from 5.10.2 to 6.1.3
  • build(deps): bump actions/upload-artifact from 4 to 7
  • build(deps): bump org.yaml:snakeyaml from 2.2 to 2.7
  • build: preserve version-specific NMS dependencies in Dependabot
  • 🐛 Fix Fix dropper pre-merge item duplication
  • #159 follow-ups: localized stack tool reason, testable chance maths, CI hardening
  • build(deps): bump com.sk89q.worldguard:worldguard-bukkit from 7.0.4 to 7.0.19
  • build(deps): bump org.junit:junit-bom from 5.10.2 to 6.1.3
  • build(deps): bump io.netty:netty-all from 4.1.68.Final to 4.2.18.Final
  • build(deps): bump me.clip:placeholderapi from 2.11.6 to 2.12.3

Pets

  • Pre-emptive MC 26.3 support: version-26.3 module (v26_3)

Update — September 25, 2026

Creative

  • perf: three hot-guard trims from the Sep 23 oneblock profile

Rewards

  • test: pin boundary-check order, returns delivery pass and island-sweep decisions (#125)
  • 🐛 Fix fix(messages): missing keys use bundled text; stamp commit in version
  • 🐛 Fix fix(ledger): share one store base; guard pending-returns.yml
  • ✨ New test(snapshot): extract rollover state machine; add unit tests and CI
  • 🐛 Fix fix(trophies): keep trophies out of recipes and trades; stack to 1
  • 🐛 Fix fix(trophies): let held trophies use blocks; trim two hot paths
  • feat(events): event trophies via grant; tell players when granted
  • feat(claim-menu): keep menu open, Claim all, Bedrock details and Back
  • feat(trophies): /trophy alias, a usage lore line and a first-claim tip
  • 🐛 Fix fix(trophies): never drop a returned trophy; keep it owed until it fits
  • 🐛 Fix fix(podium): crown only real scores, mark ties, read all-time top-N
  • feat(announcements): trophy deadlines, join nudges, rollover digest
  • feat(hub): /trophies hub; /trophies last lists last period only
  • 🐛 Fix fix(trophies): return trophies from reset or deleted BentoBox islands
  • feat(snapshot): final capture before each reset, confirm right after
  • feat(moderation): eligibility rules, disqualify/requalify, safe revoke
  • 🐛 Fix fix: review residuals — DST previous period, capture read, exact tie warning, tie-out rows, name refresh (#125)
  • test: RewardConfig, RotationSchedule and reconcile-gate coverage; ajLB stub on the test classpath (#124)

World Guard

  • perf: world-config lookup by reference, session read before computeIfAbsent

Farming

  • feat(api): cosmetic work visuals for automation working a field crop (api 1.7.0)
  • ⚖️ Tweak perf(fieldcrops): raise SHARD_COUNT 64 -> 256, scale the reshard wait
  • 🐛 Fix fix(skilltree): convert PyroFarming Skill Archives and free stale archive slots (#815) thread
  • 🐛 Fix fix(shop): stop paying the price on the item for sell ids nothing defines (#816)

Fishing

  • Persist seasonal event armings and hunt state across restarts (#587)
  • Bingo: an expired round counts as the round a back-to-back winner sits out thread
  • Biomes & pools: port the live biome rename, opt-in legacy aliases, dead gates and Nether-only fish out of the draws (#615, #631)
  • Bingo: safer defaults, join notice + deadline, back-to-back disclosure, Bedrock where-to-catch, /fish bingo status (#597, #621, #622, #623, #625)
  • Baits & HUD: combo/bait/booster placeholders, removebait confirm, Bedrock shop lore, bait mapping doc (#619, #673, #683, #684)
  • Augments & rod skins: Bedrock recipe pages, cauldron ownership + Bedrock tap, salvage sink, re-skin owned rods (#594, #611, #612, #657, #659, #661)
  • Tournaments: own-standing placeholders, Bedrock %center%, reachable RANDOM_CATCH targets, quiet empty rounds, offline winners, /ft help (#624, #626, #656, #658, #660, #679)
  • Catch pipeline: bait-use switch, crouched reel, hot-path copies, combo switch, tsunami lore, Star Fall spawn, biome-at-hook (#596, #613, #614, #616, #617, #618, #620)
  • Deliveries: contained reward, join reminder, hand-in detail, fish-bag hand-in, Bedrock transit, removedelivery numbers, opt-in knobs (#600, #602, #633, #634, #635, #636, #637, #638, #639, #675, #685)
  • Economy: bulk sell/gut, sale preview, Fish of the Day visibility, scales net, locale-safe tokens (#602, #632, #640, #641, #642, #643)
  • Reload & config: pre-flighted reload, full validate coverage, health diagnostics, operator docs (#601, #644, #645, #646, #647, #648, #650, #652, #654)
  • Shellstice: refuse the orb spend while the event is not running (#589)
  • Fish of the Day: pick only fish everyone can catch (#585)
  • Totems: break room check, claim probe, ghost anchors, admin tooling, Bedrock detail, deposit order (#595, #603, #604, #605, #606, #607, #608, #609, #610, #655)

KOTH

  • #428 follow-ups (#425 group): adventureLinkage flags only ClickEvent.Action switches, totalCap wording, idle-lines lore
  • Perf quick wins: snapshot-free editor holder lookups (#374), boss bar name dirty-check (#376)
  • Round-end rewards: capture-end on round end, raw username tokens, offline SCORE rewards, end-reward to the member on the point, CaptureEnd pairing (#362, #363, #364, #371, #372)
  • Contest modes and zone feedback: payload owner release, no zombie reinforcements, %progress_owner%/%state%, in-zone action bars (#365, #366, #389, #380)
  • Team rewards, AFK/flying/vehicle eligibility, SCORE team handover (#383, #397, #398)
  • Teams, leaderboards & DB: BentoBox island keys + display names, warm win caches/boards, DB auto-reconnect & write retry, pool defaults, placeholder docs
  • Config & schedules: refuse saves over hand edits, reload validation, schedule list/preview/fire, weighted/shuffled/pre-drawn draws, restart awareness (#367 #368 #373 #399 #400 #401 #396)
  • Broadcast scope + player controls: broadcast-distances, /koth toggle, sound category, leading-edge swap-settle, player /koth status + join notice + /koth warp (#377 #378 #381 #384 #385) thread
  • Player info: /koth next, objectives and reward previews, typable list names, labelled clocks, idle holograms (#379 #382 #386 #390 #391 #392)
  • 🐛 Fix Bedrock & editor fixes: Floodgate-aware Bedrock detection, Bedrock-safe palette, CONFIRM/completion/givestarter fixes, legacy-chat prompt capture (#387, #388, #402, #369)
  • Build on the 26.2 API (JDK 25 toolchain), current JDBC libraries + JDK HttpClient webhooks, git version stamp (#406 #407 #408)
  • Bedrock /koth form menu (Floodgate/Cumulus, optional) + clear the Bedrock cache at join (#386, #418, #420)
  • Rewards follow-ups: pending-rewards file safety, own-token offline holds, [now]/[once] reward markers, honest fallback warnings (#420)
  • Player surface follow-ups: combat tag, warp and join notice, toggle, setwarp flag, %warp_hint%, next/list, objectives, placeholder text (#420)
  • #420 follow-ups: zone modes, BentoBox team keys, win cache races, database notes
  • 🐛 Fix #420 follow-ups: editor controls for idle lines and the rewards display, shadowJar/linkage build fixes, webhook text limits
  • Scheduler follow-ups (#420): console schedule editing, draw memory across restarts, resume interrupted rounds, #415/#417 review notes
  • #428 rewards follow-ups: pending-rewards header tokens, markers in front of TOP:, no empty reward lines, honest rewrite warning, copy seam
  • #428 follow-ups for #424: migration retry wording, foxkoth_meta probe, overlap-slot claims, doc corrections
  • 🚫 Removed #428 scheduler follow-ups: draw-memory persistence, resume countdown, schedule verbs, resume/disable wording
  • Player surface follow-ups from the #423 review: /koth toggle order, rewards-display warning and top-level scalars, %warp_hint% threading, docs (#428)
  • 🚫 Removed Bedrock forms follow-ups: pin the adapter's callers, text fallbacks, quiet disable race, pinned Floodgate API (#428)

Loot

  • feat: /lootin purge for data files whose container is gone
  • 🐛 Fix fix: make container storage durable and race-free
  • 🐛 Fix fix: loot generation fills, reads and clears the same slots
  • 🐛 Fix fix: protect loot containers from break dupes, hoppers and merges
  • 🐛 Fix fix: track elytra frames on every load and keep the packet thread off Bukkit
  • 🐛 Fix fix: config fallbacks, /lootin info and test, and dead code cleanup
  • 🐛 Fix fix: storage follow-ups: unreadable files, shutdown writes and Folia races
  • 🐛 Fix fix: one open event before any change, and a capture that survives hoppers
  • 🐛 Fix fix: keep golems out, and settle breaks only once they happen
  • 🐛 Fix fix: optional PacketEvents, and elytra tracking that survives reloads
  • 🐛 Fix fix: Spigot 1.20.3+, Folia GUI saves at disable, and dead code
  • 🐛 Fix fix: copies get their own data, and destroyed data is kept for restores

Minions

  • perf(chunkloader): copy the destination grid only for the furnace and crafter gates
  • feat(fishing): require water near a fishing minion and tell the owner when it has none (#465)
  • feat(farmer): keep swinging at FoxFarming crops between work ticks
  • 🐛 Fix fix(menu): no "connect chest" button on chunk loaders (#468)
  • 🐛 Fix fix(packet): only send a team REMOVE to a client that holds the team (#469)
  • 🐛 Fix fix(collector,slayer): work the square the range flames show, not a sphere (#470)

PvP Regions

  • Address the wave dungeon review leftovers (#3)
  • ✨ New Add co-op wave dungeon mode to arenas

Vouchers

  • 🚫 Removed Elysium notes: /withdraw elysium via FoxFarmingAPI, shipped disabled (#95)
  • Protect vouchers from vanilla mechanics and accidental block redeems; cheaper interact path (#74 #75 #82 #93)
  • 🐛 Fix Fix /voucher give lookup and feedback; run Tebex voucher commands only after payment; correct /xpbottle %amount% (#76 #77 #78 #81)
  • Report config.yml gaps instead of rewriting it; accept flat sound entries; migrate lang.yml defaults; upgrade runbook (#80 #79)
  • Single-transaction redeem, batched note/bottle mints, indexes, recipient/source columns (#83 #84)
  • /withdraw and /xpbottle: amount shorthand, all/max, informative bare commands, aliases, /vouchers help (#86 #87 #88 #94)
  • Specific error messages with refs, the live lang keys, redeem messages, richer requirements (#90 #91 #96)
  • Bedrock: confirm form names the voucher; forms for bare /withdraw and /xpbottle; redeem tip (#92)
  • Configurable cash note / XP bottle templates; custom-model-data, item-model, glint and flags (#90 #98 #86 #93)
  • Admin tools (/voucher inspect, lookup, revoke, restore, history, stats, validate), load-time config validation, /vouchers check (#97 #99 #84 #93)
  • Queue overflow instead of dropping it; /vouchers claim; join notices; deliver to the live session (#89)
  • Sneak to bulk-redeem; /withdraw merge and /xpbottle merge; confirm-menu-default and per-voucher bulk: false (#85)

Warps

  • feat(search): find warps by what their QuickShop shops sell (#214)
  • 🐛 Fix fix(search): keep CHAT-mode search answers out of legacy chat plugins (#177)
  • 🐛 Fix fix(stats): durable explored credits, empty-until-loaded placeholder, lock-index unloaded-world throw (#179 #180 #181)
  • perf: load warp destinations asynchronously; never sync-load neighbours for safety checks (#184, #187)
  • 🐛 Fix fix: main/sub swap side effects — ratings/categories in memory, owner-level bump cooldown, ban and whitelist (#194 #195 #196)
  • perf: exact lookup first in the physics handler; gate the lock guards by locked-sign reach (#185, #186)
  • Owner lookup: no Mojang calls, Bedrock/nickname/prefix matching, suggestions, /pw aliases
  • 🐛 Fix fix(featured): carry paid slots through moves, no charges for locked warps, feed the queue, honour free prices
  • 🐛 Fix fix: leaderboard sort race, cooldowns across relog, vanished visitors, self-favourites (#182 #197 #198 #199)
  • perf: menu item template churn and placeholder/PAPI cache leftovers (#188, #189)
  • feat: mark, sink and explain locked warps; skip them in random (#209)
  • 🐛 Fix fix(ux): literal commands in click messages, reasons in dead-end errors, help/label consistency (#204 #210 #211)
  • chore(logs): one-line boot hints, /wwarp admin purge-inactive, configurable Hikari lifetimes (#217)
  • ✨ New Warp creation UX: lenient [welcome], create/delete how-to, keep warp on header edit, visible descriptions, unsafe-warp notices
  • Bedrock forms (Floodgate), My warp hub, confirm before paid actions (#200 #201 #202 #203)
  • Menu: configurable favourite clicks, page indicator, fuller grid (#208, #215)
  • feat(search): Paper dialog search prompt for Java players (#201 Java half)
  • feat(bedrock): commands form for /pwarp help, settings form for /pwarp toggle (#211)
  • 🐛 Fix fix(label): typed label kept by buttons and single-reader clicks, broadcasts on the default label; no hard-coded labels in messages (#241)
  • 🐛 Fix fix(purge-inactive): report every row at shutdown, no stack trace on a stop, accurate boot summary (#239)
  • 🐛 Fix fix(teleport): re-check bans and locks after the async destination load (#240)
  • 🐛 Fix fix(featured): refund flags need admin.featured; no dead-end featured offers; release stranded slots with a refund (#237 #238 #244)
  • 🐛 Fix fix: owner lock follows the main role; management and creation UX leftovers (#236 #243)
  • 🐛 Fix fix(bedrock): forms follow-ups — parity, confirm price pinning, refusal notices, status consolidation (#242)
  • 🐛 Fix fix(search): item search follow-ups — exact names above sellers, trusted names, coverage, freshness, /pwarp shop fallback (#245)
  • 🐛 Fix fix(menu): fill menu placeholders in one pass so player-typed values stay literal (#254)

Parkour

  • feat(duel): watch past duels back — both runs, racing again
  • 🐛 Fix fix(menu): Bedrock form buttons re-check the session; an unbuildable form falls back to the chest (#1224, #1226)
  • 🐛 Fix fix(menu): paginated rows go where the layout says, not wherever firstEmpty() points (#1222)
  • 🐛 Fix fix(menu): open() says whether it opened; MenuHandler.tryOpen replaces the copied guards (#1221)
  • 🐛 Fix fix(menu): a biome picker older than /fp reload says so when its pick is withdrawn (#1225)
  • test(build): drive the biome picker end to end; tidy its leftovers (#1223, #1227)
  • 🐛 Fix fix(duel): replay browser reads map/order from the DB; map "delete replays" purges archived duel runs; shared spectate teardown (#1235, #1240, #1260, #1245)
  • 🐛 Fix fix(shop)/feat(cosmetics): charge only the shown price after /fp reload; tags re-read limits; earned-only cosmetics (#1258, #1257, #1217, #1216, #990)
  • 🐛 Fix fix(menu): missing or broken menus.yml sections use the jar's; menus checked once at load; one bundled-file cache and one warn-once hook (#1255, #1243, #1228, #1218, #1248)
  • 🐛 Fix fix(play/newcomer): dismounting a minecart keeps the run; browse picks while spectating start; starter playlist skips a bad map (#1252, #1241, #1259, #1231)
  • 🐛 Fix fix(menu): every menu form refuses a dead session; leaving build mode answers the form on screen (#1234, #1237, #1244, #1249, #1254)
  • 🐛 Fix fix(menu): chest clicks handled a tick after InventoryClickEvent; paginated load failures, empty server pages, placement policy, rowSlots, Replacer race (#1247, #1251, #1250, #1256, #1246, #1253)

Advanced Achievements

  • Merge upstream 12.0 and keep the public API for FoxKingdoms

Grief Prevention

  • 🐛 Fix fix: claim-command UX - overdrawn shrink, abandon prompts, resize detail, paged /claimslist (#459, #460, #465, #466, #468, #470, #477, #494, #495, #496)
  • 🐛 Fix test: fix two intermittent test failures (IgnoreLoaderThread mock race, weakly-held mock worlds)
  • 🐛 Fix fix: claim protection vs copper golems, raids, bone-mealed trees, brushing and arrow buttons (#458, #473, #474, #475, #476)
  • 🐛 Fix fix: grant-only trust inherits and honours public; stick and denial-hint fixes (#461, #462, #481, #482, #492)
  • 🐛 Fix fix: save the name directory, index giant claims per cell, trim hot-path costs (#455, #464, #478, #479, #484, #485, #486, #487, #488)
  • 🐛 Fix fix: marketplace offer integrity, plot-sale keep-out, post-settlement transfer event and /giveclaim (#454, #463, #472, #483)
  • 🐛 Fix fix: trust names, keywords, all-claims confirm and trust-menu follow-ups (#456, #457, #467, #469, #471, #480, #489, #490, #491, #493)

Teams

  • 🐛 Fix fix(users): run player-record continuations on the player's thread
  • 🐛 Fix fix(chat): bump MineDown to 1.7.6 so messages parse on Adventure 5
  • 🐛 Fix fix(members): resolve targets from the team roster; rank-check kicks
  • 🐛 Fix fix(gui): confirm destructive GUI actions and ask for the team name
  • 🐛 Fix fix(teleport): GUI + cross-server home/warp routing, warmup cooldown
  • 🐛 Fix fix(sync): harden broker messaging and pin connection-bound settings
  • 🐛 Fix fix(hooks): correct PAPI values and LP team-name; index team names
  • 🐛 Fix fix(invites): invite lifecycle, /team accept, join fees, owner limits
  • 🐛 Fix fix(economy): create fee gate, shutdown-safe payouts, money format, bank
  • feat(naming): word filter, normalised name checks, rename fee+cooldown
  • 🐛 Fix fix(teams): guard disband, drop stale chat toggles, check /tc mutes
  • 🐛 Fix fix(team-list): page lazily, add search, stop the head lookup 429 storm
  • 🐛 Fix fix(combat): block potion friendly fire, add ally accept, fix teamview
  • 🐛 Fix fix(messages): MineDown-escape player text, literal names, &#RRGGBB
  • 🐛 Fix fix(storage): flush only changed teams, queue kill deltas, guard replays
  • feat(commands): generated /team help, forgiving input, no @Values dumps
  • 🐛 Fix fix(echest): replay chest saves, close revoked views, tidy backups
  • 🐛 Fix feat(admin): inactive-team cleanup; fix /ta team, API checks, last_login
  • ✨ New feat(teams): add join requests, /team who, stats, roles, chat toggle
  • feat(gui): Floodgate forms for Bedrock players in the team menus
  • 🐛 Fix fix(storage): report failed deletes, retry loads, evict missing rows
  • 🐛 Fix fix(messages): correct default texts and misleading command replies
  • 🐛 Fix fix(teams): save setting changes by CAS, tell members, add API events

Wild TP

  • Perf/26.3 rtp search
  • Landing safety: judge feet/head by collision, not "is air" (#89)
  • Never overwrite an unparseable config.yml; back up before updates (#123)
  • FoxKingdoms hook reads the in-memory claim registry; drop Towny (#94, #95)
  • Round 4 (1/7): LF line endings, one Java 21 jar for all servers, commit-stamped version, tests + CI (#120 #121 #122)
  • Round 4 (2/7): portals fire on the block entered, portal use permission, safe Portals.yml, portals in unloaded worlds (#98 #101 #102 #103)
  • Round 4 (3/7): one teleport pipeline for every entry point; economy, /wild <player>, outcome stats (#78 #79 #80 #81 #82 #83 #99 #107 #110 #112 #114 #119 #126 #127 #128)
  • 🚫 Removed Round 4 (4/7): config and lifecycle safety: unknown-key warnings, no-region warning, safe config updates, debug interceptor, disable cleanup (#115 #117 #118, parts of #125 #133)
  • Round 4 (5/7): messages: lang file migration, complete translations, MiniMessage/hex, player help, Bedrock form info, sign/icon checks (#104 #105 #106 #108 #109 #111 #113 #116)
  • Round 4 (6/7): claim hooks: area queries, one guarded filter per hook, FactionsUUID 4, uncovered-plugin warning (#96 #97 #100)
  • Round 4 (7/7): location generation and biome index: packed index, world border, landing biome, world lifecycle, ceilings, validation (#84 #85 #86 #87 #88 #90 #91 #92 #93 #125 #133)
  • Follow-ups (1/6): portals: list malformed entries, riders trigger portals, reload keeps unsaved portals (#145 #149)
  • Follow-ups (2/6): teleport pipeline: dead or leaving targets, refusal hints, teleport errors, clearer /wild replies (#148 #149)
  • Follow-ups (3/6): messages: prefix colour carries over, blanked lines send nothing, lang migration edge cases (#148 #149)
  • Follow-ups (4/6): claim hooks: Residence 5.0.2.1+ per-chunk lookup, FabledKingdoms empty lands, KingdomsX verified, "try again later" when checks go unanswered (#144 #149)
  • ✨ New Follow-ups (5/6): lifecycle: one safe file writer (fsync, own temp file, permissions, dangling links), interceptor restore, clean refusal of a same-instance re-enable (#148 #149)
  • Follow-ups (6/6): biome index: /wtp reindex, coarse index for huge regions, configurable border margin, moving border, hyphenated datapack biomes (#141 #142 #143 #148 #149)

Update — September 24, 2026

Stats

  • blocks_placed: count hand placements only, not /pwe wand builds thread

Auctions

  • 🐛 Fix fix(importer): accept AuctionHouse's "Vault/Vault[/$]" currency shape
  • Close listing custody gaps: owed bin failures, displaced-bid refunds on lost ACKs, /fa return stamp CAS, split ordering, seize of settled auctions
  • Fail closed without an economy, pin the escrow model across restarts, and tell unescrowed bidders
  • Outage latch on player paths, fast /ah during outages, login-delivery release, stored-first names
  • Request settle probe and batching, sell give-back guards, receipt timestamps, durable owed notices
  • Detection alerts, player-text escaping and stale prose (C7)
  • 🚫 Removed Lifecycle: drain accepted hops at disable, finish in-flight work, boot retry, PAPI isolation, JDBC tripwire
  • Staff commands: admin-log parity, own /fa clear node, reconcile guard, API events
  • GUI click safety: arm commit prompts, guard repainted bids, ordered preference writes, reuse the parent screen, one reload per menu
  • Bedrock dead-ends: winning rows, owner-screen Back, bin rows, accept prompt stakes, Edit price re-prompt, typeable broadcast codes
  • GUI polish and pricing: readable item names, Time Left, Edit price route, typed amounts, Sell button (C10)
  • 🐛 Fix Request UX: cap requests at one stack, say the fill takes the main hand, name the item in /ah request, and close a stale-player fulfil dupe
  • Search and browse: space/plural-tolerant search with did-you-mean, real paging past 180 rows, bid-aware price sorts, live browse title, filtered-empty card
  • Bedrock forms UX: dropdown settings, typed sell price, controls-first browse, button icons
  • Player commands: 10k/1.5m prices, typo and search fallbacks, shorter help, /ah worth, quieter listing announcements
  • Drop each in-memory test database when its test closes it
  • Request withdrawals: /ah cancel all no longer blames staff for a player's own withdrawal, one economy read for the held notice, and /fa clear clears a requests-only player behind its veto and admin-log row
  • Typed-price prompts: re-check the picker's node when a typed amount lands, hand Bedrock forms escaped markup instead of flattened text, and re-send an unparseable price with the text kept and a way back (part of #690)
  • Item names and search: /ah worth reads names as /ah request does, search matches the game's item names, refuse ambiguous and unfillable request names, blank request prompt cancels
  • ⚖️ Tweak Browse paging under prompts: a Next or filter change that lands while a prompt covers the browse comes back on the right page, the listing-announcement setting puts back by press, one line per outage refusal, quieter catches, and Bedrock empty-state icons (part of #690)
  • Operator records: name every stranded-sale owe's id, settle unconfirmed sales by their own transaction, point /fa return and /fa owed at the give-once records, name a throwing split-seller provider, audit /fa owed pay on the drain
  • Escaping and staff display: escape every bracket and backslash, escape /fa frozen reasons, name /fa alertlist subjects, detail on price-limit and prune vetoes, admin-log details as written, and own hops for the sold post's name and the outbid notice
  • ✨ New Claim outage lines: a Claim All whose claims or stamps fail on storage says so once, in a line true for a partial batch, and a claim that just said storage failed no longer adds menu-unavailable under it
  • 🚫 Removed Operator lines at disable and on unconfirmed debts: the drain's pre-run list is a record that grants nothing, a claimed item's restore goes through /fa return --force, and an unconfirmed debt names its id for /fa owed pay

World Edit

  • Wand placements are not hand placements: WandBlockPlaceEvent + no Jobs income (#40) thread
  • Pin compiler + surefire plugins so the build works on Maven 3.6
  • ⬆️ Improvement Recognise wands upgraded to netherite in a smithing table
  • Refuse blocks whose item places a different block (filled cauldrons)
  • Keep /pwe on the survival side of FoxCreative

Update — September 23, 2026

Parkour

  • feat(newcomer): /play starts Start Here, hard maps ask first, hidden maps for newcomers (#1229)

Stay up to date

Every change to the servers shows up here once it is live.