BuildSystem is a world management plugin for builders. A single navigator lists every world on the server, each with its own permission, project and status. Players choose the settings they prefer, and admins set up statuses, categories and icons in-game rather than in a config file.
- Minecraft 26.1 or newer, on Paper or Spigot
- Java 25
Optional integrations: LuckPerms, PlaceholderAPI, WorldEdit, AxiomPaper.
- Full guide: You can find a full guide with tutorials, commands and permissions here.
- Downloads:
- SpigotMC
- Chunkfactory
- BuiltByBit
- Snapshots are available on Jenkins.
- Support:
- Donations: Donations are 100% voluntary. However, I am truly grateful for every single one of you who decides to do so as each donation helps me to continue developing the project further. If you wish to donate anything, you can do so here.
- Create worlds from predefined types, from custom generators provided by other plugins, or from your own templates, optionally with a custom seed
- Import worlds individually or all at once, then rename, clone or delete them
- Automatic and manual backups, kept locally or on S3 or SFTP, and restored from an in-game menu
- Assign multiple builders to a world, and optionally keep WorldEdit limited to them
- Automatically unload inactive worlds to save server resources
- Configure every world individually: join permission, project, difficulty, gamerules, world border, spawn, weather, explosions and mob AI
- Disable block physics per world without freezing it entirely: nine behaviours (block updates, connections, falling blocks, fluid flow, leaf decay, growth, spreading, block forming and fading) can each be re-allowed while the rest stay off
- Choose the block placed at a void world's spawn, or turn it off
- Give each world its own icon, either a block or a player head, so they are easy to tell apart
- Browse worlds through an interactive navigator, or switch to a plain GUI
- Categories group worlds by who can see them and what state they are in. Public, Archive and Private are the defaults
- Statuses track how far along a world is. Not Started, In Progress, Almost Finished, Finished, Archive and Hidden are the defaults
- Neither list is fixed. Add your own statuses and categories, or rename, recolour, reorder and delete the built-in ones, each with its own icon, all in-game
- Sort and filter worlds, and group them into folders
- Pin a world to keep it at the top of every list
- In finished worlds players turn invisible and fly in adventure mode, so they can look around
without changing anything.
/buildbypasses this - Players keep their items on death, and archived worlds behave however you configure them
- Per-player settings: scoreboard, night vision, no-clip, hiding other players, slab breaking, opening iron doors and trapdoors, instant sign placement, and more
- Building tools: adjustable fly and walk speed, block physics and explosion toggles, world time
control, mob AI, player skulls, a secret blocks menu, gamemode switching, and quick teleports with
/back,/topand/spawn
/setupconfigures default world-type icons, statuses and the navigator layout in-game, using a drag-and-drop editor with colour and item pickers- Every message and the scoreboard can be rewritten
- Works alongside LuckPerms, PlaceholderAPI, WorldEdit and AxiomPaper
- A developer API with events for your own integrations, described below
Maven:
<dependency>
<groupId>de.eintosti</groupId>
<artifactId>buildsystem-api</artifactId>
<version>version</version>
</dependency>Or alternatively, with Gradle:
repositories {
mavenCentral()
}
dependencies {
compileOnly("de.eintosti:buildsystem-api:version")
}Full reference documentation is published at javadoc.io.
Obtain the API instance through Bukkit's ServicesManager:
BuildSystem api = getServer().getServicesManager()
.getRegistration(BuildSystem.class)
.getProvider();Alternatively, use the static shorthand BuildSystemProvider.get().
WorldService handles worlds, PlayerService per-player settings, and separate registries hold the
statuses and navigator categories. Calls belong on the server main thread unless documented otherwise;
anything doing I/O returns a CompletableFuture and says which thread it completes on.
Build requires Java 25.
- Shift + right-click the project folder and choose "Open command prompt".
gradlew clean build
- In a terminal,
cdinto the project folder. ./gradlew clean build
- the plugin jar
BuildSystem-<version>.jarin build/libs at the repo root
./gradlew runServerdownloads a Paper server and starts it with the plugin you just built../gradlew ideawill generate an IntelliJ IDEA module for each folder.
I'll accept changes that make sense. You should be able to justify their existence, along with any maintenance costs that come with them.
This project is licensed under the GNU General Public License v3.0.
