For the complete documentation index, see llms.txt. This page is also available as Markdown.

Changelog

What changed in each release.

v4.0.0 -

  • World downloads: /worlds download <world> (buildsystem.download) packs a world into a single-player save and sends a clickable, expiring link. Since Paper 26.1 a world is a dimension of the main level and has no level.dat of its own, so the export rebuilds the save layout the client expects. An animated action-bar progress bar tracks the packing. Off by default - enable under world.download in config.yml. Links are pinned to the client that uses them first, rate limited, size and storage capped, and exports never include player data.

  • Configurable void-world block: Choose the block placed at the spawn of newly generated void worlds (world.void-block.enabled / material, default GOLD_BLOCK), or disable it entirely. The block is only placed on initial generation, never on later loads, imports, or renames, and it never overwrites an existing block.

  • Per-world physics exceptions: Physics control is no longer all-or-nothing. Right-click the physics toggle in /worlds edit to open the exceptions menu (same buildsystem.edit.physics permission) and re-allow individual behaviors (block updates, connections, falling blocks, fluid flow, leaf decay, growth, spreading, block forming, block fading) while the world's physics stay disabled. Values persist per world; the world.disabled-physics config section is replaced by per-category defaults under world.defaults.physics-exceptions (existing configs migrate automatically).

  • Custom world statuses: Create, restyle, reorder and delete world statuses in-game (/setup → World Statuses) or via statuses.yml. The status editor is a drag-and-drop layout screen, the same as the navigator editor, so you also decide exactly where each status sits in the /worlds setStatus picker. Built-in defaults can be restyled or deleted (never the last remaining status). Assign with dynamic permission buildsystem.setstatus.<id>.

  • Navigator categories: Group worlds by visibilities and statuses into customizable tabs. A world is listed in every category that groups it, supporting overlapping tab listings. Any category can be deleted, including the last one. The navigator then stays empty until you reset to defaults. Create with dynamic permission buildsystem.create.category.<categoryId>; admins with create bypass can create in any category.

  • Per-category commands & visibility: Every category (built-in or custom) gets a /worlds <category> shortcut, generated from the navigator instead of the old hardcoded archive/private/public. The dynamic permission buildsystem.navigator.category.<categoryId> (granted by default) governs both the shortcut and whether the category shows in the navigator, so denying it hides a category and disables its command together. A real subcommand always wins a name clash, so a category named like a command never shadows it.

  • In-game /setup GUI: Redesigned configuration hub branching to editors for default world-type icons, world statuses, and the navigator layout. Features a 16-color concrete block/dye picker, scrollable/filterable item picker, player-head skull texture support, and confirm/reset controls. "Reset to defaults" restores statuses, categories, and default world-type icons.

  • Navigator Layout editor: Integrated editor (/setup → Navigator Layout) that manages categories and arranges where each category and the settings button appear in the inventory navigator. Click to drag/drop, drop outside to remove, drop on the delete target (textured skull) to delete the category, right-click to edit, and create categories directly. Includes automatic inventory snapshotting and restore safeguards. The status editor (/setup → World Statuses) is built on the same screen.

  • Per-world, folder, and category icons: Set a custom icon material or skull texture for each world, folder and category (e.g. %viewer% for the viewer's own head). In the world editor (/worlds edit), click the world item to pick a material, or right-click a player-head icon to set its texture (buildsystem.edit.icon).

  • Custom World Seed: Shift-click a predefined world type in the create menu to set its seed. Numeric input is used as the literal seed, other text hashes to a long, and a blank entry falls through to a random seed.

  • Pinned Worlds: Force specific worlds to stay at the top of navigator lists (buildsystem.edit.pin).

  • Runtime Templates: Copy active worlds to templates/ using /worlds saveTemplate <world> [templateName] (buildsystem.savetemplate).

  • Granular Options: Limit /settings toggles with individual permission nodes (buildsystem.setting.<option>).

  • Dynamic Builder Access: Restrict template/generator creation dynamically with buildsystem.create.template.<name> and buildsystem.create.generator.<name>.

  • Permission Whitelist: Limit /worlds setPermission assignments using world-permission-whitelist in config.yml.

  • API Additions: World lifecycle events, folder events, backup events, dynamic WorldService.importWorlds() bulk load, typed WorldData access through a WorldDataKey<T> catalog (data.get(WorldDataKey.PERMISSION) / data.set(WorldDataKey.BLOCK_BREAKING, true)), registries for statuses and categories, and per-status picker placement (BuildWorldStatus#getStatusSlot() / isShownInStatusMenu()).

  • System Requirements: Requires Java 25 and Minecraft 26.1 or newer.

  • Configuration Versioning: Automatic migration of config.yml and messages.yml on load. Built-in statuses seeded automatically from legacy keys.

  • Navigator commands: The fixed /worlds archive, /worlds private and /worlds public subcommands were replaced by per-category /worlds <category> shortcuts (see Added). Existing setups keep working, because the three built-in categories still answer to those names.

  • World creation limits: world.max-amount.* is now world.limits.*, and the value is the default number of worlds one player may create of that visibility rather than a count of every world on the server. A buildsystem.create.<visibility>.<amount> node overrides it, buildsystem.admin ignores it, and worlds are counted per visibility, so a private-world limit no longer blocks public ones. Values carry over automatically.

  • API Overhaul:

    • Moved BuildWorldManipulationEvent to de.eintosti.buildsystem.api.event.world.

    • World creation and importing are now fluent (WorldService.newWorld() / importWorld()).

    • Type<T> renamed to Property<T>.

    • BuildWorld.getWorld() returns Optional<org.bukkit.World>.

    • BuildWorldStatus and NavigatorCategory are now interfaces managed via registry.

    • Per-world private boolean replaced with Visibility (EVERYONE/ADDED_PLAYERS).

    • Plugin instances registered through Bukkit's ServicesManager.

  • Removed (API): Pruned BuildWorld.setLoaded(boolean), BuildWorld.asProfileable(), WorldData.getConfigFormat(), WorldData.getAllData(), and public registration entrypoints on BuildSystemProvider.

  • Dropped Configuration Flags: Removed legacy toggles per-option-permissions and restrict-template-access.

  • Compatibility & Safety:

    • Paper/Spigot GameRule compatibility via XGameRule class bridge.

    • Thread-safety: block checks, world-rename registry mutations, and skull profile callbacks forced to run on the main server thread.

    • Path-traversal guards added to template and world directory resolution, plus a containment check on the public WorldService.newWorld(String) and on deletion so a name resolving outside the world container is rejected (#481).

  • Backups: Backup thread pool bounded, credentials validated on load, and SFTP exceptions thrown cleanly as IOException.

  • Backup credentials from the environment: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and BUILDSYSTEM_SFTP_PASSWORD can supply backup credentials instead of config.yml, and take precedence when set. Previously these were documented but could not work, because config.yml was required to hold a value before the environment was ever consulted.

  • Default world backups: The server's default world no longer folds every other world into its own backup. Since Paper 26.1 all worlds live inside it, so its backup now covers only its own data. Restoring it in-place is refused - that would have deleted every world on the server.

  • Local backups: The first backup of any world failed because its per-world directory was never created.

  • Backups after a reload: /buildsystem reload swapped the backup backend but left recently-used worlds bound to the old one, which had already been closed - their next backup failed against a shut-down S3/SFTP client and a deleted temporary directory. Backups also no longer overlap on the same world, so the per-world retention limit cannot be overshot by two backups running at once.

  • World Loading: A world whose stored difficulty is unreadable no longer disappears on load. It falls back to Peaceful, like the plugin's other world enums. World settings missing from disk (block protections, and the last-edited/loaded/unloaded timestamps) now load with the same defaults a freshly created world gets, instead of coming back disabled or stamped at epoch zero.

  • World Renaming: Fixed rename persistence and the parsing done when a renamed world is unloaded.

  • World renaming could destroy a world: The directory copy logged failures instead of reporting them, so a rename that only partly copied the world went on to delete the original and reported success. The copy now fails loudly, the original is kept, and the player is told (worlds_rename_error, a message that existed but was never sent). The same silent-copy problem made a failed template save report success and let a world be created around a half-copied template (new worlds_template_creation_error).

  • /night: Running it on an unknown world reported the /day error message instead of its own.

  • Scoreboard: The per-second refresh read the player's world and its BuildSystem data off the main thread, and recomputed every placeholder once per scoreboard line rather than once per refresh. It now resolves them once, on the main thread.

  • settings.date-format: Timestamps are formatted with java.time instead of the legacy formatter. Common patterns such as dd/MM/yyyy are unaffected; a pattern the new formatter cannot parse now logs a warning and falls back to dd/MM/yyyy instead of erroring on every render.

  • Missing message keys: A missing key used for item lore is now reported in the console, like a missing key used for a name already was. Previously it rendered as empty lore with no warning at all.

  • Bulk world import: A world that failed to import is now reported (new worlds_importall_world_failed message) rather than silently reducing the count, and WorldService.importWorlds() logs every skipped or failed world instead of discarding the outcome. A world that throws mid-import no longer strands the run, which previously left the "import already in progress" flag set until restart and blocked every later bulk import.

  • Import flags: /worlds import -t <type> with an unknown type, and /worlds importAll -g <generator> with an unknown generator, were silently ignored - the world imported with the default instead, and nothing said so. Both now report the bad value (new worlds_import_unknown_type) and stop.

  • Navigator after "reset to defaults": Resetting statuses or categories discarded the custom ones without updating what referenced them, so folders in a discarded category vanished from the navigator - along with the worlds inside them - until the next restart. Resetting now cascades exactly as deleting one does.

  • World Deletion: A world directory that fails to delete is now reported instead of silently leaving files behind.

  • Game Rules: Game-rule names updated to the current API.

  • Disable Interactions: The setting now covers every interactable block. It previously used a hand-maintained block list that had fallen behind Minecraft, so newer blocks (crafter, trial spawner, vault, decorated pot, copper doors/trapdoors/bulbs, pale oak doors and gates, creaking heart) could still be opened with the setting enabled.

  • GUI Fixes: Click matching hardened against the target menu only (preventing inventory clicks from triggering button actions), duplicate listener registrations fixed, and placeholder substitutions converted to literal matches.

  • Performance Optimizations:

    • Cached navigator armor stands, eliminating per-tick entity scans.

    • Removed per-tick location allocations in NoClip checks.

    • Reduced memory allocation in scoreboard rendering, color processing, and the template menu.

Upgrading from BuildSystem 3.x to 4.0.0? Please read our comprehensive Migration Guide for detailed instructions on:

  • Automatic database & file conversion.

  • Configuration updates and removed flags.

  • New dynamic permission nodes.

  • Language file (messages.yml) changes.

  • Developer API upgrade guidelines and package moves.

v3.0.2 - 10.04.2026

  • Fixed World Rename: Renaming a build world no longer causes its folder reference to become out of sync.

  • Fixed Backup Service: The backup service now correctly reloads on plugin initialisation, preventing backups from silently not running after a reload.

v3.0.1 - 20.10.2025

  • Fixed Permission Check: Players with bypass permissions (e.g., buildsystem.bypass.settings) will now be correctly allowed to modify worlds.

  • Fixed Startup Crash: Resolved a server crash by ensuring all worlds are loaded on the main server thread.

v3.0.0 - 17.10.2025

v2.27.1 - 26.05.2025

Fixed java.lang.ClassCastException when sending title to player that a world is loading

v2.27.0 - 26.05.2025

  • Add support for Minecraft 1.21.5

  • Add individual permissions for each gamemode

v2.26.0 - 16.01.2025

  • Add support for Minecraft 1.21.3 & 1.21.4

  • Simple Axiom Support

  • Add permissions to /buildsystem, /worlds help and /worlds item

  • Add bypass permissions for viewing/joining worlds

  • Reload messages.yml file when using /config reload

  • Fix UUID fetch bug in offline server

  • Add permission check when navigating from /worlds builders to the world editor

v2.25.2 - 30.09.2024

Added the option to disable the adventure game mode on archived worlds

Removed fall damage cancellation

v2.25.1 - 08.07.2024

Fixed IncompatibleClassChangeError

v2.25.0 - 06.07.2024

  • Add support for Minecraft 1.21

  • Improve skull performance in menus

  • Added world type to the import command

  • Allow builders to be added and removed via command

  • Fixed incorrectly implemented bypass logic

  • Don't allow world to be renamed if other world with new name already exists

  • World was not saved before chunks are unloaded

  • Fixed NPE when using filters

v2.24.4 - 13.12.2023

  • Added support for Minecraft 1.20.4

  • Fixed message error in world editor

v2.24.3 - 01.12.2023

  • Worlds are now unloaded by default; If you do not have this setting activated, I suggest you do so

  • Add permission to setting individual status states (/worlds setStatus): https://buildsystem.eintosti.de/worlds/setstatus#individual-permission

  • Improve player teleportation: Player is now teleported up when VOID damage is received

  • You can now use PlaceholderAPI placeholders in messages

  • The scoreboard is now updated scoreboard asynchronously

  • Worlds which are blacklisted from being unloaded will now load when the server starts

  • The "import successful" message will only be sent if the import actually finished

  • Added missing plants to the "Place Plants" setting

v2.24.2 - 04.10.2023

  • Added 1.20.2 support

  • Few bug fixes

v2.24.1 - 26.06.2023

  • Added 1.20.1 support

v2.24.0 - 10.06.2023

  • Added 1.20 support

  • Added ability to filter words in navigator

    • New slot in the navigator

    • Toggle through multiple settings: "none", "starts with", "contains" and "matches"

  • Allow admins to specify further illegal characters in a world's name

    • New config option: invalid-characters

    • If a character in the world's name matches the specified regex, it is removed

  • New placeholders

    • %buildsystem_lastedited%

    • %buildsystem_lastloaded%

    • %buildsystem_lastunloaded%

v2.23.1 - 07.05.2023

  • Fixed worlds being not imported correctly

  • Scoreboard lines longer than 30 chars are now trimmed in versions <1.13

  • Fixed bypass of world version check when importing worlds (-DPaper.ignoreWorldDataVersion)

  • Added -c <creator> argument to /worlds import command, to specify which player should be the creator of the imported world

  • Removed creator-is-builder config option, as creator should always be builder

  • Removed world-edit-wand config option, as WorldEdit wand is now read from the (FastAsync)WorldEdit config

v2.23.0 - 23.03.2023

  • Added 1.19.4 support

  • Added ability to not send messages

    • Blank messages are no longer sent to the player

    • Example: A command is to be hidden from /buildsystem -> Set buildsystem_XXX: "" in the messages.yml file

  • Multi-page /buildsystem command

    • The /buildsystem [page] command now takes a page argument, as it no longer displays all commands at once

  • Players not in build-mode could not interact with other inventories when move-items was disabled

v2.22.3 - 04.03.2023

  • Fix duplicate message key

    • The key "worlds_import_newer_version" was supposed to be "worlds_importall_newer_version"

  • Allow messages to contain commas

    • Previously, when using commas (,) in multi-line messages would result in the message being split

v2.22.2 - 20.12.2022

Compress world level.dat with GZIP when writing server version

v2.22.1 - 16.12.2022

Fixes a bug that would stop worlds from being loaded on servers using Spigot 1.8

v2.22.0 - 16.12.2022

  • 1.19.3 support

  • Check world DataVersion before loading

    • Stops newer worlds from being loaded in older versions

    • Is ignored when Paper.ignoreWorldDataVersion flag is enabled

  • Add move-items config option

    • Stops a player from moving/taking items to/from other inventories when in build-mode

    • Also changed the default of drop-items to true

  • Player would receive navigator even if setting was disabled

  • Instant Place Signs didn't support mangrove_sign

v2.21.2 - 05.11.2022

  • Improvements to /build

    • Add permission for when setting other players into build-mode: buildsystem.build.others

    • Reset player inventory when leaving build-mode

    • New config option for disabling item drops when in build-mode (default: false)

    • Add LuckPerms context for when players are in build-mode (build-mode)

  • Custom blocks were not being placed when disable interactions is enabled

v2.21.1 - 05.11.2022

Fix world icon not displaying correctly

v2.21.0 - 05.11.2022

  • Utilize PaperLib

    • If the server is running Paper, players will be teleported asynchronously

  • Improved /worlds command

    • Up till now, whenever a command such as /worlds edit <world> was run, the world always had to be specified

    • Now, whenever a world is not specified (/worlds edit) the player's current world is used

  • Improvements to /blocks

    • Added invisible item frame to servers running 1.17

    • Improved rotation of orientable blocks

  • Allow players to rejoin server in unloaded worlds

    • If a player has spawn teleportation deactivated and world unloading has been enabled, the world the player was previously in is now loaded automatically

v2.20.6 - 10.10.2022

  • Add permissions to each world type creation

    • Allows server owners to restrict which world types can be created

  • Allow admins to bypass a world's permission

    • Use the admin permission: buildsystem.admin

v2.20.5 - 15.08.2022

  • Fix NoSuchMethodError thrown in legacy versions

v2.20.4 - 02.08.2022

  • Don't use StringUtils from apache commons lang3

  • Switch from Spigot 1.19 to 1.19.1 as API version

v2.20.3 - 04.07.2022

  • Fix "Double Stone Slab" block being placed incorrectly (Minecraft 1.14+)

  • Show archived private worlds in world archive

v2.20.2 - 03.07.2022

  • Added piston head block to /blocks

  • When editing gamerules in a world (/worlds edit), the next page button should now work as intended in versions <1.13

v2.20.1 - 15-06.2022

  • Update notifier displayed incorrect version

v2.20 - 15.06.2022

  • Support for Minecraft 1.19

  • Don't import a world twice if already existent (/worlds importAll)

v2.19 - 27.05.2022

v2.18.9 - 21.04.2022

  • Correctly allow multiple private worlds to be created

v2.18.8 - 21.04.2022

  • From now on, only the creator of a world can delete it (or players with the admin permission: buildsystem.admin)

  • Players are no longer limited to one private world. Use the permission buildsystem.create.private.<amount> to set the maximum amount a player can create

  • Fixes a bug where creators could not add builders to their world with /worlds addBuilder

v2.18.7 - 12.04.2022

  • Navigator permission changes

    • Changes the permission needed to open the navigator to buildsystem.navigator

    • Adds a permission which is needed to receive the navigator item: buildsystem.navigator.item

  • Fixed bugs with the modern navigator

    • Item used to close navigator could be dropped

    • Players were able to modify other player's navigator leaving them unusable

  • Minor optimisation

    • Reset unload task after world switch (or quitting) to ensure correct unload time

v2.18.6 - 30.03.2022

  • Changes to world difficulty

    • Allow a world's difficulty to be changed in the /worlds edit <world> menu

    • Correctly retrieve the default world difficultly from the config

  • Allow unloaded worlds to be renamed

    • Previously, a world had to be imported in order for it to be renamed

v2.18.5 - 29.03.2022

  • Fix incorrect chunk generator when loading worlds

    • Worlds that were unloaded and then loaded again were using the standard WorldCreator, not the custom generators they should be

v2.18.4 - 21.03.2022

  • Fixed an error in legacy versions (< 1.13) where normal blocks could not be broken when slab breaking was enabled

v2.18.3 - 20.03.2022

  • Some listeners were registered twice

  • Instant Place Signs would not work with Material#DARK_OAK_SIGN

  • Unloaded worlds were not being deleted correctly

  • /settings would throw a NPE when using Minecraft versions < 1.13

v2.18.2 - 11.03.2022

  • Added new config option: teleport-after-creation (default: true)

    • When enabled, the player is teleported a world after it is created instead of having to enter through the navigator

  • Chunks in void worlds were not generated correctly after the server restarts

v2.18.1 - 06.03.2022

  • Support for Minecraft 1.18.2

  • Sending commands that use CommandSender#spigot throws NoSuchMethodError

  • NullPointerException while opening GameRule inventory

  • Navigator does not stay in inventory when „Keep Navigator“ is enabled

v2.18 - 15.02.2022

Full changelog: https://github.com/einTosti/BuildSystem/releases/tag/2.18

  • Support for RGB messages

  • Implement buildsystem:role Context for LuckPerms

  • Add limits to the amount of worlds allowed to be created

v2.17.2 - 16.01.2022

  • Worlds can no longer have a blank name when only consisting of special characters

  • Stop items from trying to be placed with "Disable Interactions" enabled

  • Stop WorldEdit items from being able to break blocks when they shouldn't

v2.17.1 - 26.12.2021

  • Fix WorldEdit wand breaking blocks

v2.17 - 09.12.2021

  • Support for Minecraft 1.18

  • Bugs with lower versions. If any still occur, please report them on GitHub

v2.16.6 - 26.11.2021

  • NoClassDefFoundError with /worlds help

v2.16.5 - 25.11.2021

  • Previously, only WorldEdit commands were blocked. Now the usage of brushes etc should also be blocked

  • Bug fixes

  • Refactored code

v2.16.4 - 21.09.2021

  • Added ability to unimport worlds with /worlds unimport (Perm: buildsystem.unimport)

  • Added /w as an alias for /worlds

  • Fixed bug where settings were not toggling correctly

v2.16.3 - 01.09.2021

  • Added option to add worlds to a blacklist which ensures that they won't be unloaded (config.yml: world.unload.blacklisted-worlds)

  • Added option to keep the "Navigator" on inventory clear (/settings)

v2.16.2 - 23.08.2021

  • Added command to remove a world's custom spawn (/worlds removeSpawn)

  • Added option to set a world's default difficulty to the config (world.default.difficulty)

  • Improved the blockage of WorldEdit commands for non-builders

  • Improved /worlds tab-complete

  • Improved /worlds help command

  • /config can now be used from the console

v2.16.1 - 02.08.2021

  • Adds option to not give navigator on join ("settings.navigator.give-item-on-join")

v2.16 - 26.07.2021

  • Custom world generators

    • When creating a new world, a new icon can be found in the "World Create GUI": Generators

    • In order to create a world with a custom world generator, the generator plugin must be present in the "plugins" folder (and the plugins must be loaded!)

    • Then after having selected "Generators" as a world type, enter the world name and afterwards the name of the World Generator and voilà!

  • Duplicate key in messages.yml bug

v2.15 - 22.07.2021

  • Support for 1.17(.1)

  • Replaced AnvilGUI with chat input

v2.14.6 - 23.04.2021

  • Standard settings for newly created worlds

    • e.g. physics, explosions, etc.

  • Commands should no longer clash with other plugins

  • World names in the "navigator" (!) can now include symbols

  • Skulls in the "private world navigator" should consume fewer resources & load faster

  • You can now place plants in flower pots while "Place Plants" is activated

v2.14.5 - 13.01.2021

  • World names in /worlds can now have other characters that the world name itself​

v2.14.4 - 03.11.2020

  • Support for Minecraft 1.16.4

v2.14.3 - 20.09.2020

  • Added the ability to write with colors in the chat & on signs » Chat: buildsystem.color.chat » Signs: buildsystem.color.sign

  • Restructured config

    • Will have to be deleted after updating!

  • Improved world import

    • The world which is supposed to be imported will now be checked for invalid characters

    • /worlds import can now be tab completed

    • /worlds importAll now has a delay between each world (can be configured in the config, default 30s)

  • Improved NoClip

    • The players previous gamemode is now saved

v2.14.2 - 18.08.2020

v2.14.1 - 15.08.2020

  • The navigator should now work as expected in 1.16+

  • Fixed back_usage message error (only for newly generated messages.yml files)​

v2.14 - 14.08.2020

v2.13.3 - 09.06.2020

  • /spawn [set/remove] & /config <reload> can now be tab-completed

  • The spawn (/spawn) can no longer be set in a world which is not imported

v2.13.2 - 02.06.2020

v2.13.1 - 23.05.2020

  • Added sounds to the "World Editor" and the "Builders" GUI

  • Improvement to the "World Editor"

    • After changing a world's permission or project via the "World Editor" you are now brought back to the GUI instead of the GUI just closing

    • Improved messages (information about world status, permission & project)

      • In order to see these changed messages.yml must be deleted (or at least all messages with " "worldeditor_" in them)

v2.13 - 22.05.2020

  • New setting: Place plants

    • When enabled, plants can be placed n all kinds of blocks

  • World editor

    • Easily customise worlds with a GUI » Can be opened with /worlds edit or by right-clicking a word in the world navigator

    • World must be loaded to use the editor!

    • Features:

      • Toggle block breaking/placement/physics

      • Alter the time of day

      • Toggle explosions

      • Butcher all mobs in a world

      • Manage builders (more to that later)

      • Manage gamerules

      • Toggle world visibility (if a world is shown in "Private Worlds")

      • Toggle MobAIs

      • Change a world's status/project/permission

  • Introducing builders

    • When a world has builders enabled (private worlds by default, public worlds after being enabled), only these players can place and destroy blocks

    • A list of a world's builder can be seen in the world editor or with /worlds builders (Permission: worlds.builders)

    • Add a builder in the world editor or with /worlds addBuilder (Permission: worlds.addbuilder)

    • Remove a builder in the world editor or with /worlds removeBuilder (Permission: worlds.removebuilder)

    • Only the world creator can add or remove builders! (Set the creator with /worlds setCreator )

    • Can be disabled in the config (block-world-edit-non-builder)

  • Admin bypass permission

    • Permission: buildsystem.admin

    • Bypasses all restrictions such as not being the creator of a world, archived worlds, disabled block breaking/placement

  • New /worlds info placeholders

    • Added %builders_enabled%, %block_breaking% & %block_placement%

    • Shows whether or not a certain world has the builder feature enabled and whether or not blocks can be placed/broken

v2.12.2 - 17.05.2020

  • Powered Redstone Lamps are now lit, even when physics are disabled

  • "Disabled Interact" should again work as expected

v2.12.1 - 10.05.2020

  • Update checker

    • Automatically checks for updates when the server starts/reloads

    • Players who have the permision "buildsystem.update" (default: op) are also notified of join

    • Can be disabled in the config (update-checker)

  • Additions to /speed

    • /s as an alias for /speed

    • /speed (/s) can now be tab-completed

  • When placing the "Powered Redstone Lamp", the block above would lose its colour

  • Private world would disappear when set to archive (now shown in the "World Archive")

  • Now all block interactions should be cancelled when "Disable Interactions" is enabled

v2.12 - 07.05.2020

  • More settings

    • Instant Place Signs: Allows for signs to be placed without the menu opening

    • Player hider: Hide/show all players

  • Custom import generators

    • When importing worlds you can now choose from 3 generators: NORMAL, FLAT, VOID (default)

    • /world import [-g ]

  • Implemented bStats

    • Gives me information on how the plugin is used, so I can improve it more

  • Toggle join/quit messages

    • Option found in the config: join-quit-messages (default: true)

  • Toggle block in void worlds

    • You can now toggle whether or not a gold block is placed in a void world when it is created

    • Option found in the config: void-block (default: true)

  • Improved navigator

    • Now contains settings (/settings command will still continue to exist)

  • "Slab Breaking"

    • Smooth Stone, Smooth Sandstone & Smooth Red Sandstone blocks (found in /blocks) are now fully broken when "Slab Breaking" is enabled

v2.11.1 - 05.05.2020

  • Fixed a bug where the second page of the "World Archive" couldn't be opened

v2.11 - 04.05.2020

  • /worlds setStatus GUI can now be customized

    • Use /setup and proceed the same as with changing the other default item

  • Improved /worlds delete

    • World deletion must now be confirmed (No more accidental deletes)

    • Therefore you can now tab-complete /worlds delete

  • Redesigned "World Create GUI"

    • Check it out for yourself

v2.10 - 23.04.2020

  • Added the option the clear a player's inventory on join

    • Can be toggled with /settings (default: disabled)

  • Worlds can now be unloaded

    • After X amount of time, a world is unloaded if a player hasn't entered the world since then (default is 1h)

    • First enable the option in the config (unload-worlds)

    • If you want to you can change the time until the world is unloaded (time-until-unload)

    • Then reload the server

  • Worlds can now be sorted in more ways

    • Added "Z-A" and "oldest first"

  • The scoreboard can now be disabled in the config

  • Improved deletion of worlds

  • Blocks will now be coloured when "Disabled Interactions" is enabled

  • Fixed some other small bugs

v2.9 - 04.04.2020

  • /setup

    • Changes the items which

      a) are shown in the GUI when you create a world

      b) are given to specific worlds by default (e.g. Normal world is a log)

    • Permission: buildsystem.setup

v2.8.1 - 25.03.2020

  • Fixed a bug where worlds wouldn't load if they had a dot in their name

v2.8 - 21.03.2020

  • Spawn system

    • Use /spawn set to set a spawn where all players will be teleported to (if they wish) when they join the server or use /spawn » Remove the spawn with /spawn remove

    • Permission needed: buildsystem.spawn

  • New settings

    • There are now 2 new options in /settings

      1) Toggle block interactions:

      • When block interactions are deactivated you can place blocks against certain blocks (e.g. furnace, crafting table, chest, etc.) without opening them

      • This function works best in Spigot 1.13+ because blocks won't rotate when place in versions below

        2) Toggle spawn teleportation

      • If players don't want to be teleported to the spawn, they can disable this

  • World information

    • /worlds info [world] gives you information about a world

    • Permission: worlds.info

  • Fast enable physics

    • /physics all quickly enables world physics in all worlds, as long as there isn't a world names "all"

  • Fixed a huge ton of bugs

