WorldBorder
Further releases for Spigot 1.13+ are now being posted on the Spigot site. I do not plan to release any further updates here on BukkitDev.
- Full list of Commands and Permissions
- Changelog
- Further Miscellaneous Information
- Source available on GitHub
- Old discussion on main Bukkit forum
If you appreciate this plugin and actually want to see it developed further by me rather than only receiving compatibility updates, you are welcome to
.
Thanks to the following people who have been kind enough to donate: jonDatz, xrobau, Gussi, Dizzy, R. Meijer, FoundationCraft, T. Bronner, R. Thompson, The Pokemon Server, legitplay.net, D. Senff, Vik1395, TagCraftMC, D. Strickner, M. Wilson, Rhythmatic, W. Downey, P. V. Gretener, MiniCraft Server, Cosmic Craft, ScarcityFree.com, polaris_iv (Forge port), matagin, T. Ahokas.
Also thanks to IMathe172I (Lang Lukas) for contributing code to support elliptic and rectangular border shapes, and Indiv0 for contributing code to support border wrapping.
Description
This plugin is intended to efficiently provide a border for each of your worlds, which only people granted special bypass access are allowed beyond. These borders can be round/elliptic or square/rectangular. As the plugin has been written with performance as the most important goal, it should have no performance impact on your server. Additional world trimming and filling commands are available as well.
Older plugins which originally inspired the creation of this one: rBorder and BorderGuard.
Features
- You can set up a separate border for each world, but only one border per world.
- You can have either round/elliptic or square/rectangular borders. Square/rectangular borders are slightly higher performance, round/elliptic borders make for nicer display maps. Different worlds can have different border shapes if you so choose.
- Configuration and border setup is done completely using commands in-game or through the server console. No need to ever edit the config file directly.
- Support for all permission plugins which interface with Bukkit's built-in "superperms" permission system.
- You can fully generate (fill) your world all the way to the border, filling in any missing chunks, including a configurable buffer zone just outside your border.
- You can trim off any world chunks beyond the border, getting rid of extraneous parts, with a configurable buffer zone left just outside your border.
- You can use a bypass command to allow specific players to go beyond all borders.
- Borders can be automatically displayed in DynMap if you use that plugin.
- All plugin data is automatically saved whenever any borders or settings are changed.
- If a player crosses a border while in a vehicle, the momentum of the vehicle is stopped and it is moved back inside the border with the player.
- When a player is moved back inside a border, they will be moved to a safe vertical location if needed.
- Borders for specific worlds can be set to wrap around instead of just knocking back players who cross the border, instead sending them to the opposite edge of the border.
English Tutorial:
Spanish Tutorial:
Of special interest are the Fill command and the Trim command features:

Borders are also displayed automatically by default in DynMap if you have it:


-
View User Profile
-
Send Message
Posted Apr 5, 2014Players can use enderpearl's to glitch into bases bumping up against the border.
-
View User Profile
-
Send Message
Posted Mar 30, 2014@Mysticforce12345
Trim will delete any entire regions (512x512 blocks, 32x32 chunks) which are outside the border, but can't directly delete the file data for individual chunks, only invalidate them.
-
View User Profile
-
Send Message
Posted Mar 30, 2014I think for the most part, if you use this plugin with Forge mods and MCPC, you could certainly require more RAM for a dedicated fill process, depending on the nature of the generation. I was using an earlier version of this mod to have a shell generator that can crash while leaving the server itself intact, since the mod I was using had issues with structure generation and casting data to blocks and entities that couldn't support them (not your problem, that's a Vanilla issue that's been around for a while) So WorldBorder made it possible to generate a world, and when the generator crashed, I'd just restart it. I never really had a RAM issue, though.
-
View User Profile
-
Send Message
Posted Mar 28, 2014@Brettflan
so is there any way i can like roll that back? i tried doing the trim nothing happened still
-
View User Profile
-
Send Message
Posted Mar 28, 2014@chamunks
Thanks for the offer, but I'd rather keep interim dev builds available to only those people able to use GitHub (and therefore read commit notes and such) and able to compile from source, or people who can test something specific for me.
@RawrImDragon
Thanks. :)
-
View User Profile
-
Send Message
Posted Mar 28, 2014I gotta say this is the single most useful plugin I have ever come across to date, while there may be other more useful plugins for other things, this is exactly what I needed when I needed it and has lessened the load on my server by 2 fold. Thank you :D
-
View User Profile
-
Send Message
Posted Mar 27, 2014Hey would you guys like me to donate the use of my jenkins to build this plugin from source? http://ci.nixium.com
-
View User Profile
-
Send Message
Posted Mar 22, 2014@Mysticforce12345
The Fill process has Bukkit generate the missing chunks of the world, so they of course then exist and take up disk space.
-
View User Profile
-
Send Message
Posted Mar 21, 2014how come when i filled my world its size increased to 1gb it used to be like 400mb is that natural cause if it is plz tell me how to fix that
-
View User Profile
-
Send Message
Posted Mar 20, 2014@fungreenfox
Where are you getting this "50 chunks per scan line" from? Actually, with a bit of thought, I assume you're referring to the report given by the Fill process every 5 seconds by default on how many chunks have been processed, since your indicated frequency of 10 chunks per second would come to 50 chunks in 5 seconds.
With any normal sort of usage even with some basic world generator plugins, the default Fill frequency of 20 chunks per second should run without a problem on even a standard low capacity server with just 1 GB memory.
If your world generator plugins for some reason manage to cause problems even as low as 10 chunks generated per second, that's really a problem with them. I'm not interested in trying to come up with silly workarounds for the Fill process to try to accommodate any such world generator plugins which are that slow and memory hungry.
Whatever the case, it sounds like you've found the solution if you want to use your existing plugins: run the Fill process at that lower frequency which works for you. It may be slow, but again, that's not a problem caused by WorldBorder.
-
View User Profile
-
Send Message
Posted Mar 20, 2014@Brettflan
The processes you are mentioning is confirmed to work technically. But the scanning process is scanning more data in, than the garbage collector can reach to clean up in time. If i set it to wb fill 10 64, it will scan ca. 50 chunks per scan line, but if i set it higher, wb fill 11 64 or higher, it will produce more data then cleaned up in time, and man can watch the process paused most of the time. So anything higher than wb fill 10, will only do good, if endless amount of ram, which nobody has, or restarting the server every 5th min.
-
View User Profile
-
Send Message
Posted Mar 20, 2014@fungreenfox
The Fill process will pause and try to force Java garbage collection to free up memory if available memory drops below 200 MB (normally forcing/triggering garbage collection is bad, but needed in this case). It then continues the process automatically once the amount of available memory is high enough (>500 MB by default). Is that not working for you? Does your Bukkit server need more than 200 MB available memory to keep running smoothly for some reason? That would be a new one.
-
View User Profile
-
Send Message
Posted Mar 20, 2014I need a way to save and empty out used data from RAM. I am using subterranea and giant caves on a new world and scanning. After 5 minutes, the dedicated amount of 20gb RAM is filled up.
only way to have this running without restarting every 5th. minute, is slowing the creation down to half speed with /wb fill world 10 64.
-
View User Profile
-
Send Message
Posted Mar 16, 2014@SuiXi3D
When a new world is created, you could then have it run WorldBorder's set command with "spawn" specified.
I have no plans to implement a way for WorldBorder to automatically add borders.
-
View User Profile
-
Send Message
Posted Mar 16, 2014Is there a way to set all worlds to have a default border, unless otherwise set? I run a modded server with Mystcraft, and don't want players endlessly generating new chunks.
-
View User Profile
-
Send Message
Posted Mar 14, 2014@Brettflan
ThX for the quick response. I'll just replace blocks with air and make my own. This is a great plugin. Thank you so much!
-
View User Profile
-
Send Message
Posted Mar 14, 2014Awesome plugin! It's one of those I didn't know I needed until I discovered it existed.
-
View User Profile
-
Send Message
Posted Mar 14, 2014@mmuziek
It's already been discussed many times. I don't plan to ever have a true physical border feature. As mentioned in my post below though, pseudo-physical borders (not stored or changed in world files on server, but sent to players as if really there) are a possibility at some point.
-
View User Profile
-
Send Message
Posted Mar 14, 2014em brett. can you take a look at the ticket i made ?
its a nice idea :)
-
View User Profile
-
Send Message
Posted Mar 14, 2014@draden77
Not currently, no.
There's a slightly hinky way with Bukkit to prevent specific chunks from being generated, but the problem is that clients which are near such a chunk and need it will keep spamming the server with requests for it, thus triggering the server to keep trying to generate it.
The best solution would be to send such a client an empty (air-filled) chunk in response, but AFAICT there's no way to do that using Bukkit without just letting the chunk generate and actually really replacing everything in it with air (I'm not doing that).
I'm considering adding in integration with the ProtocolLib plugin to allow that sort of thing along with potentially sending pseudo-physical borders to players, but I have no concrete plans as of yet.