- NEW MINIGAME: Capture The Wool - Capture enemy wools from their base and bring them back to yours. First team to capture all wools wins - https://store.blueva.net/resources/resource/29-capture-the-wool/
- Improved end of match flow in standalone games to make sure the correct winner celebration is used.
- Fixed victory celebrations in team games so the winning team now gets their effects and end music more reliably.
- Improved version comparison logic to avoid occasional false "new update" notices caused by formatting differences.
- Improved update-check stability so temporary empty responses from the update service are handled more safely.
- Deprecated manual sign text formats (like [BlueArcade]) are now actively blocked, reinforcing command based sign setup (/baa signs set).
- Added /baa upgradefiles to help migrate BlueArcade V2 files to V3 format. It is highly recommended that you create a backup of your files before running it.
- Improved how time_played is displayed, it now shows a readable duration format (for example, 1h 12m 9s) instead of raw seconds.
- Corrected a small capitalization detail in the default global stat label for better visual consistency.
- Added a new teams.manager section in settings.yml. Server owners can now customize team IDs, team names, team icons (materials), and set the maximum number of teams available in team-based modes.
- Improved startup spawn behavior. If a game module disables shared spawns, the Core will no longer force players into the default arena spawn. Modules that don’t require spawns can now fully manage their own spawn system.
- Fixed a /ba quickjoin error that could affect some Spigot/Paper forks (for example, Leaf) due to runtime compatibility differences, quickjoin now works correctly again on those servers.
- Fixed internal version of the plugin that marked a previous version as current.
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)
All changes are additive and require no modifications to existing 3.1 modules.
- 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.