v2.7 - 01.03.2020

  • More world information

    • Newly created world from now on store the world creator and creation date/time

      • World Creator: %creator%

      • Creation date/time: %date%

    • These new placeholders can be used in the scoreboard and in the world navigator lore

    • The world creator can be changed with /worlds setCreator

    • The date format can be changed in the config

  • Option to change how worlds are sorted in the navigator

    • Choose between Alphabetically and Creation date

    • Can be changed with /settings

  • Updated mechanics

    • The config is now automatically reloaded when the server reloads

    • You can now add unlimited lines to a lore in messages.yml

    • Changed other internal things

  • Improved private worlds

    • Private worlds are no longer just flat worlds

    • Now you can choose between all the "normal" worlds types (Normal, Flat, Void, Nether & End)

  • Other changes

    • Redesigned /settings GUI

    • The scoreboard and prefix are now stored in messages.yml, no longer in the config

v2.6.2 - 26.02.2020

  • Fixed a bug where /worlds setStatus threw an error in Spigot versions <1.13

v2.6.1 - 23.01.2020

  • Bug fix

v2.6 - 04.01.2020

  • Added "Nether" & "End" worlds

    • To create such a world just click on the corresponding items when creating a world: End stone (End) and Netherrack (Nether)

v2.5.1 - 01.01.2020

  • Forgot to add the new commands to /buildsystem » Added /explosions and /noai

