Changelog
[2026.05.21] - Stabilize Standalone Gradle Builds
Fixed
- Apply the shared mcmeta and Gradle 9.4.0 wrapper wiring so this project can configure from its own mod directory.
- Keep standalone loader resolution compatible with release-matrix validation for current Minecraft metadata.
[2026.05.21] - Tune Waiting Lobby Team Mobs
Changed
- Use player-style waiting lobby selectors for seeker, traitor, and runner team wishes, and show hider wishes as baby villagers.
[2026.05.21] - Add Waiting Lobby Team Mobs
Added
- Let every team-based round waiting lobby use clickable team mobs for team wishes while preserving role limits such as a single Slenderman hunter.
[2026.05.21] - Restrict Slenderman Sight
Changed
- Apply configurable arena potion effects during Slenderman hunts so runners and the Enderman hunter both play with restricted vision.
[2026.05.21] - Shape Slenderman Objective
Changed
- Change Slenderman Classic into a hidden-note collection round where runners score by finding notes and one Enderman-morphed hunter eliminates them.
- Keep runner team note progress after individual runner eliminations so collected notes remain counted for the team.
[2026.05.21] - Deploy Studio Minigames On Push
Added
- Add a Studio self-hosted GitHub Action that deploys the latest pushed HUB revision to the local uebliche.games Compose stack.
[2026.05.21] - Add Slandermann Minigame
Added
- Add Slandermann Classic as a data-driven uebliche.games round with a navigator entry, queue command, catalog metadata, and release-gate coverage.
- Report round-based catalog metadata so party-ready flows can recognize live reported round modes.
[2026.05.21] - Target Minigame Entry Visual Refreshes
Fixed
- Refresh only the edited minigame entry visual after Engine editor moves instead of respawning every lobby NPC and minigame entry.
[2026.05.19] - Add Prioritized Lobby Layout
Added
- Resolve Hub lobby player spawns from prioritized world markers so party members keep stable lobby slots when joining the 3D lobby.
- Send synchronized lobby camera state to modded Engine clients, including automatic framing based on current party positions and marker fallbacks.
[2026.05.18] - Gate Studio Games Stack
Changed
- Require an explicit studio-run environment flag before the uebliche.games Compose stack starts, so workstation runs do not publish local Minecraft ports by accident.
- Keep studio Gateway publishing on DEV route hosts only, defaulting the studio stack to
dev.uebliche.gamesinstead of productionuebliche.games.
[2026.05.17] - Add Playerlist Sidebar Actions
Added
- Let GamesHost variants attach Playerlist sidebar actions to mission and minigame info elements through metadata.
[2026.05.16] - Use Public API Parties
Changed
- Route Hub party invites, accepts, leaves, lists, party chat, and queue grouping through Public API party snapshots.
Removed
- Remove the Hub-local
libs/partystorage path and unsupported party kick/promote command handling.
[2026.05.15] - Add Resource Pack Builder Pipeline
Added
- Add a shared Resource Pack Builder CLI path for
base,gamespack validation, deterministic ZIPs, manifests, and publish metadata. - Add Public API resource-pack release metadata models and indexes so future resolvers can read published pack releases from
resourcepacks. - Add resource-pack protection metadata for PackSquash extraction-protected ZIPs.
Changed
- Publish the
gamespack through the resourcepack workflow so uebliche.games CDN/Mongo records can include the game-specific textures. - Mark resourcepack workflow releases as PackSquash extraction-protected so clients and APIs can distinguish protected server packs.
[2026.05.14] - Add Games Resource Packs, Monitoring, Maps, Teams, And Voice Runtime
Added
- Add optional
base,gamesresource-pack delivery for the Minestom Hub and GamesHost, including/refresh-resources. - Add local dev ZIP packaging and a no-store HTTP endpoint for Studio-PC resource-pack testing.
- Add Mongo/CDN resource-pack lookup metadata for production records with URL, SHA1, size, and version tokens.
- Add placeholder
gamespack assets for BIM, TTT, GunGame, RageMode, extraction, and queue-leave visuals. - Add a GamesHost
/performancesidebar backed by the sharedminestom-monitoringtick window for MSPT, p95, heap, CPU, and online player visibility. - Add
libs/maps:coreandlibs/maps:storage-mongodbas the shared map catalog loading layer for Hub and GamesHost. - Add
libs/teams:coreandlibs/teams:adapter-minestomas the shared match-team layer for role-to-team resolution, team audiences, and team score limits. - Add a GamesHost bridge to the shared Uebliche social voice stack so proximity voice is isolated per active match by default.
Changed
- Let game definition, variant, and map metadata choose or extend resource packs through
resourcepacks.*keys while keeping vanilla item fallbacks. - Expose local GamesHost performance monitoring through
PERFORMANCE_MONITORING_*environment defaults. - Route Hub and GamesHost map loading through
libs/mapswhile preserving the existing JSON and MongoDB map sources. - Route GamesHost team chat, role-aware bot targeting, karma checks, waiting-lobby team choices, and team score objectives through
libs/teams. - Use
common/social,mod/social, anduebliche-voice-nodefor GamesHost voice control instead of the old mod-specific voice bridge.
[2026.05.14] - Add Arena Mechanics Runtime Layer
Added
- Add a GamesHost runtime coverage guard that checks every seeded minigame variant has a supported runtime category.
- Add a reusable arena mechanic layer for FFA spawn protection, GunGame credits, RageMode one-hit combat, throwing axes, and Rage shops.
Changed
- Move GunGame and RageMode behavior out of hardcoded arena mode branches and expose their canonical
mechanic.*seed metadata.
[2026.05.14] - Add GunGame Upgrade Shop
Added
- Add a GunGame shop that spends kill credits on weapon, armor, and perk upgrades.
Changed
- Award one GunGame credit per kill instead of auto-upgrading weapons, and remove ten percent of unspent credits and upgrade levels on death.
[2026.05.09] - Add Platform Editing Bridge
Added
- Route Engine spawn point and region edits through Hub Platform editing catalogs backed by the Spawn and Region core editor node models.
- Start the Minestom Hub with a shared Uebliche Platform instance and register
/spawnthrough the Platform command API. - Register
/hubjump,/hubsecrets, and/secretsthrough the Platform command API instead of native Minestom command objects. - Register
/hubnpcthrough the Platform command API while keeping the existing Hub NPC behavior unchanged. - Allow the local uebliche.games Compose stack to inject shared Java 25 compatibility flags for Colima/QEMU runs.
- Use a lightweight MongoDB TCP healthcheck in the local uebliche.games Compose stack so slow
mongoshstartup does not block dependent services. - Copy local uebliche.games runtime distributions through temporary folders so container restarts do not collide with existing files.
[2026.05.07] - Add Cobblemon Experience Catalog
Added
- Add a Cobblemon Adventure catalog seed for uebliche.games with external launch metadata for
cobblemon.uebliche.games. - Report per-entry server, Minecraft version, loader, and recommended profile metadata from data-driven game definitions.
Changed
- Clarify the uebliche.games scope so playable experience catalog entries can exist beside queue-driven minigames.
[2026.05.07] - Add Game Achievements
Added
- Report Connect achievements for FFA total kills at 1, 10, 100, and 1000 kills.
- Report Connect achievements for FFA killstreaks at 3, 10, and 25 kills.
- Unlock the first round win achievement when a player wins any data-driven round.
- Track consecutive round wins and report the 3-win streak achievement.
- Unlock the SG first death achievement for the first human player death in each SurvivalGames round.
- Unlock the TTT detective body inspection achievement when a detective inspects a corpse in data-driven TTT rounds.
[2026.05.06] - Make TTT Playable
Changed
- Keep role-aware TTT bots from targeting their own role team so bot-filled rounds play as traitors against innocents instead of free-for-all combat.
Added
- Add
/tttand/troublequeue commands for TTT Classic in the uebliche.games Hub.
[2026.05.03] - Harden Minestom Deploys
Fixed
- Build requested Minestom loader releases without configuring unrelated optional loaders.
- Stop Hub release packaging when a loader Gradle build fails instead of reusing stale
build/libsartifacts. - Expose
minestom-gamesas a selectable Hub deploy loader for uebliche.games releases.
[2026.05.03] - Add Chat Channel Bars
Changed
- Show Hub party and direct-message chat channels with compact colored bars instead of written channel labels.
[2026.05.03] - Add Chat Shortcuts
Added
- Add Hub party chat through
/pc <message>and/party chat <message>. - Add Hub direct messages through
/msg,/tell, and/w.
[2026.05.03] - Stabilize Community Test Stack
Changed
- Reduce default memory pressure in the local community-test stack and skip DockBridge building unless
COMMUNITY_TEST_DOCKBRIDGE_ENABLED=1is set. - Let the community-test stack run without Connect credentials by disabling Connect-only permission and Velocity plugin wiring when credentials are missing.
Fixed
- Start the community-test Velocity proxy quickly from static backend entries so local port
25567answers status pings.
[2026.05.03] - Fix Local GamesHost Restart Loop
Changed
- Start the default local uebliche.games stack with one GamesHost and keep the second host behind the
multi-hostCompose profile for explicit distribution tests.
Fixed
- Keep the GamesHost process alive after Minestom starts so Docker does not restart it as a cleanly exited service.
[2026.05.03] - Fix FFA RageMode Loadout
Fixed
- Give FFA RageMode players the bow, sword, and arrows loadout while removing food from the kit, and wire bow shots in the persistent arena.
- Put RageMode items in sword, bow, axe order, make the bow Infinity, keep the arrow out of the hotbar, and keep the shop opener on the last hotbar slot.
- Mark the RageMode axe as a throwing axe and route persistent FFA RageMode use, hit, drop, pickup, and collision events through the throwing-axe projectile flow.
[2026.05.03] - Clarify Launcher Requirement
Changed
- Tell Hub players to install the Uebliche Launcher with a download link when friends access is unavailable.
[2026.05.03] - Stabilize Local uebliche.games Stack
Changed
- Lower the default Java and direct-memory budgets for the local Velocity, Hub, GamesHost, and Abyss services so the full stack fits better into Docker Desktop.
- Make the local Hub lobby Java options overrideable and reduce its packet buffer pools to avoid long-running Docker Desktop OOM restarts.
- Cap the local MongoDB WiredTiger cache to reduce baseline memory pressure during development.
- Restart local runtime services automatically unless they are stopped explicitly.
Fixed
- Keep the local Velocity Connect plugin disabled when no Connect credentials or gateway publishing configuration is present.
- Let the local Hub permission backend fall back to local storage unless a real Connect permission backend is configured.
- Keep stale local Hub configs from loading the large Sakura schematic by default, preventing Docker Desktop OOM restart loops.
[2026.05.03] - Add Community Test Stack
Added
- Add a separate unofficial community-test stack with its own Velocity proxy, MongoDB volume, Hub lobby, GamesHost, Abyss backend, and local port for third-party Connect consent testing.
- Isolate the community-test DockBridge auto-registration label so its Velocity proxy only discovers community-test backends.
- Add a provisioning script that registers a non-official Connect server, generates an Ed25519 signing key, and writes the Compose env file for the community-test stack.
Fixed
- Point the local Velocity static games backend entries at the two current GamesHost services.
[2026.05.03] - Add Hub Friends Menu
Added
- Add a normal-hub friends hotbar item, read-only friends chest menu, and
Freunde: online / maxsidebar line backed by Connect delegated access.
[2026.05.03] - Isolate Arcade Minigames
Fixed
- Move Arcade mini-games into temporary dedicated GamesHost worlds instead of reusing a side arena inside the board world.
- Return Arcade players to the board world after each mini-game before applying bonus dice and starting the next roll.
[2026.05.03] - Add Tournament Modes
Added
- Add data-driven Tournament variants for 1v1 brackets, team brackets, and a Second Chance format where one loss still allows first place.
- Add a generic GamesHost tournament runtime with sequential matches, spectator handling, PvP loadouts, bracket progression, and placement summaries.
Changed
- Reuse the shared minigame core for tournament entrants, matches, modes, and deterministic placement calculation.
[2026.05.03] - Add Hub Parties
Added
- Add persistent Mongo-backed Hub parties with invites, accept, leave, kick, promote, list, and pending-invite commands.
- Let party leaders queue all online party members into data-driven minigame queues together.
Changed
- Keep normal single-player queue behavior when a player is not in a party, and block non-leaders from queueing the party.
[2026.05.03] - Add Multi-Host Minigame Routing
Added
- Add Mongo-backed GamesHost heartbeats and shared queue tickets so multiple uebliche.games hosts and Hub lobbies can coordinate match starts.
- Add automatic host selection for generic minigame assignments, using ready hosts with free capacity before falling back to local single-host development.
Changed
- Route new data-driven round and persistent assignments to the selected assignment host instead of always using
games-local-1. - Start the local uebliche.games Compose stack with two GamesHost services and remove fixed
games-local-1pins from minigame seeds.
[2026.05.03] - Add Arcade Board Mode
Added
- Add a data-driven Arcade board runtime with ascending board fields, base dice rolls, mini-game rounds, and top-three bonus dice.
- Add an Arcade catalog seed and default board map so the Hub navigator can start the board loop through normal minigame assignments.
Changed
- Register the Arcade runtime in the GamesHost so board rounds can reuse the same data-driven map and variant pipeline as other minigames.
[2026.05.03] - Add Hub Map Editing
Added
- Add
/mapedit <map>and/editmap <map>in the Hub so builders can open a game map editor directly from the lobby. - Add a GamesHost map-editor runtime that opens editable map worlds in Creative mode and saves changes automatically.
Changed
- Load game map worlds from persistent Anvil storage when available so saved map edits are visible in later minigame rounds.
- Let the Hub map list load maps from
MINIGAME_MAPS_PATHas a local fallback in addition to MongoDB.
[2026.05.02] - Add Generic Round Objectives
Added
- Add a loader-independent minigame round objective layer for last-alive, team-elimination, score-limit, stage-complete, and survive-timer rules.
- Let data-driven arena, simple arena, and schematic arena rounds use shared Minestom round state for player deaths, bot eliminations, HUD status, round endings, and lobby returns.
- Add generic data-driven loot chests for round arenas with reusable loot pools and phase-aware access.
- Add reusable phase actions so round definitions can teleport active players when a configured phase starts.
- Add a role-based round shop backed by variant
shopsdefinitions and per-role start credits. - Add data-driven map layout metadata for fixed arena spawns, loot chest positions, and phase-specific teleport positions.
- Add role-gated corpse inspection and karma scoring for data-driven hidden-role rounds.
Changed
- Configure Sumo, Spleef, OneInTheChamber, HideAndSeek, SurvivalGames, and TTT seed definitions with data-driven objectives instead of mode-specific Java branches.
- Move GamesHost round cleanup out of the main server class to keep the runtime wiring small.
- Let zero-second phases with a next phase advance immediately while preserving open-ended live phases.
- Gate combat and loot by configured phases so HideAndSeek has a hide phase and SurvivalGames waits until PvP phases before damage.
- Configure SurvivalGames deathmatch to pull active players into a compact arena and give TTT separate innocent, traitor, and detective loadouts.
- Shuffle data-driven primary roles per match so roles such as seeker or traitor no longer always go to the first player slot.
- Seed SurvivalGames and TTT maps with fixed spawn and loot chest markers so rounds no longer rely only on generated circle placement.
[2026.05.02] - Scope Game Death Messages
Fixed
- Keep Minestom death chat messages inside the game instance where the player died instead of broadcasting them to every player on the GamesHost.
- Keep the GamesHost attached to MongoDB during startup so Hub-created minigame assignments can be resolved after a restart.
- Keep players on a fallback spawn instead of timing out when a stale or unsupported assignment reaches the GamesHost.
- Arrange the local uebliche.games navigator as a full game-join menu with the Hub spawn in the bottom center.
- Prevent players from entering multiple generic minigame queues at the same time.
- Keep the local uebliche.games lobby under the Docker memory limit by lowering its Java heap and packet buffer pools while preserving the higher Hub render distance.
- Restore Minestom's default lobby packet buffer size so login packets with profile data can be written without desyncing the backend connection state.
- Enable Minestom's faster socket write wakeups in the local uebliche.games stack so login transition packets are flushed before the backend enters configuration state.
[2026.05.02] - Share Minestom Fluid Physics
Changed
- Reuse one Minestom fluid system for SkyBlock and edit worlds so water and lava buckets behave consistently.
Fixed
- Let water and lava continue ticking in
/editinstances and after creative edits in the live SkyBlock world.
[2026.05.02] - Add HideAndSeek Disguise Modes
Added
- Add HideAndSeek
Tiny HidersandProp Huntvariants to the data-driven minigame catalog and navigator. - Let data-driven arena roles set player and bot scale so hiders can be one block tall.
- Let hiders disguise as configured blocks or mobs through a hotbar item; seekers catch them by hitting the visible disguise.
[2026.05.02] - Hide Abyss Players
Fixed
- Keep players invisible while they are held in the Abyss fallback server.
[2026.05.02] - Relax Velocity Login Rate Limit
Changed
- Lower the Velocity login rate limit from 3000 ms to 750 ms so quick reconnects hit the "logging in too fast" guard less often.
[2026.05.02] - Fix HideAndSeek Roles
Fixed
- Apply data-driven seeker and hider roles to bot combat so HideAndSeek no longer behaves like generic FFA.
- Convert caught or fallen hider bots into seekers before they respawn, matching the existing player role conversion rules.
[2026.05.02] - Finish Sumo Bot Respawns
Fixed
- Respawn arena bots after they fall below the arena void in respawn-based data-driven modes such as Sumo.
- Apply data-driven arena combat settings to bot fights so Sumo knockback, low damage, and health reset also work for bot combat.
[2026.05.02] - Relax Game Bots
Changed
- Make minigame bots less aggressive by lowering default damage, target range, attack reach, and reaction speed.
- Allow bot combat tuning through bot profile metadata so future balance changes can be adjusted per game definition.
[2026.05.02] - Use Friendly Queue Names
Changed
- Show minigame display names in queue chat, subtitles, and catalog entries instead of technical
game:variantIDs.
[2026.05.02] - Show Queue Countdown Subtitles
Added
- Show a queue subtitle while players wait, including mode, player count, and countdown until fill or bot start.
[2026.05.02] - Stabilize Local Minestom Runtime
Fixed
- Run local uebliche.games Minestom services from per-service runtime copies so later Gradle builds cannot remove classes that are loaded lazily during Hub item clicks.
[2026.05.02] - Harden Connect Gateway Route
Changed
- Refresh the uebliche.games Connect Gateway route more frequently and keep its TTL longer so short tunnel or API interruptions do not immediately surface as
Gateway offline.
[2026.05.02] - Fix Hub Item Use
Fixed
- Handle Hub hotbar item use when players right-click blocks and accept stale tagged Hub items after a lobby restart while still clearing them outside the Hub instance.
[2026.05.02] - Load Game Maps From MongoDB
Added
- Seed minigame map definitions into MongoDB alongside the data-driven game definitions.
Changed
- Resolve GamesHost arena, schematic, SkyBlock template, spawn, and void settings through Mongo-loaded map definitions instead of storing map data on game variants.
- Let Hub queue assignments pick map IDs and template IDs from the Mongo map registry before connecting players to the GamesHost.
[2026.05.02] - Use Data Driven Game Modes
Changed
- Route Hub minigame joins, navigator queue actions, and plugin-message joins through the generic data-driven queue instead of legacy SurvivalGames or TTT queue services.
- Select GamesHost runtimes from definition metadata such as
runtimeandruntime.kindinstead of hardcoded game IDs. - Load Hub and GamesHost game definitions only from configured files or MongoDB so shipped game modes come from data.
- Use generic arena runtime metadata such as
schematic-arenaandarena.modeinstead of mode-specific Java runtime names.
Removed
- Remove the legacy hardcoded SurvivalGames and TTT queue services and match-file writers from the Hub loader.
- Remove legacy standalone minigame loader registration and old hardcoded minigame defaults from the Hub build and config generation.
- Remove legacy SurvivalGames and TTT Java domain packages from the shared minigame core.
[2026.05.02] - Add Generic Round Fusion
Added
- Add a GamesHost round fusion coordinator for compatible GenericHost rounds so live players can move into the older round without a visible countdown, chat message, or scoreboard reset.
- Add fusion safety checks for arrival positions and removed target bots so rounds only merge when nearby live players do not have line of sight.
- Enable opt-in fusion metadata for SurvivalGames and the Mongo-seeded Sumo, HideAndSeek, Spleef, and OneInTheChamber arena modes.
Changed
- Replace target-round bots silently when real source-round players are fused into the older round and mark the source assignment for cleanup.
[2026.05.02] - Smooth Queue Starts
Changed
- Cap multiplayer minigame queue fill waits at 35 seconds so bot-filled rounds enter their waiting lobby and live arena within the 45 second target.
- Enable bot fill for multiplayer data-driven queues that need more players than the minimum human count.
- Cap round waiting lobby countdowns at 10 seconds so the final pre-round hold stays short.
[2026.05.02] - Add Round Game Bots And Waiting Lobbies
Added
- Add a reusable GamesHost waiting lobby for round-based games with a countdown action bar before players enter the live arena.
- Add selectable kit and team NPC support for waiting lobbies when a minigame variant marks those options as selectable.
- Reuse the FFA bot controller for data-driven arena modes and TTT so round games can spawn configured combat bots from match assignments or bot profiles.
Changed
- Fill generic round-game bot slots up to the queue target instead of adding a full bot profile on top of real players.
[2026.05.02] - Add Data Driven Arena Modes
Added
- Add Mongo-seeded data-driven arena definitions in the uebliche.games catalog, navigator, GUI/NPC join path, and generic GamesHost.
- Add a generic arena runtime that reads shape, floor block, kits, roles, combat rules, void behavior, and breakable blocks from minigame definition metadata.
- Add a local Docker seed step that upserts minigame definitions into MongoDB before the lobby and GamesHost start.
Changed
- Keep generic minigame queues waiting for their minimum player count after timeout unless bot fill is enabled.
- Keep the new arena definitions off standalone commands so players join them through NPCs, navigator, or GUI.
- Load the local uebliche.games lobby and GamesHost catalog from MongoDB seeds instead of Java default definitions.
- Stop registering the public
/queuecommand because minigame joins are handled through NPCs, navigator, and GUI.
[2026.05.02] - Read Permission Cookies
Added
- Read the
uebliche:permissionsMinecraft cookie on Minestom joins and verify it through the Connect REST permission store before falling back to Public API permission reads. - Read permission-token secrets from
_FILEenvironment variables so Hub containers can share the same local secret file as the Public API. - Show the player's highest applicable server rank before their name in the Minestom tab list.
- Request permission cookies periodically so long Hub sessions pick up refreshed Connect permission JWTs.
Changed
- Share Hub proxy plugin-message encoding across Paper, Velocity, and Minestom and move Minestom permission-cookie plus lobby proxy handling into focused modules.
- Move Hub i18n override loading and storage settings parsing into common loader-independent services shared by Minestom, Fabric, and Paper where applicable.
- Move Hub default config generation, shared Hub item specs, and JumpRun region config parsing into common loader-independent services.
- Move Minestom Hub hotbar item handling, JumpRun asset parsing, and command registration into focused loader modules.
- Share Hub run duration and speed formatting through common loader-independent helpers.
[2026.05.01] - Use Connect REST Permissions
Added
- Add a Connect REST permission backend for Hub and uebliche.games runtime permission checks.
Changed
- Route Hub permission reads through the Public API Connect endpoint so MongoDB permission collections are only read by the Public API.
- Read value permissions such as
hub.skyblock.slots.maxfrom structured Connect permission grants.
[2026.05.01] - Use Dash Permissions From MongoDB
Added
- Add a MongoDB permission backend for the Hub that reads the same roles, role permissions, user roles, and user permissions managed through Dash/Public API.
Changed
- Default local uebliche.games Hub permission config to MongoDB and keep SQLite/JDBC available as explicit fallback backends.
- Read SkyBlock island slot limits from the value-based
hub.skyblock.slots.maxpermission managed in Dash.
[2026.05.01] - Wire Shared Permissions
Added
- Add shared Hub permission storage through local SQLite or JDBC with
permissions.*config andHUB_PERMISSIONS_*environment overrides.
Changed
- Route Velocity lobby, debug, and update permission checks through the shared permission library while preserving existing platform permission fallback.
- Let SkyBlock island slots use shared permissions instead of only relying on Minestom permission level strength.
[2026.05.01] - Populate Minigame Bots
Fixed
- Keep generic FFA and SurvivalGames arenas populated with fallback bots when live definitions or match assignments omit bot entries.
- Let the legacy SurvivalGames loader infer missing bots from target and real player counts when its match file has no explicit bot list.
[2026.05.01] - Stabilize Gateway Reconnects
Changed
- Let the uebliche.games Velocity instance replace stale player sessions on reconnect so a dropped gateway connection does not block the next join.
- Keep local uebliche.games development proxies off the public Connect Gateway unless
CONNECT_GATEWAY_ENABLED=trueis set explicitly.
Fixed
- Move Abyss hold setup out of the Minestom configuration phase so fallback joins no longer send play packets too early or time out while entering Abyss.
[2026.05.01] - Add SkyBlock Reset Command
Changed
- Arrange uebliche.games Hub navigator game items in one centered row: SkyBlock, SurvivalGames variants, FFA variants, and TTT.
- Limit owned SkyBlock island slots through the player's Minestom permission strength, configurable with
SKYBLOCK_ISLAND_BASE_SLOTS,SKYBLOCK_ISLAND_SLOTS_PER_PERMISSION_LEVEL, andSKYBLOCK_ISLAND_MAX_SLOTS.
Added
- Add SkyBlock island slots so players can create multiple persistent islands, list and join a chosen slot, and share islands with online players.
- Add
/resetand/reset confirmon SkyBlock to delete the current island, clear saved player state, and recreate the island from the template. - Add a shared item durability module with Minestom integration and use it for SkyBlock block breaking.
- Add reusable vanilla-like shield PvP handling for Minestom games with frontal blocking, shield durability damage, axe shield disable cooldowns, and client item cooldown packets.
- Reuse the Doungeon combat text display library for Minestom PvP, bot attacks, and hazard damage outside Doungeon runs.
- Play a whoosh sound when Hub double jump boosts a player.
- Add selectable FFA submodes for Arena, GunGame, and RageMode in the generic uebliche.games definitions, navigator, catalog, and
/ffa <variant>command path. - Add playable FFA submode rules on the generic GamesHost: Arena PVP, GunGame weapon stages, RageMode one-hit damage, quick respawns, and kill/stage level feedback.
- Spawn configurable combat bots for FFA variants on the generic GamesHost and count bot defeats toward GunGame and kill progress.
Fixed
- Let SkyBlock lava and water buckets place fluids from the generic item-use path and play the vanilla lava extinguish sound when generators create cobblestone, stone, or obsidian.
- Persist SkyBlock chest inventories per island so starter and placed chests keep player changes across reloads, and drop their stored contents when broken.
- Recalculate SkyBlock water and lava flow after block changes so fluids fall downward, decay without sources, and water can form infinite sources from adjacent source blocks.
- Make SkyBlock lava flow with vanilla-like Overworld dropoff, timing, and downward-path priority instead of spreading evenly in all directions.
- Place SkyBlock lava buckets against normal blocks through the raycast fallback instead of only handling direct fluid collisions.
- Handle Minestom's item-on-block bucket event so SkyBlock lava buckets can be emptied against normal blocks, not only interactive blocks.
- Route SkyBlock bucket placement through Minestom's normal block-interact and item-use acknowledgements so lava placement stays synced with the client.
- Drop vanilla-style block results in SkyBlock, including cobblestone from stone without Silk Touch and raw/resource drops from common ores.
- Allow interacting with hotbar slot 0 while a SkyBlock crafting table is open instead of treating it as the crafting result slot.
- Stop normal food items from starting their consume animation when the player already has a full hunger bar, while still allowing always-edible items.
[2026.05.01] - Hide Hub Lobbies Button
Changed
- Move the Hub navigator Spawn shortcut to the bottom center slot.
Removed
- Remove the default Lobbies shortcut from the Hub navigator menu.
[2026.05.01] - Add SkyBlock Placement Rules
Added
- Grow SkyBlock saplings into trees over time and let nearby sneak spam speed up growth attempts.
- Let SkyBlock players collect water and lava sources with buckets, place bucket fluids, and have water and lava spread through a local flow simulation.
Fixed
- Place SkyBlock slabs, stairs, logs, fences, panes, chests, and other common building blocks with shared Minestom block placement rules so orientation, halves, and connections behave like normal Minecraft placement.
- Let natural SkyBlock leaves decay after their trunk support is removed while keeping player-placed leaves persistent.
- Drop two slab items when a SkyBlock double slab is broken.
- Convert water and lava collisions into obsidian or cobblestone for SkyBlock generator setups.
- Collect looked-at lava and water sources from the generic item-use path so lava buckets work even when Minestom does not fire a block interaction for the fluid.
- Turn broken SkyBlock ice into water unless the tool has Silk Touch.
[2026.05.01] - Fix Vanilla Crafting Shift Click
Fixed
- Make SkyBlock crafting result shift-clicks fill the player inventory in vanilla-style result order and stop without consuming inputs when the crafted stack no longer fits.
- Support shift-clicking crafting-table results through the same SkyBlock crafting transfer behavior.
[2026.05.01] - Speed Up SkyBlock Join
Changed
- Load SkyBlock joins faster by querying match assignments by player/status instead of scanning every assignment.
- Reduce the local generic GamesHost chunk view distance so legacy SkyBlock templates send fewer chunks during the first join.
- Copy only overworld SkyBlock template data for new player islands and skip duplicate legacy Anvil region files.
Fixed
- Allow Hub plugin-message connect requests to target direct backend server names such as
games-local-1instead of treating every target as a lobby name.
[2026.05.01] - Add Game Reconnect Resume
Added
- Remember the last Games backend per player through Velocity resume cookies so reconnecting players can be routed back into active rounds and SkyBlock islands.
Changed
- Keep generated minigame assignments alive longer so active rounds and persistent SkyBlock islands can be found again after a reconnect.
[2026.05.01] - Enable SkyBlock Inventory Crafting
Fixed
- Allow SkyBlock players to craft recipes from the 2x2 player inventory grid, including shift-click crafting, return grid inputs when the inventory closes, and avoid saving the virtual crafting result as a real item.
- Load GamesHost vanilla crafting data from Minecraft
26.1.2instead of the older1.21.11snapshot data.
[2026.04.30] - Improve HubJump Start And Block Exit
Changed
- Start new HubJump courses above the player who begins the run instead of anchoring them to the Hub spawn position.
- Start the HubJump timer only after the player reaches the first block after the start block.
- Animate old HubJump block displays downward when they leave the active current/next block set instead of removing them instantly.
- Respect the HubJump block animation toggle for old block fall animations, removing blocks instantly when animations are off.
- Remove falling HubJump block displays when their fall animation reaches the first solid Hub floor below them.
- Keep extending endless HubJump courses after the initial generated buffer instead of discarding partially generated new blocks.
- Allow multiple Hub players to run HubJump at the same time with separate courses and per-player visible blocks.
- Try nearby fallback lanes when a player's preferred HubJump start position is blocked by another active course.
- Run the local uebliche.games Hub and GamesHost Minestom backends on the same
26.1.2version advertised by the shared Launcher profile.
Fixed
- Show the backend's version error directly during the initial Hub join instead of redirecting through fallback servers.
[2026.04.30] - Show Hub Online Count As Level
Changed
- Show the current Hub online player count as each player's Minecraft XP level and keep it refreshed while players join or leave.
[2026.04.30] - Queue Minigames From Connect
Changed
- Accept Connect minigame join plugin messages in the Hub and enqueue players through the existing minigame queue services without chat command strings.
[2026.04.30] - Allow Connect Claim Registration
Fixed
- Start the uebliche.games Connect proxy without a default network assignment so server registration can create a claim key and Dash can assign the server afterwards.
- Pass the uebliche.games minigame report token and launcher profile metadata into the local lobby container so reported queues can appear in the Launcher catalog.
[2026.04.30] - Limit HubJump Blocks
Added
- Add a Velocity Abyss fallback that can hold players on a configured backend when no Hub fallback is reachable, then return them once an autojoin Hub is available again.
- Add configurable HubJump block palettes and a hotbar item for rotating the active palette.
- Add configurable HubJump sound profiles and a hotbar item for rotating the active profile.
- Add a HubJump leaderboard that ranks players by reached blocks, time, and blocks per second.
- Add persistent HubJump player state for selected block palettes, selected sound profiles, and paused runs.
- Add toggleable BlockDisplay movement animations for the next HubJump block.
- Add a shared JumpRun library with core course generation and loader adapter modules.
- Add Hub Secret spots to the Engine editor so builders can place category-based hidden collectibles in the Hub world.
- Add per-player Hub Secret assignment that randomly selects each player's search targets from the category pool.
- Persist Hub Secret found progress in the Hub run data directory.
- Add configurable Hub double jump with region-based allow/deny volumes editable from the Engine editor.
- Add a dedicated local Minestom Abyss backend to both local Hub stacks so the Velocity holding point is backed by a real server.
- Add Creative world editing for Hub, GamesHost, and SurvivalGames worlds with save commands and editor-session saves.
- Add
/edit,/edit <world>,/edit save,/edit close, and/edit statusfor separate Creative editor instances on the Hub, GamesHost SkyBlock, and SurvivalGames map backends. - Add the Connect Velocity plugin to the uebliche.games Compose stack so remote deployments can publish the proxy through Connect Gateway.
Changed
- Show only the current and next HubJump block for each active run instead of rendering the full generated course.
- Move Minestom HubJump course generation onto the shared JumpRun core.
- Generate a fresh HubJump course for every new idle run and avoid repeating the previous first jump.
- Keep HubJump courses clear of nearby world blocks, non-neighbor course blocks, and nearby players to reduce shortcut abuse.
- Abort active HubJump runs when a runner gets too close to unrelated blocks or other players.
- Swap Hub hotbar items by HubJump state: keep the HubJump start item only in the base inventory, show the navigator outside runs, and show palette/sound controls only during active runs.
- Add a HubJump give-up door in the last hotbar slot during active runs.
- Add a HubJump pause item so players can continue an endless run later.
- Persist each player's HubJump block-animation preference.
- Make HubJump endless by extending the generated path as runners progress instead of finishing on a goal block.
- Use invisible barrier blocks for HubJump collision and render the selected block palette through BlockDisplays.
- Show live HubJump run information in the actionbar with reached blocks, time, and blocks per second.
- Show nearby leaderboard places in the HubJump sidebar with the block gap to players ahead.
- Show HubJump run stats in chat when a run ends, pauses, or fails.
- Use German umlauts in the HubJump actionbar and leaderboard copy.
- Use German umlauts in the remaining German Hub chat messages.
- Show Hub Secret progress with
/hubsecretsand keep selected hiding spots different per player. - Enable Hub double jump by default outside denied Hub regions while disabling it during HubJump runs and Engine editor sessions.
- Keep the local Velocity config limited to real backend servers so game aliases no longer interfere with Hub fallback selection.
- Persist Hub creative edits through local Anvil world storage layered over generated Hub chunks.
- Save SurvivalGames editor block edits back through the shared uebliche world chunk loader.
- Open manual world edits in isolated Minestom instances so builders can work on a copy of the current target before returning to their original location.
- Register direct Hub game commands such as
/ffa,/sg, and/skyblockthrough the generic GamesHost queue flow. - Hold Abyss players as immobile spectators attached to an invisible entity in an empty world instead of spawning holding blocks.
- Default the uebliche.games Compose Connect identity and route host to
uebliche.games, while keeping all Connect credentials configurable through environment variables. - Bind Hub hotbar items to the live Hub instance so copied edit-world inventories cannot use old Hub actions.
- Raise the local uebliche.games Hub render distance from 4 to 8 chunks and entity distance from 3 to 6.
Fixed
- Clear stale HubJump course blocks when runs stop, finish, or the last active runner disconnects.
- Abort HubJump runs after a player falls off the course and move them back to their start location.
- Keep generated HubJump steps reachable by limiting upward movement and checking diagonal jumps by real horizontal distance.
- Keep generated HubJump blocks farther away from nearby world blocks.
- Avoid Z-fighting during HubJump BlockDisplay movement animations by rendering the animated block slightly smaller.
- Send the Minigames navigator Spawn entry to the configured Hub spawn instead of the default fallback coordinates.
- Scale Hub double jump velocity to Minestom's blocks-per-second movement model so the jump boosts upward instead of being swallowed by gravity.
- Route generic FFA joins to the shared
games-local-1GamesHost backend instead of the inactive legacyffabackend alias. - Disable local Velocity direct game commands for legacy backend aliases so Hub commands can create the required GamesHost assignments first.
- Restrict Velocity's automatic lobby fallback selection to
autojoinlobbies so stale legacy game backends cannot become the initial Hub target. - Reset player velocity when a HubJump run starts or resumes so previous movement does not carry onto the course.
- Remove Hub hotbar items outside the live Hub instance so
/editworlds start without stale navigator or HubJump controls.
[2026.04.29] - Report Minigame Catalog
Added
- Add configurable Hub schematic loading and use the imported Sakura Spawn schematic for the local Hub world.
- Add Engine editor support to the Minestom Hub so builders can open the Hub world from the Fabric editor and define the persisted Hub spawn marker.
- Add a generic Minestom games host that can receive MongoDB/file-backed match assignments for SurvivalGames, TTT, FFA, and SkyBlock through one Velocity backend.
- Add generic Hub queue assignment writing behind
UEBLICHE_GAMES_GENERIC_HOST, while keeping the legacy mode-specific servers buildable behind thelegacy-gamesCompose profile. - Add MongoDB-backed data-driven minigame definitions with deterministic JSON/YAML import/export, default definitions for SurvivalGames, TTT, FFA, and SkyBlock, and Hub commands for validation, export, publish, rollback, and reload.
- Report enabled Uebliche.games minigame queues to the Public API when
UEBLICHE_GAMES_REPORT_TOKENis configured so Launchers can list available games automatically. - Light FFA chunks and add configurable local FFA combat bots for testing free-for-all rounds.
- Use one
/botcommand surface for Hub and FFA bot control, with FFA-specific behavior profiles under/bot behavior. - Add the same
/bot listand/bot behaviorsurface to SurvivalGames and TTT queue-fill bots with mode-specific behavior profiles. - Add SkyBlock as a local uebliche.games Minestom backend with persistent player islands created from custom world template zips.
- Add DockBridge auto-registration to the local uebliche.games Compose stack so Velocity can add and remove Docker-backed lobby and gameserver backends dynamically.
- Add refreshed uebliche.games Hub hotbar items: a server selector compass and a minigames navigator nether star with mode-specific navigator lore.
- Add Minestom Hub minigame entry location nodes with a mannequin, item display, label display, direct join click, and shift-click variant options.
- Show Engine editor spawn markers as mannequins and render scaled spawn areas with a center marker plus radius sphere preview.
- Persist generic GamesHost SkyBlock islands by copying the configured template once per player and saving block changes back to the island world.
- Persist SkyBlock player state on islands, including last position, inventory, health, food, level, and held slot, then restore it on rejoin.
- Add data-driven GamesHost crafting packs with all vanilla recipes enabled by default, recipe-book registration, Engine transport editing, and vanilla/custom recipe enable toggles.
- Store GamesHost crafting packs inside each Mongo-backed minigame variant definition so recipe edits travel with the gamemode instead of a standalone local JSON file.
- Add Engine editor controls for Hub minigame entry NPCs so builders can edit MiniMessage text displays, skin data, and item display ids from the running Hub scene.
- Persist Hub minigame entry NPC scale and TextDisplay settings from the Engine editor.
- Enable vanilla Crafting Library support in the generic GamesHost so SkyBlock players can use crafting tables and recipe matching.
- Respawn SkyBlock players at the island spawn when they fall below the configured void height.
- Add SkyBlock chest block handlers so imported and newly placed chests open inventories instead of behaving like inert blocks.
- Add persisted GamesHost Engine editor nodes for TTT player spawns, item spawns, and tester markers.
- Add a Minestom Hub
/spawncommand and restore the last saved Hub location on rejoin by default. - Add a reusable Minestom entity look-at-player controller and enable it for Hub minigame entry mannequins.
- Add configurable GamesHost world void policies and persist SkyBlock island void behavior edited from the Engine editor.
- Add a configurable HubJump hotbar item that starts or stops the Hub jump course on right-click.
- Add Mongo-backed HubJump trigger regions so entering a stored region can start, stop, or toggle the Hub jump course.
- Add Hub map sync for HubJump trigger regions so the Maps minimap can show a Jump and Run status icon without drawing the region.
Changed
- Hide the server-selector compass in the local uebliche.games Hub and make the minigame navigator the primary hotbar item.
- Enable the local HubJump course in the uebliche.games Hub and place its item next to the navigator.
- Start HubJump courses at a configurable
start-heightand let completed blocks disappear after players land on the next block. - Prefer MongoDB for local Hub JumpRun scores and last-location storage, with SQLite fallback kept for offline development.
- Keep HubJump trigger regions hidden on the minimap and world map by default while preserving their status-badge trigger behavior.
Fixed
- Preserve legacy trapdoor facing, open, and half metadata when importing old
.schematicHub worlds such as Sakura Spawn. - Preserve legacy stair facing, half, and reconstructed inner/outer corner shapes when importing old
.schematicHub worlds. - Preserve legacy cobblestone wall, fence, and glass pane connections when importing old
.schematicHub worlds. - Preserve legacy sign post rotation, wall-sign facing, and sign text when importing old
.schematicHub worlds. - Resolve and verify the latest PaperMC Velocity runtime build when the local uebliche.games proxy starts, replacing stale cached Velocity jars automatically.
- Run the local Minestom lobby and games host on the current
26_1-SNAPSHOT, refreshing snapshot dependencies during local stack builds. - Build DockBridge from the local shaded plugin source for the uebliche.games Compose proxy so Docker auto-registration starts with all required Docker client classes.
- Replace the generic TTT placeholder world with a centered Sponge schematic loader plus a larger generated fallback arena, and guard fixed SkyBlock template blocks against out-of-chunk generation.
- Connect queued generic games through their public Velocity aliases while keeping match assignments targeted at
games-local-1. - Prefer the newest active match assignment when a player has both persistent SkyBlock and fresh round assignments.
- Load legacy
.mcrSkyBlock template regions in the generic GamesHost so players spawn on the imported island instead of falling through an empty Anvil view. - Copy legacy SkyBlock chunk SkyLight and BlockLight data into Minestom lighting sections so imported islands render with world lighting.
- Drop and pick up SkyBlock items from manual drops and block breaks, including safe first-pass vanilla block drops and leaf decay-style chances.
- Preserve imported SkyBlock starter chest contents from legacy tile entities, including the lava bucket and ice in the default template.
- Animate SkyBlock chest open and close states with matching chest sounds when players use imported or placed chests.
- Return a GamesHost current-world editor scene for SkyBlock and other game instances so the Engine editor no longer keeps stale Hub nodes after switching backend.
- Apply Engine-edited rotation and scale to Hub minigame entry mannequins, item displays, text displays, and interaction hitboxes.
[2026.04.27] - Resync visible minigame bots
Added
- Show alive SurvivalGames deathmatch players and bots in the Minecraft locator bar so the last opponent can be found.
Fixed
- Resend SurvivalGames and TTT fake-player bot spawn packets after players finish loading chunks so bot-filled rounds no longer appear empty.
- Read SurvivalGames match player assignments on the backend so queued players are kept in the active round instance and bots spawn after the real-player slots.
- Refresh minigame bot visibility without sending destroy packets so visible bots no longer flicker during safety resyncs.
- Make SurvivalGames bots abandon unreachable loot chests when pathing stalls or a chest target times out.
- Apply SurvivalGames environmental damage for lava, fire, magma, cactus, void, and fall hazards during live combat phases.
- Give alive SurvivalGames players a tracker compass after the late-game timer or one-third alive threshold, excluding right-clicked enemies and known party members.
- Add reusable vitals rules for SurvivalGames stamina, attack stamina costs, natural health regeneration, and weapon-specific melee cooldowns.
- Make TTT bots play live rounds with role-aware idle behavior, target selection, sprint-jump chasing, and melee combat.
- Improve shared Minestom bot navigation with candidate paths, retry backoff, stuck recovery, and safer direct fallback for SurvivalGames and TTT.
- Register TTT as a local Velocity Hub game lobby so queued players can connect to the TTT backend.
- Add TTT click-loot chests with per-player weapon limits, two ender-chest iron swords, bot looting, stealth-aware traitor attacks, suspicion-based innocent bot combat, and detective corpse inspection with lying mannequin bodies and enlarged interaction hitboxes.
- Add TTT karma scoring that rewards correct kills, punishes wrong kills, and scales later combat damage from the attacker's karma.
- Show TTT karma as the player's Minecraft level instead of only sending it as chat text.
- Add a TTT Traitor Shop opened from the traitor marker or
/ttt shop, with one starting traitor point and one extra point for each correct traitor kill. - Let TTT players drop loot with
Q, pick dropped loot back up, and spill inventory loot on death while keeping round utility items bound. - Generate restart-safe local match ids so game servers always reload new bot-filled queue assignments after the Hub restarts.
[2026.04.27] - Unify minigame queue command
Changed
- Replace separate SurvivalGames and TTT queue base commands with one Hub command:
/queue <gamemode>.
Added
- Add tab-completion suggestions for
/queuegamemodes and variants.
[2026.04.26] - Return minigame players to lobby
Fixed
- Send SurvivalGames and TTT players back to the configured Velocity lobby backend after the ending countdown instead of leaving them inside the finished round server.
[2026.04.26] - Add TTT game mode
Added
- Add reusable TTT core rules for Classic queues, roles, phases, role assignment, and team win checks.
- Add a local Minestom TTT backend with Velocity forwarding, generated test arena, PvP, role reveal, and bot-filled match assignments.
- Add TTT Classic to the Minestom Hub navigator, local queue commands, i18n messages, Docker Compose stack, and local Velocity backend config.
[2026.04.26] - Make SurvivalGames bots play
Added
- Broadcast SurvivalGames kill messages for player and bot deaths, with an optional thunder sound controlled by
SURVIVAL_GAMES_KILL_THUNDER_ENABLED. - Let SurvivalGames queue-fill bots loot imported map chests, equip weapons and armor, heal from food, hunt alive players or bots, and apply the shared PvP damage model during live rounds.
- Move bots into deathmatch spawnpoints with alive players so bot-filled rounds can finish naturally.
- Scan legacy Anvil map files for existing loot containers when MongoDB world storage is not available, keeping local bot loot tests on real map chests.
- Open real map chest and barrel blocks as SurvivalGames loot containers even when a local runtime chest was not part of the pre-scanned metadata.
- Treat adjacent SurvivalGames loot chests as double chests with a shared 6-row inventory and combined loot refill.
- Delay stale SurvivalGames instance cleanup during round assignment so players no longer get stuck on "Loading terrain" when they are moved into the selected map.
- Handle SurvivalGames loot chest shift-click transfers locally so hotbar slot 0 can receive items from map chests.
- Animate SurvivalGames loot chests and barrels when players open or close map loot containers.
- Add a reusable Consume library and Minestom adapter so SurvivalGames players can eat vanilla food from loot chests.
- Show a SurvivalGames countdown subtitle and play a short tick sound for announced counter steps.
- Rotate SurvivalGames bots with normal entity look packets and swing their hand when attacking so they no longer fight sideways.
- Move SurvivalGames bots onto Minestom's normal
EntityCreatureAI group with GoalSelectors for combat, looting, strolling, and looking around. - Add a custom SurvivalGames bot wait GoalSelector so bots stand still during waiting/countdown while idly looking at nearby players or the arena.
- Make SurvivalGames bots open map chests and barrels visually, loot item stacks over multiple ticks, and close the container afterwards.
- Scale the SurvivalGames alive-count deathmatch trigger down for small rounds so 4-player bot-filled matches no longer enter deathmatch immediately.
- Keep SurvivalGames bot chase movement active when they target players by using Navigator state instead of stale path targets and falling back to direct collision movement when pathing stalls.
- Let SurvivalGames bots sprint-jump while chasing, looting, and roaming so long movement no longer looks like slow ground sliding.
- Prevent SurvivalGames spectators from opening or taking items from round loot chests.
Fixed
- Smooth SurvivalGames bot idle and wait rotations so bot placeholders no longer snap their view between players and arena targets.
- Prevent SurvivalGames bots from focusing spectators during idle waits or PvP target selection.
- Resync SurvivalGames bot viewers after match/player spawns so queue-fill bots are visible to connected players.
[2026.04.26] - Stabilize local SurvivalGames traffic
Changed
- Raise the local Minestom packet-per-tick limit for the
uebliche.gamesstack to avoid false "Too many packets" kicks when a lag spike batches client movement packets. - Let the local Minestom Hub and FFA backend ports be overridden for host-based fallback runs when Docker Desktop keeps the default proxy port busy.
Fixed
- Send SurvivalGames sidebar updates only when a displayed value changes, reducing repeated timer packets during countdowns and live rounds.
[2026.04.26] - Add SurvivalGames rounds and maps
Added
- Add reusable SurvivalGames phase, player-state, loot, and map-selection contracts to the shared minigame core.
- Add reusable PvP core and Minestom adapter libraries for melee damage, armor reduction, cooldowns, and knockback.
- Let the UeblicheEngine Fabric editor open the active SurvivalGames map as a separate editor instance with visible spawnpoint markers.
- Add a no-command spawnpoint workflow where builders press
Nin the Engine editor to create world-stored spawnpoints and move existing markers from the editor view. - Let the local SurvivalGames server import Anvil map zips into the MongoDB-backed uebliche world format and select maps from player favorite and hated preferences.
- Let
/sgmap favoriteopen a map preference GUI where left click marks favorites and right click marks hated maps. - Add a local SurvivalGames map editor command for world-stored round-start triggers, including piston extension triggers for OG map starts.
- Store SurvivalGames round spawnpoints in the world manifest and expose
/sgeditor spawncommands for map authors. - Show SurvivalGames countdown chat messages and a live sidebar with mode, map, phase, timer, alive count, bots, and match id.
- Add local map preference commands and the original Survival Games map as the first local runtime map.
- Fill tiered SurvivalGames loot only at chest blocks imported from the map world and enforce basic PvP, spectator, block, death, and reset rules during local rounds.
- Add reusable world core and MongoDB storage contracts for manifests, palette-section chunks, overlays, and regions.
- Store world triggers in the uebliche world manifest so map behavior travels with the imported world.
Fixed
- Load legacy Anvil maps with numeric block sections and move the default Original Survival Games spawn onto the real map area.
- Derive each SurvivalGames map's max player count from its stored round spawnpoints.
- Let SurvivalGames bot placeholders use normal entity gravity and physics instead of floating in place.
- Stop generating SurvivalGames chest and crafting-table blocks at runtime; both now come from the imported map world.
[2026.04.26] - Add reusable crafting library
Added
- Add shared Crafting modules with loader-free recipe access policies and a Minestom vanilla recipe adapter.
- Let SurvivalGames install a configurable crafting policy and use crafting tables that already exist in the selected map.
- Reuse the existing vanilla recipe loader and matcher with pinned
1.21.11vanilla data outside the Worldgen demo.
[2026.04.26] - Add local SurvivalGames queue
Added
- Add a local Minestom SurvivalGames backend to the
uebliche.gamesstack. - Let Minestom Hub navigator entries join SurvivalGames Classic or Blitz queues.
- Prepare a local match assignment and fill missing target slots with bot placeholders after the configurable queue timeout, defaulting to 30 seconds.
Changed
- Run the local
uebliche.gamesVelocity proxy in online mode.
[2026.04.26] - Implement Minestom navigator GUI
Added
- Open the Minestom Hub navigator as a configured chest GUI with icons, lore, filler slots, and stable slot mapping.
- Execute navigator teleport, lobby/server connect, and lobby-selector actions through the same Velocity plugin channel used by the other Hub loaders.
- Add a Velocity-backed lobby selector menu for Minestom compass and navigator actions.
[2026.04.26] - Refresh local stack dependencies
Changed
- Launch the local
uebliche.gamesVelocity proxy on the current3.5.0-SNAPSHOTruntime. - Run the local Minestom Hub and FFA backends on Minestom
26_1-SNAPSHOT. - Update Hub storage, YAML, Gson, Adventure 4.x, SLF4J, and local run-task dependencies to current compatible releases.
- Keep the global Hub Minecraft target on
1.21.11until the Fabric/NeoForge build path supports Mojang26.1.2cleanly.
[2026.04.26] - Add Hub test bots
Added
- Add Hub commands for spawning, listing, moving, and removing local test bots.
- Represent test bots as stable player mannequins so the same identity model can back future reconnect placeholders.
- Document the local bot commands for queue and routing tests.
[2026.04.26] - Add SurvivalGames queue policy
Added
- Define SurvivalGames as the first
uebliche.gamesminigame with Classic and Blitz queue variants. - Add S, L, XL, and XXL sizing rules that balance wait time, full rounds, and low server count.
- Document the shared minigame core policy so Hub, regional matchmaking, game servers, and the future MMO runtime can reuse it.
[2026.04.26] - Define uebliche.games network
Added
- Document
uebliche.gamesas the dedicated Hub + Velocity minigames network with Connect ingress, regional matchmaking, on-demand server containers, and drain-based seamless updates. - Define the existing standalone Hub lobby runtime as the default lobby foundation for the
uebliche.gamesstack. - Add a local
uebliche.gamesCompose stack and introduce shared minigame core contracts for future Hub/Gameserver/MMO reuse.
[2026.04.13] - Canonical fallback tag
Fixed
- Generate Hub fallback build tags in the canonical
YYYY.M.D-bHHMMSS<short-hash>format so manual release-script runs match Uebliche.dev deploy versions.
[2026.02.01] - Feature checklist
Added
- Add feature checklist page to track project progress.
[2026.02.02] - Velocity min version
Changed
- Require Velocity 3.1.1-SNAPSHOT or newer for Hub loader selection.
- Require Paper/Forge/NeoForge/Minestom 1.21.11 or newer for Hub loader selection.
[2026.01.25] - Hub download manifests
Fixed
- Write loader update manifests to the channel root so ProjectDownloads can resolve hub downloads.
[2026.01.25] - Connect settings schema
Added
- Provide a schema description for hub settings so Dash can render typed fields.
[2026.01.21] - Deploy tag in jar name
Fixed
- Pass the Uebliche.dev build tag into the Hub deploy environment so Velocity artifacts include the tag in the jar name.
- Fall back to a date+git build tag in the hub deploy script when no tag is provided.
- Force tagged deploy builds to rerun Gradle tasks so the jar name updates reliably.
- Clean per-loader release folders before staging artifacts to avoid uploading stale dev jars.
- Clear the release directory before deploys so only selected loaders are uploaded.
- Clean the hub release directory after uploads so stale artifacts do not linger.
- Generate hub update json manifests inside Uebliche.dev instead of the release script.
- Use the Velocity version in the build tag so Velocity artifacts end with
+velocity+3.4.0-SNAPSHOT. - Include an ISO 8601
datefield in the generated hub update manifests. - Clean the hub release directory before deploy runs inside Uebliche.dev.
- Resolve the Velocity version without relying on the selected Minecraft version.
- Strip
velocity-prefixes from Velocity tag inputs when needed. - Append the Velocity version to build tags even when no Minecraft version is provided.
- Normalize Velocity version strings that already include a
velocity-prefix. - Parse
velocityVersionfrom Gradle properties robustly when building tags. - Strip the trailing
-velocity-<version>suffix from Velocity jar names so the tag stays+velocity+<version>. - Normalize Paper jar names by stripping any trailing
-paper-<version>once the tag already contains+paper. - Guard hub deploys by failing on malformed Velocity/Paper jar names.
- Skip missing loader directories during deploys instead of aborting uploads.
- Rewrite
+velocity-velocity-to+velocity+in staged jar names. - Continue uploads when at least one loader succeeded, even if others failed.
- Drop the idea-ext Gradle plugin from the Hub build to avoid resolution failures in server starts.
[2026.01.21] - Hub deploy action
Added
- Add a Uebliche.dev deploy action that builds Hub per loader and uploads release artifacts + update manifests to S3.
Fixed
- Wire the deploy action loader selection into the release script environment.
- Align the mcmeta Gradle plugin toolchains to Java 21 to avoid Kotlin target mismatches during deploy builds.
- Replace Gradle VersionNumber usage in mcmeta plugin with a local comparator to fix Kotlin compile errors.
- Disable S3 selection for the hub deploy action to ensure uploads always use the configured store.
- Use the Uebliche.dev build tag (plus loader + MC version) when creating hub release artifacts.
- Allow the hub deploy action to build multiple loaders in one run and upload all staged files.
- Fall back to the Minecraft-based Paper API version when mcmeta returns a numeric Paper build.
[2026.01.19] - 2026-01-19 - Hub dev run task
Changed
- Rebuild the hub Gradle config to resolve Velocity and Paper versions via mcmeta only.
- Use the
-Ptagvalue (from uebliche.dev) as the Hub build version.
Added
- Add a hub pre-push hook that runs Velocity tests against the latest mcmeta proxy version.
Removed
- Drop the client run task from the hub uebliche.dev config.
- Remove legacy
mod/hub/docsand Node build assets from the hub module. - Remove the unused
mod/hub/.githubdirectory.
Fixed
- Point the uebliche.dev server run task at Velocity's
runVelocitytask.
[2026.01.07] - 2026-01-07
Added
- Add the docs changelog page for Hub.