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:
there is a problem. when i was trying to trim my map,
wb said that there is error because map file could not be deleted.
i don’t use dynmap. help plz
@Sharpy310
Are you using DynMap, and is it loaded while you are using the trim command? Have you tried restarting the server with only the WorldBorder plugin loaded and then tried it? Are there any errors output to the server console/log?
@decebaldecebal
I'm not sure offhand, but you should at least be able to fit a 2000 radius (4000x4000) round border world in there safely. You could probably go a fair bit higher than that.
@kilorat2
It currently requires a safe place to stand. I'm not aware of any way for a plugin to determine if the player is legitimately flying using information provided by Bukkit, so that's an issue. I am considering a rewrite of how it handles knockback which would hopefully take care of the issue, though. We'll see.
Is there a way to make it knock you back properly if you're in the air? My server has a lot of sky worlds, and we use another plugin to fly, and I noticed that if you're flying and reach the border, it warps you to the spawn. And not just that but the default world's spawn. If it could be configured to simply teleport you back a few blocks to keep people in bounds, that would be really awesome.
what radius would you recommend if I want my world to be less than 700 MB?
I'm having the same problem as formmethanal but on a very large scale.
I set a perimeter of 2500 blocks, and trimmed all excess chunks and there are massive chunks still that havent been trimmed out. It only seems to have cut a thin line around the perimeter, What would you recommend?
@Brettflan
There was definitely no error so i think it was a bug in dynmap.
Yes, i see, there is a command for per world borders, thx.
@formmethanal
If you disabled DynMap during the process, and updated your map afterwards, yet there were still extraneous chunks left outside your defined border, there would pretty definitely be an error message output to the server console/log indicating what went wrong.
As for per-world border shapes, that's already in.
@Brettflan
No, no errors, but i've solved the problem with MCEdit. Thanks anyway! In a few days i'll trim my main world and than i'll report if it worked there.
What about the per world boeder shapes? Is this feature planned or too hard to integrate?
@formmethanal
Are there any errors output to the server console/log when running the trim process?
i've one world which i want to trim, but it doesn't work, there are always some chunks outside the border. I've tried different borders and always trim, but they dont disappear. Is there any other way for removig them?
http://s7.directupload.net/file/d/2751/sfgon5ih_png.htm
PS: Yes, i've removed dynmap during the trim
Edit: The only thing i'm missing ist the possibility to set a per world border shape
@darkcloud784
It should as long as you specify it in your Bukkit config, though I haven't personally tested it: http://forums.bukkit.org/threads/mech-worldborder-v1-4-4-feature-rich-world-size-limiting-plugin-1337.11309/page-12#post-778355
Does
/wb [worldname] fill [freq] [pad] - generate all missing chunks for this world, out to the border. The freq value is the number of times per second it will try to check/generate a chunk (default 20). For a server with players on it, you should probably stick with the default or possibly even a lower value. If you just want it to finish as quickly as possible, try 1000 or so. The pad value is how much of a buffer to add beyond your borders (default 176, should keep any more chunks from being generated by players).
Work with custom world generators such as TerrainControl.
@NoxiFoxi
Logging out and back in might work, though probably not. Status updates are sent to the source of the command, though, so you could always run it from the console.
How can I stop ingame spam when filling the chunks which are left?
@Gianex
When you try to teleport to it, you'll end up inside the border as near to your home as possible.
@swatcats
I've never tested it with flight before. I do have some possible improvements in mind which I plan to try out eventually to improve the knockback method, which might help with handling flying people and worlds with many areas where there's no safe place to stand in some locations (nether, "the end").
@w000rm
Not sure, I've never looked into that plugin. It looks like one of the plugins is missing from your plugins folder based on the error, though.
@swatcats
I'm trying to revive the RandMan plugin, but it seems to not like the newer version of WorldBorder. That's what I'm getting at the moment, with a version I'm trying to compile by myself:
21:55:27 [GRAVE] Could not load 'plugins\RandMan.jar' in folder 'plugins': WorldBorder
org.bukkit.plugin.UnknownDependencyException WorldBorder
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135)
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:215)
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:136)
at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:151)
at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:127)
at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:52)
at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:145)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:399)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
What did I do wrong?
Hi,
I have a small problum with this plugin. if a user has a fly mod on and gose running into the border it will knock them back. if they keep doing it they wil get throught it and then the server console starts spaming "[WARNING] swatcats moved too quickly!". witch is not a big problum but if they are outside the border for more then a few sec it lages out the server and everyone gets DC. Is anyone else having this bug or is it just something thats happing on my server?
i am running zombie fly mod on my client.
EDIT: To get over the border once it knocks you back you have to go runing into it agin while flying up at the same time.
EDIT2: I found that it is becuse of the speed, anything over 9.0-9.5 and it cause this problum.
What happens If I have my /home stablished beyond the border?
@EEEEEEric
Some visual indication of the border is on my "look into eventually when I actually have time" list.
@Wannab007
worldborder.*
@mutination17
That wouldn't make much sense without support for rectangular and ovoid border shapes. Neither of those is likely to happen unless someone else has free time and capability and contributed the code for it. The plugin is open-source, with the source available on GitHub.
If it's a perfect square you're after and you know the X/Z position for each corner of it, deducing the center point is a matter of simple subtraction.
could you add a: /wb pos1 <x> <y> pos2 <x> <y>
so you can specify the location of the border (square) using X and Y positions?