v2.5 - 30.12.2019

  • Disable entity AIs

    • Use /noai [world] to disable entity AIs

    • Permission: buildsystem.noai

  • Disable explosions

    • Use /explosions [world] to disable explosions

    • Permission: buildsystem.explosions

v2.4 - 15.12.2019

  • Added support for 1.13-1.15

    • BuildSystem now support all versions from 1.8-1.15

    • It is not wise to load worlds from newer versions (e.g. 1.15) in older versions (e.g. 1.8)!

  • Other bug fixes, changes and new features

    • The list of everything that has changed is too long to put here, so you can find them out yourselves ;)

v2.3.3 - 18.11.2019

  • Added "Burning Furnace"

    • Always lit furnace in /blocks​

  • Fixed a bug concerning custom spawns​

v2.3.2 - 16.11.2019

  • Pitch and Yaw are no longer swapped in custom spawns

  • Other smaller bug fixes​

v2.3.1 - 15.11.2019

  • More scoreboard placeholders

    • Added %permission% and %project% as variables that can be used in the scoreboard

  • /config reload now refreshes the scoreboard instantly​

v2.3 - 14.11.2019

  • Custom Spawnpoints

    • You can now set the spawnpoint of each world with /worlds setSpawn

    • Permission: buildsystem.setspawn​

