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 Aug 24, 2012On 2 of my servers, worldborder works fine. (all permissionsEX), but on the creative server (10.000x10.000), it just drowns in errors like:
2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:23 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException 2012-08-24 16:57:24 [SEVERE] java.lang.ArrayIndexOutOfBoundsException
-
View User Profile
-
Send Message
Posted Aug 21, 2012I just want to say thank you for such a wonderful plugin!!
-
View User Profile
-
Send Message
Posted Aug 20, 2012Confirming the crashes. It does about 2 steps of 3%, then it makes the server reboot. I'm trimming down the rough border the my map to size: ~ 10,000 x 10,000
-
View User Profile
-
Send Message
Posted Aug 20, 2012Everytime I try to trim my Map with /wb world trim and then /wb trim confirm, my server crashes, on latest bukkit RB
-
View User Profile
-
Send Message
Posted Aug 17, 2012@aroeira
yes it works on tekkit
Edit: 1.5.4 works, use that version due to an error in 1.5.3's trim command
-
View User Profile
-
Send Message
Posted Aug 17, 2012tekkit compatible ?
-
View User Profile
-
Send Message
Posted Aug 16, 2012Must-have plugin for server owners! Why wasting server power when you can pregen a world so easily?
Keep up the good work!
-
View User Profile
-
Send Message
Posted Aug 13, 2012@strontkever
From the notes above on the Trim command:
NOTE: If you are using the DynMap plugin and use our "trim" command, you will need to restart your server afterwards and then run a "fullrender" in DynMap to properly update their map display.
@SkyderEfterLyde
CraftBukkit related. Hopefully something they'll fix in the next release, possibly already fixed in the latest dev build of CraftBukkit. The problem should also be lessened if you run Fill in WorldBorder at a lower frequency.
-
View User Profile
-
Send Message
Posted Aug 13, 2012It needs to get updated ! please! :D
-
View User Profile
-
Send Message
Posted Aug 12, 2012The Fill function is broken
Never been a problem before, tried to expand 3 times and same error, Dynmap was completely turned of, so its not the problem. But dynmap havent been a problem before either, though it tries to build the map when wb is runnng.
Its not a overload problem since i havent got any repports on that, the funny things is that its the excact same pattern on the map on all 3 tries
-
View User Profile
-
Send Message
Posted Aug 12, 2012im using both worldborder and dynmap on 1.3.1 latest CB build
for some reason, theres a line of chunks passing our of the trimmed area for the Guest world
you can see here: http://94.23.157.219:40260/
i trimmed the map with the trim command, then let dynmap fullrender
what could be the problem?
-
View User Profile
-
Send Message
Posted Aug 12, 2012Hi @Brettflan
I have a feature request, can you add support for WorldEdit Selection? Just cuboid and cylindric. Would make a lot of things easier, ;) [EDIT] It would be also nice to set the border with Chunks as the measurement unit instead of Blocks.
Thanks and keep up the good work.
-
View User Profile
-
Send Message
Posted Aug 10, 2012@mikeprimm
Well, the chunks which are generated during the Fill process are done so by the Fill process itself after checking those files. Also, if any chunks are generated by some other means while the Fill process is running, it should simply load and unload those chunks without any problems.
To put it another way, there would be problems if it saw a chunk as existing when reading the region files where somehow the chunk doesn't actually exist, which shouldn't be possible (if the region file header has a pointer for chunk data, the data should of course exist). The other way around where the region file doesn't show a chunk as existing when it does actually exist in memory (which is remotely possible) shouldn't cause any problems whatsoever.
-
View User Profile
-
Send Message
Posted Aug 10, 2012@Brettflan
Interesting point - if that is how it can tell which chunks exist, there may be an issue of some sort during the time period between when the chunk is, in fact, created in memory, and the first time the chunk has been saved to the world files (which isn't necessarily the same time). Add to this the fact that the chunk can be queued for being unloaded (which makes it appear to be unloaded), but has not yet in fact been saved - all food for thought on what might be going on.
-
View User Profile
-
Send Message
Posted Aug 10, 2012@Algent
WorldBorder determines whether chunks exists or not by directly accessing the world region files and reading their header to get the chunk existence information, creating and caching a lookup map for the region which it then references while Filling to determine which chunks need to be generated. It only reads each region file a single time with the results cached for the entire process.
That's a big part of why I believe that WorldBorder is still telling CraftBukkit to load those missing chunks and is getting no indication of a problem, with CraftBukkit simply not loading+generating them correctly sometimes, influenced by server load.
-
View User Profile
-
Send Message
Posted Aug 10, 2012@Brettflan
So I did some fill tests, with the latest CB dev build and a 1k border:
- First with only the wb plugin (and then doing a dynmap fullrender + a mcedit check):
- Now with dynmap also running while filling (and then fullrender + mcedit check):
-Try with the last dynmap dev-build (turn back on unpopulated rendering):
-Ok so last try, this time only wb and a fill rate to 100 (trying to overload the process to check if load alone cause missing chunks):
From theses tests I'm almost sure there is no 1 but 2 issues:
-
View User Profile
-
Send Message
Posted Aug 10, 2012best plugin ever, keep up good work :)
-
View User Profile
-
Send Message
Posted Aug 9, 2012This is what I got from dynmap after a /wb fill with 1500 radius on 1.3.1 http://postimage.org/image/qe5jcs6bf/
-
View User Profile
-
Send Message
Posted Aug 9, 2012Tomorrow (4am here :p) I'll try to fill a border of 1K at normal rate on a server with only WB running (& the latest CB dev build), if I see some unpopulated chunks inside the border at the end we'll be sure something is wrong with CB.
-
View User Profile
-
Send Message
Posted Aug 9, 2012@JonRetribution
It skips chunks which are already generated with all 4 adjacent chunks also existing; this is of course intended behavior to keep from wasting time loading and unloading chunks which are already fully generated.
Based on reports there are problems with some chunks not loading and generating properly from the Fill command run in the current CraftBukkit 1.3.1 release, which seems to come down to a CraftBukkit problem. This is likely made worse when there's a lot going on with the server while the Fill command is running, for instance having DynMap trying to map out the new chunks as they're generated.
Beyond that, there seem to be no other problems associated with running the current release on 1.3.1.