Skip to content

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.games instead of production uebliche.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/party storage 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,games pack 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 games pack 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,games resource-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 games pack assets for BIM, TTT, GunGame, RageMode, extraction, and queue-leave visuals.
  • Add a GamesHost /performance sidebar backed by the shared minestom-monitoring tick window for MSPT, p95, heap, CPU, and online player visibility.
  • Add libs/maps:core and libs/maps:storage-mongodb as the shared map catalog loading layer for Hub and GamesHost.
  • Add libs/teams:core and libs/teams:adapter-minestom as 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/maps while 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, and uebliche-voice-node for 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 /spawn through the Platform command API.
  • Register /hubjump, /hubsecrets, and /secrets through the Platform command API instead of native Minestom command objects.
  • Register /hubnpc through 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 mongosh startup 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 /ttt and /trouble queue 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/libs artifacts.
  • Expose minestom-games as 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=1 is 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 25567 answers 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-host Compose 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 / max sidebar 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-1 pins 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_PATH as 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 shops definitions 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 /edit instances and after creative edits in the live SkyBlock world.

[2026.05.02] - Add HideAndSeek Disguise Modes

Added

  • Add HideAndSeek Tiny Hiders and Prop Hunt variants 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:variant IDs.

[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 runtime and runtime.kind instead 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-arena and arena.mode instead 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 /queue command because minigame joins are handled through NPCs, navigator, and GUI.

[2026.05.02] - Read Permission Cookies

Added

  • Read the uebliche:permissions Minecraft 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 _FILE environment 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.max from 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.max permission managed in Dash.

[2026.05.01] - Wire Shared Permissions

Added

  • Add shared Hub permission storage through local SQLite or JDBC with permissions.* config and HUB_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=true is 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, and SKYBLOCK_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 /reset and /reset confirm on 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-1 instead 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.2 instead of the older 1.21.11 snapshot 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.2 version 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 status for 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 /hubsecrets and 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 /skyblock through 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-1 GamesHost backend instead of the inactive legacy ffa backend 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 autojoin lobbies 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 /edit worlds 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 the legacy-games Compose 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_TOKEN is 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 /bot command surface for Hub and FFA bot control, with FFA-specific behavior profiles under /bot behavior.
  • Add the same /bot list and /bot behavior surface 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 /spawn command 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-height and 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 .schematic Hub worlds such as Sakura Spawn.
  • Preserve legacy stair facing, half, and reconstructed inner/outer corner shapes when importing old .schematic Hub worlds.
  • Preserve legacy cobblestone wall, fence, and glass pane connections when importing old .schematic Hub worlds.
  • Preserve legacy sign post rotation, wall-sign facing, and sign text when importing old .schematic Hub 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 .mcr SkyBlock 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 /queue gamemodes 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 EntityCreature AI 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.games stack 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 N in 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 favorite open 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 spawn commands 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.11 vanilla data outside the Worldgen demo.

[2026.04.26] - Add local SurvivalGames queue

Added

  • Add a local Minestom SurvivalGames backend to the uebliche.games stack.
  • 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.games Velocity 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.games Velocity proxy on the current 3.5.0-SNAPSHOT runtime.
  • 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.11 until the Fabric/NeoForge build path supports Mojang 26.1.2 cleanly.

[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.games minigame 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.games as 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.games stack.
  • Add a local uebliche.games Compose 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 date field 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 velocityVersion from 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 -Ptag value (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/docs and Node build assets from the hub module.
  • Remove the unused mod/hub/.github directory.

Fixed

  • Point the uebliche.dev server run task at Velocity's runVelocity task.

[2026.01.07] - 2026-01-07

Added

  • Add the docs changelog page for Hub.