Changelog
[2026.05.29] - Align Hide and Seek Operator Status
Added
- Extend
/play infoso viewers can see whether the current Hide and Seek session setup is already confirmed, and owners can see the current pending join-request count without leaving the in-game operator flow.
[2026.05.28] - Add Authenticated Hide and Seek Session Status
Added
- Add
/api/public/minigames/hide-and-seek/currentas an authenticated session-scoped status route so owner or participant surfaces can read the active Hide and Seek runtime without relying on in-game commands. - Include owner-facing session flags on that route, including
settingsConfirmedand the current pending join-request count, alongside the existing role and phase snapshot.
[2026.05.27] - Publish Hide and Seek Runtime Summary
Added
- Expose an additive
hideAndSeekruntime summary on/api/public/status, so web and launcher-facing status consumers can see live session/state and role-count totals without scraping logs or in-game commands.
[2026.05.26] - Add Hide and Seek Round Reset
Added
- Add
/play resetas a safe operator intervention path for active minigame countdowns and rounds, so owners can abort a running Hide and Seek session back to lobby setup without discarding the configured template or spawn points. - Rematerialize a fresh minigame play instance during round reset, clearing live phase, ready, reconnect, and result state before participants ready up again.
[2026.05.25] - Fail Closed On Editor Permissions
Fixed
- Deny unauthenticated editor REST requests before protected handlers run.
- Protect monitoring and playtime editor routes with explicit page access rules.
- Deny Axiom editor permissions while the permission backend is unavailable.
[2026.05.25] - Add Hide and Seek Operator Readout
Added
- Extend
/play infoso active Hide and Seek sessions expose public round state, ready and remaining timing, role counts, seeker-limit usage, and final result context directly from the runtime.
[2026.05.23] - Define Hide and Seek Vertical Slice
Added
- Document the first playable Hide and Seek slice for the existing Gameserver minigame runtime.
- Define the public round state contract, hider/seeker/spectator roles, dynamic seeker promotion, win conditions, and minimal result events.
[2026.05.21] - Execute Experience Lua Scripts
Changed
- Run Experience startup scripts through a sandboxed Lua interpreter instead of source scanning, while still returning only validated Experience API commands to the GamesHost.
Added
- Expose script event fields and payload values to Lua scripts so startup behavior can branch on runtime context without direct host access.
[2026.05.20] - Expose Current World Locations
Added
- Allow UeblicheEngine current-world editor sessions to materialize stored world locations as editable marker nodes and write moved marker positions back to world location data.
[2026.05.20] - Bound Engine Editor Metadata Loads
Fixed
- Keep UeblicheEngine editor catalog, template, and draft metadata lookups bounded so slow storage cannot make the in-game editor transport time out.
[2026.05.20] - Fix Engine Editor Plugin Messages
Fixed
- Read and write UeblicheEngine editor plugin messages as raw Fabric payload bytes so the in-game editor transport can exchange JSON envelopes with the Gameserver.
[2026.05.20] - Allow Local Dev Super Admins
Added
- Allow accountless local Launcher smoke tests to mark offline UUIDs as super admins through
UEBLICHE_DEV_SUPER_ADMIN_UUIDS, avoiding permission lookup stalls during command tree generation.
[2026.05.20] - Bound Command Permission Checks
Fixed
- Bound synchronous command permission checks so slow Mongo lookups cannot stall player initialization or disconnect local Launcher smoke tests.
[2026.05.20] - Fix Offline Skin Checks
Fixed
- Ignore missing skin payloads during Gameserver skin review so offline Launcher accounts can join local smoke tests.
[2026.05.20] - Add Offline Dev Auth
Added
- Allow local Gameserver starts to use Minestom offline auth with
OFFLINE_MODE=truefor accountless Launcher smoke tests.
[2026.05.20] - Add Experience Runtime Bridge
Added
- Add a GamesHost Experience script-worker process runner with heap limits, timeouts, output limits, malformed-response diagnostics, and kill-on-timeout handling.
- Package the Experience script worker as a standalone runtime JAR and copy it into the Gameserver Docker image with
EXPERIENCE_SCRIPT_WORKER_JARconfigured. - Add a GamesHost Experience script-worker runtime component that exposes the configured external worker to server-side Experience execution.
- Add Public API bridge mappings for Experience script validation, Presence updates, live runtime status, live start, and live stop editor operations.
- Materialize Experience playtest and live starts as local GamesHost world-stack instances, and run startup scripts through the external worker with server-side command validation.
Fixed
- Fix current Gameserver feature compilation blockers in metadata holder construction, debug-sidebar component joining, and player report hover payloads.
- Restrict the Arcane dependency repository lookup so local builds can continue when the upstream Maven host is unavailable.
[2026.05.16] - Use Public API Friends
Changed
- Route
/friendlist, requests, add, accept, decline, cancel, and remove through the Public API Friends server endpoints.
Removed
- Remove local Gameserver Friends persistence, local Friends REST routes, and the local Friends live WebSocket.
[2026.05.16] - Use Public API Parties
Changed
- Route
/party, voice bridge grouping, shared-hub heartbeats, and minigame party ownership through Public API party snapshots. - Keep minigame-local
partyIdonly as a setup key while refreshing leader and member state from the Public API.
Removed
- Remove local Gameserver party persistence,
User.partyId, open parties, and custom party size handling.
[2026.05.03] - Server Defined Social Chat Channels
Changed
- Send Social chat channel definitions from the Hub and GamesHost so the Hub offers only Global chat while team-capable rounds can enable Team chat.
[2026.05.03] - Scope Games Chat Channels
Changed
- Format GamesHost chat as explicit
GlobalandTeamchannels, and keep Global chat scoped to the current match instance instead of every online player on the host.
[2026.05.01] - Reuse Permission Decisions
Changed
- Route legacy Gameserver command permission precedence through the shared permission decision library while keeping the existing Mongo permission storage schema.
[2026.05.01] - Match SkyBlock Fluid Physics
Fixed
- Run SkyBlock water and lava updates on the Minestom instance tick so their flow timing matches vanilla-style water and overworld lava delays.
- Prevent fluids from spreading sideways before they can fall downward, and treat unloaded chunk edges as blocked instead of crashing fluid updates.
[2026.05.01] - Reuse Combat Damage Text
Changed
- Reuse the shared Minestom combat text display for generic Gameserver campfire damage.
[2026.04.26] - Add Gameserver Connect SDK integration
Added
- Add a Connect SDK bridge so the Gameserver can auto-register, publish a
minecraft-tcpGateway route, and send public server status snapshots through the Public API. - Add Connect runtime configuration for persisted
connect.jsoncredentials, Gateway target selection, optional public capacity, snapshot refresh, and retry behavior.
Changed
- Separate
/readyzinternal connection-route readiness from Connect SDK readiness so dev stays tolerant while preview and production can require Connect withCONNECT_REQUIRED=true. - Mount persisted Connect configuration in Gameserver deploy stacks so auto-registration credentials survive container restarts.
[2026.04.20] - Expose main manifest patch state
Added
- Add
/api/world/patch/main-manifestso internal operators can inspect the active main-world manifest, including the released base map version and currently live approved patch-set ids.
Changed
- Extend
/api/world/patch/brancheswith patch-set, review, merge, and live-on-main-manifest metadata so dashboard tooling can distinguish queued submissions from changes already shipped on the active runtime stack.
[2026.04.15] - Refresh citybuild patch priorities
Changed
- Reframe the citybuild/world-patch delivery plan around the current repo state: the first operator routes are already shipped, page-access coverage now guards the new district and patch branch endpoints, and the top next slice is a read-first Maps dashboard surface rather than more backend expansion.
[2026.04.14] - Add citybuild patch operator routes
Added
- Add
/api/world/citybuild/districtsso operators can list citybuild districts without going through raw Mongo inspection. - Add
/api/world/patch/branchesplus branch open/submit endpoints so the already-wired world patch workflow has a first internal REST surface for preview branch operations.
Changed
- Reuse the existing maps editor permission nodes for the first citybuild/world-patch operator slice, keeping access control consistent until a dedicated dashboard module exists.
[2026.04.14] - Add account badge foundation
Added
- Add a shared account-badge model plus derived badge resolution for Premium support, Discord boosting, login streaks, cheat reports, and bug reports on user payloads.
- Add a dedicated editor route for replacing manual user badges so founder, event, and winner badges can be granted without direct Mongo edits.
- Add
/api/events/{id}/badges/grantso event-specific participant or winner badges can be granted in bulk to pasted UUID or username lists.
[2026.04.13] - Prioritize citybuild patch workflow
Changed
- Document the already-wired citybuild/property and world-patch runtime as the next Gameserver delivery slice so planning now reflects the existing services, world-stack integration, and Mongo-backed domain model instead of treating it as a distant backlog idea.
Added
- Add a dedicated feature plan for the first operator-facing citybuild/world-patch workflow, centered on narrow district and branch management routes before broader dashboard or economy work.
[2026.04.11] - Add builder mode to UeblicheEngine sessions
Added
- Add builder-aware
UeblicheEnginesession commands for selection points, block edits, clipboard transforms, template save/load, player utilities, and world property overrides on top of the existing scene editor routes. - Add
/api/engine/templatesfor listing native builder clipboard templates directly through the engine transport.
Changed
- Bind engine sessions to live editor instances and enrich session snapshots with builder context, selection/cursor presence, clipboard summaries, reservation ownership, and builder undo/redo depth.
- Gate builder commands behind the new
mods:uebliche_engine.*permission family and migrate matching legacy Axiom builder grants onto the new nodes during permission registry startup.
[2026.04.10] - Add moderation evidence bundles
Added
- Add a moderation evidence capture pipeline for player reports that persists a
-5m/+5mforensic window with raw timeline events, inventory snapshots, chat references, and a dedicated Mongo bundle document. - Add moderator read APIs for report bundles and raw report timelines so staff can inspect captured movement, commands, chat context, and linked evidence directly from the editor.
- Add live staff notifications for newly created reports so online moderators with the matching dashboard read permission receive both a chat message and an in-game toast immediately.
Changed
- Start evidence capture automatically when a
PLAYERreport is created ingame or through the editor API, and extend report payloads with bundle lifecycle fields such as capture windows, bundle status, and timeline counts. - Enrich stored chat messages with instance and channel context so report bundles can reconstruct both the reported player's messages and surrounding conversation in the same time window.
- Move moderation evidence capture onto the shared
libs/moderation-evidencemodule tree so loader-free rules, Minestom event normalization, and Mongo time-series setup stay separated behind the canonical core/adapter/storage split.
[2026.04.08] - Add performance spike incident monitoring
Added
- Add a shared tick-performance probe plus a
/metricsendpoint so the Gameserver now exports MSPT, heap, CPU, player, instance, Mongo latency, and incident metrics directly to Prometheus. - Add a persisted
performance_incidentsworkflow with MSPT spike detection, 90-day retention, log-excerpt capture, and editor API routes for listing and inspecting incidents.
Changed
- Drive the ingame debug sidebar MSPT history from the shared monitoring probe so the sidebar, incident detector, and Prometheus metrics all observe the same tick signal.
- Emit structured Gameserver monitoring logs when performance incidents open, escalate, and resolve so spike investigations stay visible in the existing live log stream.
[2026.04.06] - Reduce join stalls on slow login lookups
Changed
- Bound slow login-time ban, maintenance, and last-location lookups with short fallbacks so players are not held in configuration for multiple seconds when Mongo is slow or cold.
- Prefer valid local dev resource pack ZIPs from the Gameserver workspace during local runs so builders can test fresh packs without waiting for broken CDN artifacts to be replaced.
- Restore PackSquash ZIP obfuscation for published resource packs while disabling ZIP reuse metadata so changing protection settings does not silently poison later builds.
Added
- Log slow login configuration and spawn-resolution steps so delayed joins can be traced directly from Gameserver logs.
- Expose a local dev resource pack download route on the Gameserver web port so local clients can keep using plain, Minecraft-compatible ZIPs even while publish builds stay obfuscated.
[2026.04.06] - Add branch preview gameserver deploys
Added
- Start a dedicated preview Gameserver stack for non-default Git branches so backend changes can be validated ingame before merging.
Changed
- Route branch preview deploys through the shared default proxy instead of trying to stand up a second branch-specific proxy on the same public Minecraft port.
- Refresh the Gameserver container build inputs for CI so branch preview images include the locally versioned Minestom kit modules required by the current Gradle project graph.
[2026.04.06] - Update Minestom to 26_1 snapshot
Changed
- Bump the shared Gameserver Minestom dependency from
2026.03.25-1.21.11to26_1-SNAPSHOTand resolve it through Sonatype snapshots so local builds can track the current upstream 26.1 draft line. - Switch Gameserver time-freeze handling from the removed
setTimeRate/setTimeSynchronizationTicksAPI to the new default-clock pause/resume flow introduced by Minestom 26_1.
Fixed
- Adapt Axiom block break/place event dispatch to the Minestom 26_1 constructor signatures so editor-side block changes compile and keep firing the expected cancellable player events.
[2026.04.06] - Add UeblicheEngine editor scaffold
Added
- Add an in-memory UeblicheEngine editor scaffold inside the Gameserver with collaborative scene sessions, node locks, volume reservations, patch streaming, undo/redo, and publish snapshots.
- Add
/api/engine/*editor transport routes plus dashboard access rules and permissions for engine scenes, sessions, commands, and publish actions.
[2026.03.29] - Add regional shared hub coordinator
Added
- Add a Redis-backed shared-hub coordinator inside the Gameserver for player heartbeats, shard heartbeats, migration tickets, party co-location requests, and match allocation decisions.
- Add internal
/api/internal/shared-hub/*routes so shards can publish heartbeats, request co-location, ack migration tickets, and inspect active shard/ticket state. - Add targeted Gameserver tests for shared-hub region selection and migration-ticket lifecycle handling.
Changed
- Publish regional shard heartbeats and remote-avatar caches from the Gameserver so cross-region hub presence can be mirrored per zone instead of only locally.
- Merge remote shared-hub players into the existing launcher/social presence export so cross-region users become visible in the public presence read model.
- Gate the shared-hub runtime behind
SHARED_HUB_ENABLEDand optional Redis configuration so existing environments stay unchanged until the feature is configured.
[2026.03.29] - Add overlay group event activation
Added
- Add overlay-level groups and priority so builders can tag event-ready schematic overlays directly on the overlay definition instead of encoding season logic into placement rules.
- Add ingame
/overlay groups,/overlay group add|remove|clear,/overlay priority,/overlay preview-group, and/overlay preview-eventcommands for assigning overlay groups and previewing event-driven selections inside editor instances.
Changed
- Merge all event-selected overlays for a map version into one composite runtime overlay so seasons, holidays, and temporary world events can stack through
overlayGroupsandoverlayKeys. - Extend temporal event overlay actions to understand
overlayGroupsandoverlayKeyswhile keeping the legacy singleoverlayKeypayload compatible. - Persist active overlay selections with resolved overlay keys and overlay groups so block-applied event overlays restore cleanly after instance restarts.
- Let cloned minigame arenas inherit the active map-version overlays and layer additional
minigame/...overlay groups by template, state, and phase so arena-specific seasonal/event dressing can react automatically at runtime. - Bump the Gameserver's shared Minestom dependency from
2026.03.03-1.21.11to2026.03.25-1.21.11to pick up the latest upstream 1.21.11 fixes and runtime improvements.
[2026.03.21] - Harden minigame start flow
Changed
- Wait for all online player transfers into the arena to finish before the first minigame phase starts so countdown completion no longer races ahead of teleports and loadout application.
- Remove failed game-start joins from the round before phase execution begins instead of leaving partially joined players in team state.
Fixed
- Separate PvP elimination from the generic voluntary leave flow so combat removals no longer depend on the broader lobby-exit path.
- Clear transient minigame runtime state such as frozen-player tracking and pending respawns when a participant is removed from a round.
[2026.03.21] - Add cookie-based reconnect resume
Added
- Add encrypted Minecraft resume cookies backed by Mongo reconnect sessions so players can be restored after a gameserver restart instead of only being kicked back to a lobby.
- Add reconnect session storage with TTL cleanup and restore targets for the main world, map worlds, and map editor instances.
- Add token codec coverage for reconnect cookie round-trips and tamper rejection.
Changed
- Start a reconnect drain when the gameserver shuts down so existing players receive a resume token before the shutdown grace period ends.
- Request resume cookies on player load and restore matching sessions back into the correct world or editor instance after reconnect.
Fixed
- Block new joins while a gameserver is draining for restart so fresh logins do not enter a backend that is already on its way down.
[2026.03.21] - Move map version payloads to GridFS
Changed
- Store
MapVersionterrain payloads in Mongo GridFS while keeping only map version metadata in themap_versiondocuments. - Load map version Polar data lazily from GridFS for editor opens, previews, render generation, and transfer-zone alignment instead of embedding the full binary payload in every Mongo read.
Fixed
- Migrate legacy inline
map_version.datapayloads into GridFS on boot and on first access so older worlds continue to open without a one-off manual migration step. - Keep map version create, update, and editor save flows consistent with the new payload backend, including GridFS cleanup when a payload is replaced or a write fails.
[2026.03.21] - Move world history to Mongo and GridFS
Changed
- Move editor world history storage from the local Git repository to Mongo metadata plus GridFS snapshot archives while keeping the ingame
/historyflow intact. - Materialize history previews and visual history diffs from Mongo/GridFS archives instead of from local Git checkouts.
Removed
- Remove the dedicated JGit-based world history backend and its Gameserver dependency path.
[2026.03.21] - Add visual history diff overlays
Added
- Add a visual history diff mode for editor worlds that renders glowing green and red block displays around the builder's current position.
- Add
/history diff,/history prev,/history next,/history refresh, and/history clearso builders can step through commit-to-commit world changes ingame. - Add analyzer tests for local block-diff classification and diff truncation limits.
Changed
- Extend the ingame history detail view with a one-click visual diff action that opens the selected commit as a red/green world diff instead of only as a read-only snapshot world.
[2026.03.21] - Add ingame world history viewer
Added
- Add an ingame
/historyviewer for editor worlds with paged commit browsing, commit details, and one-click snapshot preview worlds. - Add an ingame history commit flow so builders can capture named world snapshots without leaving the editor.
- Add targeted unit coverage for the new snapshot history backend, including commit listing, diff details, and commit materialization.
Changed
- Store editor world history in a Git-backed snapshot repository so map edits can be reviewed as commits instead of only transient undo stacks.
- Initialize the snapshot history repository automatically when the Gameserver boots so history browsing works before the first manual setup step.
[2026.03.21] - Expand ingame WorldEdit region tools
Added
- Add direct editor commands for
set,walls, andfacesso common shell and fill edits no longer need the broader/we ...wrapper. - Add block-mask matching for region edits and replacements, including comma-separated block lists and partial block-state filters like stairs facing.
- Add unit tests for block-mask parsing and for the exact block coverage of
wallsandfaces.
Changed
- Parse WorldEdit replacement and fill blocks as full block states so commands can place configured variants instead of only plain base blocks.
[2026.03.21] - Add ingame WorldEdit command suite
Added
- Add an editor-only
/wecommand suite for region selection, copy, cut, paste, rotate, replace, stack, move, undo, and redo workflows. - Add a transient per-player clipboard and undo/redo history for ingame world editing in editor instances.
- Add direct editor shortcuts like
/copy,/paste,/undo,/redo,/move,/stack,/pos1,/pos2, and/wand. - Add unit tests for WorldEdit selection math and clipboard rotation/materialization.
Changed
- Apply command-driven WorldEdit block changes in chunk-aware tick batches instead of one giant synchronous write burst.
- Add a vanilla-style WorldEdit wand item that sets
pos1andpos2directly from block clicks inside editor worlds.
[2026.03.21] - Auto-align transfer zone overlaps
Changed
- Add optional target regions to transfer zones so editor handoffs can preserve the player's relative position instead of always dropping into the target world's default entry point.
- Add a block-data based transfer-zone alignment endpoint and editor workflow that nudges an approximate target region onto the best matching overlap in another map version.
- Extend the map editor transfer-zone form with explicit target bounds, priority editing, and one-click auto-alignment for map-version targets.
Fixed
- Keep transfer-zone handoffs spatially consistent across overlapping corridors, stairs, and similar mirrored transitions once a target region is configured.
[2026.03.21] - Harden transfer zone routing
Changed
- Type transfer-zone targets explicitly as instance or map-version destinations while keeping the legacy flat target fields readable for existing dashboard payloads.
- Prioritise overlapping transfer zones deterministically by priority, threshold, and zone size instead of relying on config order.
Fixed
- Stop transfer zones from starting duplicate asynchronous map-version transfers for the same player while one handoff is already in flight.
- Move async map-version handoffs back onto the main server tick before calling
setInstance, avoiding off-thread instance transfers.
[2026.03.21] - Add ingame inventory viewer
Added
- Add a read-only ingame inventory viewer with dedicated views for quick access, backpack, bank, and equipment.
- Add
/inventoryviewand/invseeso staff can inspect persistent player inventories without touching the live item state. - Add dedicated permission nodes for viewing your own inventory snapshot and for inspecting other players.
Changed
- Reuse the persistent inventory snapshot pipeline for staff-side inspection so backpack and bank contents can be viewed ingame with the same resolved item metadata as the editor.
[2026.03.21] - Add quick access backpack inventory
Changed
- Reserve the upper-right player inventory slot for a vanilla-like backpack button while keeping the remaining 35 quick-access slots fully player-defined.
- Split persistent inventory loading so normal joins and respawns only hydrate quick access plus equipment, while bank and backpack contents load on demand.
- Extend the editor inventory payload with backpack storage, assignments, overflow, and the reserved quick-access slot marker.
Added
- Add a paged persistent backpack storage with
/backpackas a direct fallback to the ingame inventory button. - Add per-player inventory profiles to control backpack capacity independently from the deeper bank storage.
- Add unit tests for quick-access slot mapping, backpack capacity normalization, and the legacy slot-17 migration path.
Fixed
- Migrate legacy physical slot
17into backpack storage lazily so existing player inventories do not lose items when the reserved backpack slot becomes active. - Stop the reserved backpack button from being persisted, moved, merged, or dropped through the normal quick-access sync path.
[2026.03.21] - Speed up Gameserver joins
Changed
- Run ban, IP-ban, and maintenance bypass checks in parallel during the Gameserver login phase instead of waiting for them one after another.
- Preload permission and punishment type lookup collections so the core join path starts with warm local cache entries.
Fixed
- Collapse duplicate permission reads on join so a single maintenance bypass check no longer fans out into avoidable Mongo roundtrips.
- Reuse cached runtime and Mongo-backed spawn positions before falling back to a fresh location query during player configuration.
[2026.03.21] - Refine minigame setup menus
Changed
- Split the ingame minigame owner menu into focused setup screens for arena settings, spawn points, loadouts, and launch control.
- Open the ingame setup menu immediately after
/play createinstead of only sending a chat hint.
Fixed
- Rename the join prompt to "Join Minigame" so the entry flow is no longer confused with owner-side setup.
[2026.03.21] - Fix minigame elimination and portal state
Fixed
- Remove eliminated Arena PvP and Free For All players from active game state when they are sent back to the main world so team win conditions can finish correctly.
- Cancel pending minigame start countdown tasks when a game is cancelled, unregistered, or the Gameserver shuts down.
- Keep the visible minigame join portal aligned with the configured game center unless a custom portal position was set explicitly.
[2026.03.21] - Fix schematic edit sessions and placement selection
Fixed
- Run temporary
/scheditworlds as real editor instances again so Axiom,/save, and editor return flows stay available while editing schematics. - Save schematic edit session changes back into the referenced schematic before
/schedit returnteleports the builder back to the source editor. - Stop the legacy placement editor from locking all builders onto one shared active placement selection.
[2026.03.20] - Fix maintenance runtime monitoring noise
Fixed
- Stop the debug sidebar voice traffic widget from throwing runtime exceptions when the legacy voice UDP server is disabled.
- Skip Mongo change stream startup for the
public_server_samplestime-series collection so local and production logs no longer fill with unsupported watcher errors.
[2026.03.20] - Upgrade Minestom to 1.21.11
Changed
- Upgrade the Gameserver runtime from Minestom
2025.10.31-1.21.10to2026.03.03-1.21.11.
Fixed
- Adjust schematic paste callbacks to Minestom's new inverse-batch callback signature so schematic placement keeps compiling and completing on 1.21.11.
[2026.03.20] - Replace custom Ollama layer with LangChain4j
Changed
- Run Gameserver NPC chat and moderation prompts through LangChain4j's Ollama integration instead of the homegrown HTTP wrapper.
- Keep the existing
/api/ollama/*dashboard tools stable while moving the actual LLM runtime behind a sharedai/llmservice.
Added
- Add unit tests for LLM JSON normalization, stored chat message helpers, and the shared tool registry wiring.
Removed
- Remove the duplicate
ai/ollamatransport and model layer in favor of the smaller provider-neutralai/llmpackage.
[2026.03.20] - Fix shutdown and Mongo runtime handling
Fixed
- Run Gameserver
onPostDisable()hooks again by keeping components enabled until the post-disable phase completes. - Stop Mongo change listeners from dropping update and delete events for documents that are not already cached locally.
- Avoid shutdown hangs by forcing remaining players off the server after a configurable grace period.
- Stop the Gameserver bootstrap from waiting forever on components whose dependencies have already failed or gone missing.
- Evacuate players from removed world instances with a bounded wait instead of spinning until transfers happen by chance.
Changed
- Run Gameserver Mongo CRUD work on the dedicated Mongo executor instead of the shared common async pool.
- Reuse cached query ID lookups in the Mongo collection layer instead of always hitting the database again.
- Register Minestom commands sequentially during startup instead of mutating the command manager from a parallel stream.
- Preload schematics into the Gameserver cache and build creative editor tabs directly from cached entries instead of re-querying per player refresh.
[2026.03.17] - Add launcher guard allowlist config
Added
- Add a persisted
launcher_guard_allowlistconfig document and editor routes so the hosted launcher Network Guard allowlist can be managed centrally.
Changed
- Gate the new launcher guard config behind dedicated editor page access and permission nodes for read and edit operations.
[2026.03.16] - Disable legacy Simple Voice Chat runtime
Changed
- Disable the embedded Simple Voice Chat runtime on the Gameserver so the supported production voice path is now Public API +
uebliche-voice-node+ the uebliche social client. - Reject legacy Simple Voice Chat handshakes clearly instead of partially bootstrapping an unsupported UDP voice session.
[2026.02.01] - Dev compose without gateway
Added
- Add a standalone Gameserver dev compose file that runs without the gateway stack.
- Document the no-gateway dev workflow for Gameserver.
[2026.02.01] - Feature checklist
Added
- Add feature checklist page to track project progress.
[2026.01.24] - Games live deploy toggle
Changed
- Add a live toggle for games deploys and default tags to latest + short hash.
[2026.01.24] - Games deploy actions
Added
- Add a Uebliche.dev project file and deploy script for the games server.
[2026.01.24] - Leaderboard history
Added
- Document UUID leaderboard subjects and history tracking.
[2026.01.24] - Leaderboard scopes
Added
- Document leaderboard scope storage for global, network, server, and gamemode rankings.
[2026.01.24] - Lobby menu
Added
- Document the lobby menu flow for players joining without JoinMe cookies.
[2026.01.23] - Minigame leaderboards
Added
- Document stats storage and leaderboard aggregation for minigames.
[2026.01.23] - Minigame win rules
Added
- Document data-driven minigame win conditions and scoring hooks.
[2026.01.23] - Item action extensions
Added
- Document ammo and damage item actions for the data-driven items system.
[2026.01.23] - Item action reference
Added
- Document data-driven item actions, triggers, and inheritance for the Games SDK runtime.
[2026.01.19] - 2026-01-19
Changed
- Rephrase the Gameserver landing page to be player-focused, highlight the MMO RPG + minigame scope, mention LLM-driven NPCs, and add the evolving world promise.
[2026.01.15] - 2026-01-15
Changed
- Move the Gameserver source into its own repository and track it as a submodule.
Removed
- Remove the legacy friends REST + live stream endpoints (
/api/social/friends*) now served by the public API.
[2026.01.11] - 2026-01-11
Changed
- Add a Close Beta banner to the Gameserver docs landing page.
[2026.01.07] - 2026-01-07
Added
- Add the docs changelog page for Gameserver.