v2.2 - 03.11.2019

  • Recoded scoreboard

    • Now uses packets, shouldn't flicker anymore

  • Added the option to disable vanish in archived worlds

    • Can be toggled in the config [Reload config with /config reload!]​

  • /skull <ID> now gives you a skull with a custom ID

  • Removed bug where multiple scoreboard were shown at the same time​

  • Blocks and armor stands can no longer be interacted with if they are in an archived world

v2.1.1 - 23.10.2019

  • Fixed a (yes another) scoreboard bug​

v2.1 - 23.10.2019

  • Overview of all commands

    • /buildsystem now gives you an overview of all commands

    • Only the commands of which you have the permission for are shown

  • Fixed a bug with the scoreboard » Added a few messages I had forgotten​

v2.0 - 22.10.2019

  • Custom messages

    • You now have the option to change all of the plugin messages

    • Messages are found in the messages.yml file​

  • Improved the 'new navigator': is now more responsive

  • Fixed spellings mistakes

  • Fixed some bugs

  • Refactored lots of code

v1.8 - 10.10.2019

  • Added Scoreboard

    • Text can be altered in the config

    • Can be enabled/disabled with /settings

v1.7.2 - 03.10.2019

  • Fixed a bug where the player received the wrong block with /blocks​

v1.7.1 - 28.09.2019

  • Added "Powered Redstone Lamp" block

    • "Redstone Lamp" that always is lit

    • You can find the block in /blocks

