API CHANGES
- GameModule.getDisplayName() default method. Modules can now override this to declare their own display name. The core checks this method before falling back to the language.yml lookup or the descriptor name.
- ModuleConfigAPI.registerCopyOnly(String fileName) registers a config file using a copy if missing strategy: the bundled resource is only copied to disk when the file does not exist; afterwards the file is loaded without merging defaults, so entries the admin deliberately removed are never restored.
- MenuAPI.registerModuleMenuAPI(String moduleId, MenuAPI handler) and MenuAPI.unregisterModuleMenuAPI(String moduleId) modules can now register a custom MenuAPI handler for their own menus without touching the core implementation class.
- ItemClickHandler<P> functional interface for GUI item click callbacks in the inventory API.
- ItemAPI.registerClickHandler(String itemId, ItemClickHandler handler) and ItemAPI.unregisterClickHandler(String itemId) modules can now register click handlers for their lobby items.
- HytaleEventRegistry interface allows Hytale modules to register ECS systems in registerEvents() without reflection.
- MCSoundsAPI interface (extends SoundsAPI) with playNBS(P, String) and stopNBS(P) for Minecraft specific NoteBlock song playback.
- HTSoundsAPI interface (extends SoundsAPI) with playMIDI(P player, String midiId) and stopMIDI(P player) for Hytale specific MIDI song playback.
- Deprecated SoundsAPI.playNBS: use MCSoundsAPI.playNBS (Minecraft) or HTSoundsAPI.playMIDI (Hytale) instead.
All changes are additive and require no modifications to existing 3.2 modules.
API CHANGES:
- Added SchedulerAPI access to SetupContext, allowing setup handlers to run world-thread tasks directly without relying on world.execute().
- Added PlatformType enum ("MINECRAFT", "HYTALE") to declare the target platform in module.yml via the new platform field. If omitted, the module is treated as cross-platform.
- Added ModuleInfo.getPlatform() so modules can query their declared platform at runtime.
- Added SetupRequirement enum ("BOUNDS", "SPAWNS", "TIME") and GameModule.getDisabledRequirements() so modules can opt out of default setup requirements. The core skips prompts and validation for disabled requirements.
- Deprecated GameConfig.requiresBounds() and GameConfig.requiresSpawns() in favor of GameModule.getDisabledRequirements().
- Added GameModule.allowJoinInProgress() to let modules declare whether players may join after a match has started in standalone mode. Default: disabled. Party mode always disallows join-in-progress.
- Separated platform-specific menu types into:
- ui.menu.minecraft (Java/Bedrock menus)
- ui.menu.hytale (Hytale custom UI pages)
- Legacy ui.menu classes are now deprecated.
- Added experimental HytaleMenuAPI and HytaleMenuActionHandler to register/open HytaleMenuDefinition menus and dispatch module actions from Hytale UI event bindings.
All changes are additive and require no modifications to existing 3.1 modules.
- Added bStats metrics support for Hytale, including a metrics option in the core settings.yml so server owners can enable or disable metrics via configuration.
- Improved playtime tracking to better handle joins, leaves, disconnects, and forced stops, resulting in more accurate time played across matches.
- Enhanced summary readability by converting raw stat keys into cleaner, user-friendly names (for example, “block_party” → “Block Party”).
- Updated to Hytale Server 2026.02.19-1a311a592
- Added PlaceholderAPI support integration (https://blueva.net/docs/?project=blue-arcade-hytale&page=placeholders.md)
- Fixed module auto-update checks to resolve the latest release from the hytale channel before comparing versions, preventing cross-platform release mismatches and repeated download loops.
- Added options in settings.yml to disable all visibility of the game UI.
- Added a confirmation flow when disabling sessions via /baa disable or /baa game.
- Improved anonymous error reporting to only send reports on the latest BlueArcade version.
- Fixed /baa game <id> add micro/mini to enforce module type validation and reject unknown minigames.
- Fixed async transform warnings during admin setup commands like setlobby and pos1/pos2.
- Fixed configuration editing by locking /baa arena and /baa game setup until the module is disabled.
- Improved /baa disable to trigger a confirmation if arenas are running or still have players.
- Improved HUD transition safety during player teleports to avoid display errors.
- Fixed screen flickering within the user interface.
- Fixed "async" warnings and position errors when joining an arena.
- Fixed crashes caused by invalid or unknown block types.
- Fixed HUD-related crashes during world transitions and arena joins.
- Updated to Hytale Server 2026.02.06-aa1b071c2
- Added Magic Stick (/baa stick) to make selections more easily. (Parity with the Minecraft version)
- Added anonymous error reporting to Blueva.net (toggleable in settings.yml).
- Added api-version compatibility validation between modules and the Core.
- Added progress logs when a module update is detected and starts downloading.
- Improved /baa forcestart to reduce remaining time to 10 seconds during lobby countdowns.
- Improved /baa module store to verify versions before processing updates or downloads.
- Improved arena logic to instantly end and show summary when only one player remains.
- Updated allowed_commands default list in settings.yml.
- Fixed IllegalStateException crash during cross-world teleportation.
- Fixed yaw and pitch rotation being swapped when teleporting to arenas or lobbies.
- Fixed player rotation saving incorrectly when joining a game.
- Fixed crash in /baa forcestart when using a non-existent arena ID.
- Fixed module store updater to replace old JAR files with the correct filenames.
- Fixed /baa reload not correctly refreshing all configuration files.
- Fixed Party Mode games ending prematurely before all minigames finished.
- Fixed a stability issue that caused random disconnections during minigame startup or when updating the scoreboard
- Fixed the action bar getting stuck at 6 at the start of an arena
- Added previous location fallback for player restoration when no main lobby is configured.
- Fixed arena availability not updating live when using /baa enable and /baa disable.
- Fixed active arenas not stopping immediately when disabled.
- Fixed loss of player state (inventories, effects, and movement) on leave or after a crash.