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 Mar 7, 2016Just a heads up, the "whoosh effect" sound is playing the incorrect sound in Spigot 1.9 due to all the sound changes.
-
View User Profile
-
Send Message
Posted Mar 6, 2016@WonderDave
That reported position is indeed definitely slightly outside the border you have set. If you are certain that the coordinates reported (X: 507.7 Y: 73.0 Z: -1405.7) are actually the position of the person in the overworld rather than their new/target coordinates in the nether, then that would be a bug in CraftBukkit/Spigot. WorldBorder uses the PlayerTeleportEvent's getTo() method to get the destination position.
-
View User Profile
-
Send Message
Posted Mar 5, 2016@Brettflan:
I've pasted below the debug and list outputs that you requested. I believe I now know what is happening, although I don't know why or how to fix it. It was bothering me that only *some* of my portals were having this problem, so I did some testing, and it seems that if either the 'X' or 'Z' coordinates of a portal in the *overworld* are outside the WorldBorder boundaries in the *nether*, then the problem occurs. For some reason, with 1.9, WorldBorder is treating the *overworld* portal coordinates as if they were *nether* coordinates. I confirmed this by creating two overworld portals, about 100 blocks apart, but thousands of blocks inside the borders. One of them works just fine, but the other always has the described problem, and the one with the problem has overworld coords that, if I were in the nether at those same coords, I would be outside the border. I hope I explained that well enough.
[22:19:08 INFO]: [WorldBorder] Teleport cause: NETHER_PORTAL [22:19:08 WARN]: [WorldBorder] Border crossing in "worldanarchy_nether". Border radius 1375 at X: -43.5 Z: 1.5 [22:19:08 WARN]: [WorldBorder] Player position X: 507.7 Y: 73.0 Z: -1405.7 [22:19:08 WARN]: [WorldBorder] New position in world "worldanarchy_nether" at X: 507.5 Y: 54.0 Z: -1369.5 [22:19:08 INFO]: [WorldBorder] Teleport cause: PLUGIN [22:19:09 INFO]: [WorldBorder] Teleport cause: UNKNOWN [22:19:10 INFO]: [WorldBorder] Teleport cause: UNKNOWN [22:19:11 INFO]: [WorldBorder] Teleport cause: UNKNOWN
wb list
[22:20:04 INFO]: Default border shape for all worlds is "rectangular/square". [22:20:04 INFO]: World "worldanarchy_nether" has border radius 1375 at X: -43.5 Z: 1.5 [22:20:04 INFO]: World "worldredwood_nether" has border radius 688 at X: -486.5 Z: 106.5 [22:20:04 INFO]: World "worldredwood" has border radius 5500 at X: -3900.0 Z: 850.0 [22:20:04 INFO]: World "worldanarchy" has border radius 11000 at X: -352.0 Z: 4.0
-
View User Profile
-
Send Message
Posted Mar 5, 2016@WonderDave
It sounds like some portals in the nether are simply leading to locations which are outside the border you have set for the Nether world.
If you don't think that's what the problem is, please run /wb debug on, then go through one of the portals, and provide me with what is output to the server console/log. Also provide the server console output from /wb list.
-
View User Profile
-
Send Message
Posted Mar 4, 2016Turns out I am having a problem with WorldBorder 1.8.5 and Spigot 1.9. I use Multiverse, and at first I thought this was a Multiverse-NetherPortals problem. However, when I disable WorldBorder, the problem goes away, so I'm thinking it's related to WB. The problem is that for SOME of the portals in my world that go between the nether and the overworld, when going from the overworld to the nether, I teleport to where I should be in the nether, but then about one second later I am teleported somewhere else in the nether, far away, and I also see the "You have reached the edge of this world" message. It's not happening on all of the portals, but on the ones where it is happening, it happens every time I go through the portal. I have no clue how to fix this, other than to disable WorldBorder, which I really don't want to have to do.
-
View User Profile
-
Send Message
Posted Mar 4, 2016@Phreag
Two possibilities I can think of.
1. There is some indication that if you run Fill at too high of a frequency (above the default of 20), the world can sometimes have things missing such as trees. If you've been specifying a higher frequency, try just using the default of 20.
2. If the above isn't the case, it could be a problem with CraftBukkit's chunk loading and unloading methods, which are what WorldBorder uses to generate chunks. Minecraft 1.9 just came out, so there might still be bugs with CraftBukkit/Spigot.
As per the above, I doubt it's anything I'll be able to fix in WorldBorder itself. I still would be curious to know for sure if others are having this sort of problem while using the default Fill frequency.
-
View User Profile
-
Send Message
Posted Mar 4, 2016When you generate the World in 1.9 it misses some Structures: Trees and so on are just genereated as a Player comes in, not on fill. The End does not generate End-Villages when using fill
See a 1.9 World generated with Worldborder here: http://map.jenominers.de/Vanillaserver/Map.html#/256/64/17/-7/4/0
-
View User Profile
-
Send Message
Posted Mar 3, 2016WorldBorder 1.8.5 seems to be working for me with Spigot 1.9. The only thing that I've noticed is that the sound that goes along with the "whoosh" effect is different. It appears to be a very short "knock" sound now, or something similar. I guess Mojang made some changes to the sounds and sound files. Is there any way to get the "whoosh" sound back when a player hits the border? I liked it. Thanks.
-
View User Profile
-
Send Message
Posted Mar 3, 2016@Brettflan
Well, that's odd. You're correct yes. I'm using EpicWorldGenerator. Generates custom terrain. But, the Author is sending everyone here, saying to download WorldBorder and pregenerate the map. Apparently it's worked for others, but in my case, I just can't generate a single map without corrupting chunks. Although this has also happened with a plain vanilla map that I tried to pre-gen. Not sure what I should do. Any suggestions? Or am I just flat out SOL lol. EDIT: Figured out the problem. Disregard this.
-
View User Profile
-
Send Message
Posted Mar 2, 2016Hey, I have a GTX 780, i5 6400 and 8 GB of RAMS that I want to use to quickly fill up my server (border from -150.000 to 150.000 (150 thousand)) how do I chance the fill speed (making sure I can still play minecraft)?
-
View User Profile
-
Send Message
Posted Mar 1, 2016@Nikitis
I just tested Spigot 1.9 with the current WB release (1.8.5) and everything seems to be working fine. I monitored the server console while briefly testing knockback and Fill.
I just noticed from your posted log that you're running WorldBorder 1.7.6, which is quite outdated and is the cause of your problems. WorldBorder 1.7.6 isn't even fully compatible with Minecraft 1.8, let alone 1.9. Update your copy of WorldBorder.
@KingAlbsy
Based on the above, that shouldn't be necessary if the current version of WB is used instead of a very outdated one.
-
View User Profile
-
Send Message
Posted Mar 1, 2016@KingAlbsy Thanks that worked. Worldborder is up and running!
PM me if that can work for other plugins too.
-
View User Profile
-
Send Message
Posted Mar 1, 2016It can be fixed for 1.9 by placing the WorldBorder.jar in your BuildTools folder and doing the following:
java -jar BuildData/bin/SpecialSource-2.jar map -m CraftBukkit/deprecation-mappings.csrg -i WorldBorder.jar -o WorldBorder-fixed.jar
And then you'll have a working WorldBorder-fixed.jar
-
View User Profile
-
Send Message
Posted Mar 1, 2016That should say WorldBorder in my previous post, not WorldGuard. I think I have too many plugins that begin with the word "World".
-
View User Profile
-
Send Message
Posted Mar 1, 2016In their 1.9 release announcement yesterday, the Spigot developers stated that they have removed the (deprecated) 'getOnlinePlayers()' method. I guess player names now have to be retrieved per world, rather than all at once for the entire server.
This is my first time posting here, but I just wanted to say that I've used the WorldGuard plugin for quite some time now, and I find it to be extremely useful. Whatever you can do to get it working well with Spigot 1.9 would be greatly appreciated.
Thanks.
-
View User Profile
-
Send Message
Posted Feb 29, 2016/wb fill is positively murdering my TPS in a way i've never seen before on my dedi box.
Hanging around 4TPS currently on 1.9. Something else to be looking into.
Cheers.
-
View User Profile
-
Send Message
Posted Feb 29, 2016@Brettflan
Thanks, it's rather annoying, but that seems to be the only problem for me.
-
View User Profile
-
Send Message
Posted Feb 29, 2016@Nikitis
So based on that, they changed the structure of Server.getOnlinePlayers() again. Hmm, I'll see about making an update for 1.9 soonish.
-
View User Profile
-
Send Message
Posted Feb 29, 2016Broken in 1.9. Here is the error. Repeats forever Thanks in advance!
[19:48:18] [Server thread/WARN]: [WorldBorder] Task #37 for WorldBorder v1.7.6 generated an exception java.lang.NoSuchMethodError: org.bukkit.Server.getOnlinePlayers()[Lorg/bukkit/entity/Player; at com.wimbli.WorldBorder.BorderCheckTask.run(BorderCheckTask.java:28) [?:?] at org.bukkit.craftbukkit.v1_9_R1.scheduler.CraftTask.run(CraftTask.java:71) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at org.bukkit.craftbukkit.v1_9_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:724) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:655) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:554) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at java.lang.Thread.run(Unknown Source) [?:1.8.0_66]
-
View User Profile
-
Send Message
Posted Feb 21, 2016@Cha0sPudd1ng
The spawn point is used as a final backup, if that spawn point isn't safe, then they can indeed die. The only other reason they might die is if you went into WorldBorder's config.yml and manually set "player-killed-bad-spawn" to "true" without understanding anything about the option. That option will simply kill players if no safe location can be found rather than sending them to the world's spawn point as a backup.
@pepper82
WorldBorder's Fill uses Bukkit's chunk loading methods in order to generate chunks, so it should work fine as long as Terrain Control is still set up correctly and modifying world generation.