v1.7 - 03.08.2019

  • Introducing: Templates

    • Templates are a new and easy way to create worlds

    • Copy the template you want added into the game into the "templates" folder

    • Then when choosing to create a word you can choose between Predefined Worlds and Templates

v1.6.4 - 30.07.2019

  • Refactored some code

  • Fixed a bug where the default join/quit messages weren't displayed correctly (without colour)

v1.6.3 - 09.07.2019

  • Fixed a bug when not having the "buildsystem.gui" permission

v1.6.2 - 24.03.2019

  • Added permission

    • New permission: buildsystem.gui

    • Enabled by default

    • Permission needed to open the "Worlds-GUI"​

v1.6.1 - 26.02.2019

  • Small change

    • Added /worlds setStatus <world> to /worlds help

  • Refactored code

  • Fixed NoClip

v1.6 - 14.10.2018

  • Added two new blocks

    • "Nether Portal"

    • "End Portal"​

  • When renaming a world, it's previous name is already in the anvil

  • Refactored some code​

  • Fixed a bug when renaming worlds​

v1.5.1 - 06.10.2018

  • Improved /worlds "Help-Message"

    • Clickable messages: Auto suggests command

    • Hoverable messages: Shows the permission needed to run the command

v1.5 - 01.10.2018

  • Rename worlds

    • Use /worlds rename <world> to rename a world

    • Permission: buildsystem.rename​

  • Skulls in the private worlds GUI now have the texture of their player

  • Small changes to creating worlds, changing permissions & changing statuses

