Releases: uskyblock/uSkyBlock
3.4.2 - Invite safety
uSkyBlock 3.4.2 is a patch release that prevents accidental island loss when accepting party invites.
Invite confirmation
- Accepting an island invite when you already have an island now requires confirmation. Previously, /is accept would silently delete your existing island — a single misclick could cause irreversible data loss. The command now uses the same "repeat to confirm" safety gate as /is leave and /is restart. (#139)
Full Changelog: v3.4.1...v3.4.2
3.4.1 - Safer Setup, Config, and Upgrades
uSkyBlock 3.4.1 replaces 3.4.0, which had a startup logger regression and should not be used. If you installed 3.4.0, upgrade directly to 3.4.1. uSkyBlock 3.4.x makes setup and upgrades safer with explicit config migrations, clearer schematic configuration, and more predictable validation and fallback behavior. Please check your startup logs after upgrading: some legacy config problems that were prev iously silently ignored now produce warnings, and while known cases are migrated automatically, not every invalid configuration can be repaired safely. If you have issues, you are welcome to reach out via issues (https://github.com/uskyblock/uSkyBlock/issues) for support.
3.4.1
- Fixed a startup failure in 3.4.0 caused by Guice logger injection conflicting with Guice's built-in Logger binding.
- No config or data migration changes were introduced in 3.4.1 beyond the 3.4.0 release line.
Upgrade and config reliability
- Added explicit, versioned config.yml migrations to make upgrades safer and more predictable.
- Time-based config values now use duration syntax like 30s, 2m, and 1h to make units explicit. Existing configs are migrated automatically.
- Please verify options.party.invite-timeout after upgrading. Older defaults, docs, and runtime behavior were not aligned between s and ms. The new default is 2m.
- Legacy-only keys are cleaned up automatically during upgrade.
- config.yml is now the only supported main config filename. If you use config_.yml, rename it to config.yml before upgrading.
Schematics and island setup
- Island schemes now use explicit schematic file paths, with automatic migration from older config layouts.
- Startup validation is stricter: invalid or unusable default schemes now produce clear warnings and safer fallback behavior.
- Fixed spawn placement on first world generation (hotfix already shipped in 3.3.2).
Config validation and defaults
- Invalid config values now log clear warnings and fall back deterministically instead of being silently ignored.
- Bundled config.yml defaults are now applied more consistently.
- Invalid or unsupported language values now warn and always fall back to English.
- options.island.teleportCancelDistance and signs.enabled are now explicitly supported config keys. They were previously read, but were missing in the default config and documentation.
Spawning
- Added dedicated guardian habitat spawn controls for deep-ocean prismarine habitats on islands.
- Fixed guardian habitat spawning when island mob limits are disabled.
- Existing configs are migrated automatically to add the new guardian settings.
Other admin notes
- levelConfig.yml is no longer created on fresh installs. Existing on-disk overrides still work if you already have one.
Full Changelog: v3.3.2...v3.4.1
3.3.1 - Spawn placement fix
uSkyBlock 3.3.1 is a focused patch release that fixes spawn placement on first world generation.
Fixes
- Fixed spawn placement on first world generation.
Links
- Homepage: https://uskyblock.github.io/
- Documentation: https://uskyblock.github.io/docs/
- Full changelog: v3.3.0...v3.3.1
3.3.0
uSkyBlock 3.3.0
This release is centered on localization and documentation.
Crowdin
uSkyBlock now includes 50+ languages, and translation contributions are now part of the normal project workflow.
Help improve translations on Crowdin:
https://crowdin.com/project/uskyblock-revived
Highlights
- Added 50+ bundled languages
- Improved localization for player-facing and admin-facing messages
- Added
/usb langfor language discovery and switching - Improved locale hints and first-setup language behavior
- Improved translated item, block, and entity names where supported by Minecraft
- Fixed translation packaging issues
- Fixed lore visibility for display items on Spigot
- Improved menu readability and text styling
Documentation
We replaced the old stale docs with a new docs site focused on the most useful information for players, admins, developers, and contributors:
Useful links:
- Setup: https://uskyblock.github.io/docs/admin/setup/
- Customization: https://uskyblock.github.io/docs/admin/customization/
- Challenges config: https://uskyblock.github.io/docs/admin/challenges/
- Developers: https://uskyblock.github.io/docs/developers/
- Contributing: https://uskyblock.github.io/docs/contributing/
Admin notes
challenges.ymlis now documented as a first-class tuning file- Challenge
name,description, and rewardtextare not translated automatically - Non-English servers should translate those challenge text fields manually
Upgrade note
- Removed the obsolete legacy flatland fix
- Test upgrades on staging first if you depend on older world-generation behavior
Contribute
If you want to help improve uSkyBlock without writing code, translation contributions are especially valuable right now:
v3.2.2 MC1.21.10 - 1.21.11
What's Changed
- Fixed a challenge menu UI bug on Spigot where lore/description text was not shown for challenges.
Thanks to @louloumc for the report.
Full Changelog**: v3.2.1...v3.2.2
v3.2.1 MC1.21.10 - 1.21.11
What's Changed
- Fixed a bug that caused translation files to not be included in the jar. Therefore, only English was supported.
This release only restores previous translation behavior. Stay tuned for a full translation overhaul soon - with crowdin support, many languages, per-player language settings, and more!
Full Changelog: v3.2.0...v3.2.1
v3.2.0 MC1.21.10 - 1.21.11
What's Changed
New Features and Improvements
- Support for Minecraft versions 1.21.10-1.21.11
- Multiverse dependencies are now optional. We recommend continuing to use them, but the plugin will work without them. Multi-world inventory isolation will have to be managed separately.
- Support for Multiverse version 5 (thanks to @marcbal)
- Improve the linking of overworld and nether islands through nether portals.
- Make challenge lookups by name more robust
- Add a separate spawn limit for copper golems, since their function in-game differs from other golem types
- Fix an issue where money was deposited instead of withdrawn in Vault economy integration
- Improve island protections, especially for Nether Island and the spawn regions
Removal of Redundant Legacy Features
- Removed the in-game config editor. Editing configs in-game via a GUI keyboard is both error-prone and cumbersome. Server admins can directly change the values inside the
config.ymlfile and then reload the plugin. - Removed the
/usb langcommand. Language settings can be changed via theconfig.yml.
Internal Restructuring
We tackled some major internal restructuring to make the plugin more maintainable in the long run. Highlights include
- Dependency injection (#79)
- Removed unsafe concurrency
- Unified and centralized the scheduling system
- Refactored time-related functions to use a proper time API
- Removed unused legacy code
- Migrate to Gradle builds
- Cleaned up the language translation mechanism and files
- General code cleanup and improvements
Full Changelog: 3.1.0...v3.2.0