v1.4 - 25.09.2018

  • Custom colours

    • In /settings, each player now has the opportunity to change the glass colour in all of the GUIs

v1.3.1 - 21.09.2018

  • Fixed a incorrectly named sub-command (/worlds setProject)​

v1.3 - 20.09.2018

  • Added more blocks to /blocks

v1.2 - 13.09.2018

  • Added tab complete to /day and /night​

  • Recoded the current tab completes

v1.1 - 11.09.2018

  • Improved physics command

    • You can now use /physics to toggle block physics in other worlds (/physics [world])

    • You can now tab complete worlds

  • Improved world switching

    • You can now only enter a world if you have it's permission

    • But players can always join the default world or worlds with their permission set to "-"​

v1.0.2 - 10.09.2018

  • Change to finished & archived worlds

    • When entering worlds that have been set to have the archive status, the player will now not be able to build or break blocks in the world (was previously finished)

    • Worlds that have been set to have the finished status, act like "normal" worlds again

v1.0.1 - 09.09.2018

  • Improved the creation of worlds

  • When a world is created, the standard time is now 6000 ticks

  • Refactored code

    • Changed the way the config are created

    • Cleaned up some code​

  • Fixed errors when interacting with worlds not registered by the plugin

  • Fixed errors when creating worlds​

v1.0 - 09.09.2018

Inital release

Last updated