Changelog (version release notes)


NOTE: This version is only intended for Spigot builds for Minecraft 1.13+. Older versions are not supported.

  • Updated detection by the Fill process of whether a chunk is fully generated, since a 3-chunk radius of chunks is now apparently needed in MC 1.13+ to guarantee it. (by mikeprimm)
  • Support for various new "safe & open" block types to teleport player into. (by Brokkonaut)
  • Support for removing multiple potential passengers (now possible in newer game versions) when knocking player back from ther border, instead of just a single one. (by Brokkonaut)
  • Misc other minor 1.13 related updates. (by Brokkonaut)
  • Added config options for Dynmap integration to set priority and whether to hide border by default. (by joblo2213)


NOTE: This version is only intended for Bukkit builds for Minecraft 1.9+, specifically Spigot. Spigot 1.8 and older versions are not supported (boats would be able to bypass the border due to changes to how they're handled by Minecraft).

  • Fix for boat type being changed in Minecraft 1.9+ when knocked back from the border while in a boat. Note this change breaks boat knockback for Minecraft versions older than 1.9.


NOTE: This version is only intended for Bukkit builds for Minecraft 1.8+, specifically Spigot.

  • Fix for oversight in border knockback code that could lead to server lag if a player crossed the border at an extremely high Y (vertical) position. (by Kagamul)
  • Added Bukkit Events which are fired when Fill and Trim start, for use by other plugins. The Events added are com.wimbli.WorldBorder.Events.WorldBorderFillStartEvent and com.wimbli.WorldBorder.Events.WorldBorderTrimStartEvent. (by Maximvdw)
  • Added public methods to Fill and Trim task which indicate task progress, for use by other plugins. The Methods added are getPercentageCompleted(), getChunksCompleted(), and getChunksTotal(). (by Maximvdw)
  • Cleaned up confusing extra line in server log/console related to Border-checking timed task starting.


NOTE: This version is only intended for Bukkit builds for Minecraft 1.8+, specifically Spigot.

  • Quick fix for minor bug in border knockback code that had it never consider a Y position of 1 as safe, even though it can be safe if the world is set up with only a single layer bedrock base at Y level 1.
  • Added Bukkit Events which are fired when Fill and Trim finish, for use by other plugins to be notified of their completion. Specifically, the Events are com.wimbli.WorldBorder.Events.WorldBorderFillFinishedEvent and com.wimbli.WorldBorder.Events.WorldBorderTrimFinishedEvent. (by timafh)


NOTE: This version is only intended for Bukkit builds for Minecraft 1.8+, specifically Spigot.

  • New command /wb preventmobspawn <on|off>, which when enabled, will prevent mobs from spawning outside the world's border. Defaults to off/disabled, as it could possibly (though not likely) have a performance impact. Requires new permission "worldborder.preventmobspawn". (by RoyCurtis)
  • Some minor code cleanup.

New command:
/wb preventmobspawn <on|off> - stop mob spawning past border. Default off, as it could possibly have a performance impact. Requires permission worldborder.preventmobspawn.


NOTE: This version is only intended for Bukkit builds for Minecraft 1.8+, specifically Spigot.

  • Quick fix to remove "worldborder" command alias, which would replace vanilla /worldborder command.


NOTE: This version is only intended for Bukkit builds for Minecraft 1.8+, specifically Spigot.

  • Workaround fix for changes made to Bukkit's Server.getOnlinePlayers() method in Bukkit builds for MC 1.8+ that broke WorldBorder's border monitoring routine.
  • New command /wb preventblockplace <on|off>, which when enabled, will prevent players from placing blocks outside the world's border. Defaults to off/disabled, as it can have a noticeable performance impact. Requires new permission "worldborder.preventblockplace". (by gipsy-king)

New command:
/wb preventblockplace <on|off> - stop block placement past border. Default off, as it can have a noticeable performance impact. Requires permission worldborder.preventblockplace.


This was the final release of WorldBorder for vanilla CraftBukkit. All later releases above are for builds of Spigot.

  • When using the radius command you can now optionally specify + or - at the start of <radiusX> and [radiusZ] to increase or decrease the existing radius rather than setting a new value. (by Maximvdw)

/wb worldName radius +16 - increase existing border radius size by 16 blocks for world "worldName".
/wb radius -100 - decrease existing border radius size by 100 blocks for the world you're currently in.


IMPORTANT NOTE: if you have a bypass list saved, it will be wiped when you first run this update. The wipe will only happen once as soon as you run this newer version, as a safety precaution.

  • The completion message for Fill process now indicates which world it was running on.
  • Changed bypass list to track UUIDs instead of names, in advance of changeable names in Minecraft 1.8.0+. There might be a slight delay in response now when running the /wb bypasslist command, and when running the /wb bypass command on a player who is not online. This is because the Mojang UUID lookup server must be queried in those cases. This may be handled better in a future update if/when Bukkit provides methods for caching and looking up that information.

The UUID/player name lookup code I've used is by evilmidget38, only slightly modified, from:

v1.7.9 (beta)

  • Major rework of command handling. This is mostly internal code changes rather than something that is visible to users. This rework did result in an increase in the JAR file size, but the command handler code is much nicer now.
  • New command: /wb help [command], which provides help for any specified command. Requires existing "" permission.
  • When an error occurs in command input (wrong number or format of parameters passed to command, etc.), examples and help for the command will be shown, along with the current and default values for the command if applicable.
  • Workaround fix for players who have a passenger (pet riding their head from EchoPet, for instance) being able to bypass borders due to a longstanding CraftBukkit teleportation issue/bug. The passenger entity is now removed and placed at the player's feet inside the border.
  • Fix for "denypearl" command not correctly indicating whether it's enabling or disabling the option.
  • Made "whoosh" effect now default to on, as it's a nice effect that I think most people like. For some reason I thought I'd already done this long ago.

New command:
/wb help [command] - get help on command usage. Requires permission


  • Two new variations of the set command are available thanks to sponsorship from Rhythmatic: /wb [world] set <radiusX> [radiusZ] spawn - uses the world's spawn point. /wb set <radiusX> [radiusZ] player <name> - centers a border on the specified player.
  • Added new command /wb denypearl <on/off> to toggle existing "deny-enderpearl" option on or off, which requires the new permission worldborder.denypearl to use. Changed this existing "deny-enderpearl" config setting to only deny ender pearls which are thrown past the border, and switched it to be enabled by default.
  • Added TeleportCause.PLUGIN indicator to the teleport methods used by border knockback, so other plugins can see that the teleport was triggered by a plugin and potentially not interfere if they otherwise would have. Specifically, this should take care of CombatTag preventing WorldBorder knockback if the player is considered to be in combat.
  • Added config option "fill-memory-tolerance" which defaults to 500. If/when the Fill process pauses due to low memory (<200 MB), this setting is the amount of free memory (in MB) required to be available before it automatically continues. This option isn't made available to change through a command as most people shouldn't change it. It's been made available for people who are running extremely low memory (and thus necessarily tiny) servers which have less than 768 MB memory available to their CraftBukkit server.
  • Some minor code refactoring and cleanup. (by Zeluboba)

New commands:
/wb [world] set <radiusX> [radiusZ] spawn - uses the world's spawn point.
/wb set <radiusX> [radiusZ] player <name> - centers a border on the specified player.
/wb denypearl <on/off> - toggle option which cancels ender pearls which are thrown past the border, rather than just adjusting their target location. Requires permission worldborder.denypearl.


  • Added support for Essentials-style formatting and color codes in the border crossing message, which are based on standard Minecraft text formatting codes (ex. §c for red) but with the more accessible "&" ampersand in place of the "§" (ex. "&c" for red). The default red coloration is now included in the border message itself as "&c" at the start of it. Existing configurations will have their border messages automatically updated to add it.

Reference, standard Minecraft codes (note again that you can replace "§" with "&"):

  • List of players with border bypass enabled is now saved and will persist through server restarts.
  • New command /wb bypasslist, which outputs a list of all players who have border bypass enabled. Requires new permission "worldborder.bypasslist".
  • New command /wb fillautosave <seconds>, which lets you set the interval for automatic saving of the world during the Fill process (default 30 seconds). Set to 0 to disable, though this is not generally recommended as any errors or crashes during world generation can then result in a lot of lost progress. Requires new permission "worldborder.fillautosave".
  • Option to deny enderpearl completely, to prevent 'glitching' into places. Requires manually setting "deny-enderpearl" option in config.yml. (by ZeroErrors)

New commands:
/wb bypasslist - outputs a list of all players who have border bypass enabled. Requires permission worldborder.bypasslist.
/wb fillautosave <seconds> - set the interval for automatic saving of the world during the Fill process. Default 30 seconds, set to 0 to disable automatic world saving (not recommended). Requires permission worldborder.fillautosave.


  • Added option to Fill command which will force it to load all chunks instead of automatically skipping chunks which are already fully generated. To use this option, use a full length Fill command with "true" specified on the end to enable the option.
    Example: /wb fill 20 208 true
    or with world specified: /wb world fill 20 208 true
  • Added option to kill player instead of teleporting to spawn. Option is "player-killed-bad-spawn", only available by manually editing the config file. (by rourke750 with assistance from erocs)
  • Changed "Teleport cause" debug log message to remove WARNING status, as that was unnecessarily worrying some people who had debug output enabled

The option to force loading all chunks instead of skipping fully generated ones was mainly added for people wanting to follow Mojang's recommendation to load all important world chunks in 1.6.3 - 1.6.4 before updating to the eventual 1.7 release to prevent errors with structures such as witch huts and nether fortresses. Their note regarding this is here:


  • Fix for longstanding issue of chunks which didn't exist in a region file still being unnecessarily re-wiped by the Trim process, which also added to the reported number of individual trimmed chunks. Now chunks which were already nonexistent aren't "trimmed" for no reason and the reported number of individual trimmed chunks is exactly correct.
  • Added check to Trim process to make sure it doesn't drag on for too long per tick; shouldn't normally be possible on Trim process as opposed to Fill process, but I've had a couple of reports indicating it might rarely be an issue.


  • Players who are knocked back from the border while riding a vehicle will now by default be left dismounted by their vehicle. Sorry. Read below for further details on why.
  • New command /wb remount <amount>, which determines the delay in server ticks before remounting a player to their vehicle after they're knocked back from the border. Requires new permission worldborder.remount. The default value of 0 disables this feature, leaving the player dismounted. This value should not be set to a value lower than 10 (the former default value) on a public server as that would lead to client glitches. Even the former default value of 10 has been reported to rarely glitch on some servers, thus remounting now defaulting to disabled.

Working around Minecraft and Bukkit client/server glitches when teleporting an entity which has a passenger or is a passenger is the whole reason for this "feature". The need was introduced a few Minecraft versions back when this well and truly broke; hopefully they will fix the underlying problems eventually.

New command:
/wb remount <amount> - set the delay before remounting a player to their vehicle after knockback. Requires permission worldborder.remount.


  • Fix for problem in recent dev builds of CraftBukkit for Minecraft 1.6.1, which would lead to spammed errors in the log file and potentially a server crash sometimes when a person crossed the border. This problem occurred most when riding horses and boats.
  • Added new carpet block type to "safe open block" list used for finding a safe spot to move players back inside the border


  • additional error handling when Dynmap is present but not loaded properly, such as apparently can occur with Dynmap in MCPC


  • Fix for Fill and Trim commands potentially running on wrong world if specified by player with "fill confirm" / "trim confirm" commands not specifying world


  • New command /wb wrap [world] <on/off> which will let you toggle border wrapping for the specified world. This will make border crossings in that world wrap the player around to the opposite edge of the border instead of just knocking them back. Requires the new worldborder.wrap permission to use. Thanks to Indiv0 for contributing the main code which allows wrapping.
  • New command /wb portal <on/off> which will allow you to disable WorldBorder's portal redirection method that is used to force portal targets to be inside your border. Requires the new worldborder.portal permission to use. This command has been added due to reported incompatibility with the Multiverse plugin, somehow preventing that plugin from creating new portals. I see no reason for that, particularly on WorldBorder's end which simply changes the target location of player Portal travel events, but there you go.
  • Fill feature no longer reports number of "skipped" chunks due to that confusing and/or scaring too many people who thought it indicated a bug or something.

New commands:
/wb wrap [world] <on/off> - toggle border wrapping for the specified world. Requires permission worldborder.wrap.
/wb portal <on/off> - toggle portal redirection on or off. Requires permission worldborder.portal.


  • Borders can now have a separate X and Z radius specified, so that rectangular and elliptic border shapes are supported. The set, radius, shape, and wshape commands have been updated to support this. Performance shouldn't be affected by this feature. Thanks to IMathe172I (Lang Lukas) for contributing the code for this!
  • New command /wb [world] setcorners <x1> <z1> <x2> <z2> which will set a border based on corner coordinates from location (x1, z1) to (x2, z2). It's essentially an alternate to the standard set command and requires the same worldborder.set permission to use.
  • Players who are flying (from creative mode or otherwise) can now be moved back into air when they cross the border and are knocked back; no more requirement for a safe place to stand for them.
  • Workaround fix for players in vehicles (boats, minecarts, pigs, whatever) being able to go beyond the border. This fix was necessary since the Bukkit devs recently made teleportation of entities with passengers simply fail without even throwing an error (argh), apparently as a workaround of their own for a Minecraft bug. Such players knocked back in a vehicle will now likely see themselves out of the vehicle briefly due to the clunky workaround I needed to implement.
  • Players going through a portal will now no longer be able to generate chunks outside the border; the portal teleport location is re-targeted inside the border to prevent that so that new portals aren't created outside the border.
  • Changed method for finding region folder (used by Fill and Trim) to hopefully support custom world types such as Twilight Forest and Mystcraft... untested, but hopefully working.
  • Added MC 1.5 redstone comparator and activator rail to "safe open blocks" list for the knockback safe location finder.
  • Minor change to the Fill command to make it potentially less taxing when run at high rates.

New commands:
/wb [world] setcorners <x1> <z1> <x2> <z2> - set a border based on corner coordinates from location (x1, z1) to (x2, z2).
/wb shape <elliptic|rectangular> - exactly the same as /wb shape <round|square>, with elliptic=round and rectangular=square; both command variants left in for backwards compatibility, but they do the exact same thing.
/wb wshape [world] <elliptic|rectangular|default> - exactly the same as /wb wshape [world] <round|square|default>, with elliptic=round and rectangular=square; both command variants left in for backwards compatibility, but they do the exact same thing.

Updated commands:
/wb set <radiusX> [radiusZ] - now has optional radiusZ value, to specify X and Z radius separately; if radiusZ isn't specified, X and Z radius both use the same specified value for radiusX
/wb [world] set <radiusX> [radiusZ] <x> <z> - as above: new but optional radiusZ value is added
/wb [world] radius <radiusX> [radiusZ] - as above: new but optional radiusZ value is added

Elliptic border shape example, radius 400x150: Elliptic border wide


  • A check will now be occasionally run to make sure the border-monitoring task is still running like it should be, restarting it if necessary. This check will be made whenever a chunk is loaded on the server.

This feature has been added since some people seem to be having a problem where the border-monitoring task has been killed by something else on their server. If this happens, you will now see this exact message in your log when it is detected: "Border-checking task was not running! Something on your server apparently killed it. It will now be restarted."


  • New command /wb bypass [player] [on/off] which enables bypass mode for a player, allowing them to go beyond the border without being knocked back. Requires worldborder.bypass permission to use command (Ops only by default, included in worldborder.* permission set). The list of people with bypass mode enabled is wiped on server restarts. The specified player name ("[player]") is optional if run in-game and defaults to the player running the command if not specified, but is instead required if run from console. "[on/off]" is optional and will simply toggle if you don't specify "on" or "off". Thanks to st-remy and guyag for pull requests with basic permission-based border bypass methods which prodded me into making a more comprehensive approach.
  • Added artificial height limit for Nether worlds, to work around CraftBukkit bug which reports a max height of 255 for them. This bug otherwise can lead to players being teleported on top of the "roof" of the Nether at height 127.
  • Knockback can now be set to 0, for the rare person that might for whatever reason want to disable border knockback.
  • Fix for the command which enables/disables Dynmap border display not reporting correctly whether it's enabled or disabled when run.

New command:
/wb bypass [player] [on/off] - enable bypass mode for a player to let them move beyond the border. Requires permission worldborder.bypass.


  • Added integration with DynMap to display borders. It's enabled by default if you have DynMap installed, but note that you'll need DynMap v0.36 or newer for it to work. Borders will be displayed correctly as round or square and should be very accurate, based on a Y height of 64 on isometric maps. Any changes you make to your borders should almost immediately be reflected in DynMap (border radius or shape change, removal, new border set, etc.). Thanks to mikeprimm for adding a couple of requested features to DynMap which made this feature possible.
  • Fix for error on border crossing if player is riding on something which is not classifiable as a Vehicle. This only occurs when using another plugin which does something like making wolves or dragons ride-able and similar.
  • Also, a slight improvement to how boolean values are determined from command input; it accepts "y", "yes", "true" instead of just "on".

New commands:
/wb dynmap <on/off> - turn DynMap border display on or off. Requires permission worldborder.dynmap.
/wb dynmapmsg <text> - DynMap border labels will show this. Requires permission worldborder.dynmapmsg.


  • Fix for fill and trim commands not working on newer 1.2+ worlds due to new region file type.
  • Fix for potential problems caused by player location changing while border checking task is referencing it.
  • Update "new location" method to accept locations at Y positions higher than the old 128 limit; vertical limit is now based on Bukkit's reported World.getMaxHeight() value.
  • Fix for chunk mapping method used by fill command not properly closing region files when finished with them, leading to leftover open file references.


  • Compatibility with upcoming CB 1.1-R5 and above: removed legacy Configuration code.
  • Improved "whoosh" knockback effects; use /wb whoosh <on|off> to enable/disable the effect, and try crossing the border to see it in action.


  • Fill process (/wb fill) can now skip over chunks which are already fully generated, so existing worlds where much of the world is already generated should get through the fill process much faster.
  • Fill process should run much more smoothly regardless of what frequency you've specified.
  • If the fill process is automatically paused due to low memory, it now tries to prod Java into cleaning up memory, so the process usually starts right back up almost immediately.
  • A few other minor tweaks to improve the fill process.
  • For border crossings where a safe location just inside the border can't be found, the player is now teleported to the spawn location for the current world instead of for the main world.
  • Removed direct Permissions plugin support. Now permissions are solely handled directly through Bukkit's built-in "superperms" permission system, since all modern permission plugins should now be interfacing through that.
  • For /wb fill and /wb trim, "stop" can now be used interchangeably with existing "cancel" directive. (i.e. "/wb fill stop" == "/wb fill cancel")


  • Increased default padding for fill and trim commands to 208 (13 chunks)
  • The /wb reload command works again due to an overhaul of the configuration handling
  • Added 1 more "safe" and 1 more "painful" block type for safe location determination, from newer 1.9/1.0 blocks
  • It now makes sure the target chunk is loaded before trying to find a safe Y position for target "inside the border" locations
  • Updated world folder location method for "trim" task to use new safer World.getWorldFolder() method
  • Added "The End" world support to the "trim" command, since those worlds have different region folder structure
  • Player teleports are now monitored and (if necessary) redirected inside the border; sadly this doesn't prevent the original target chunk from being loaded/generated (which would be nice if it's outside your border), but at least the player never ends up teleporting outside your border now for even a fraction of a second


  • Workaround fix for new Bukkit error when the "trim" command's chunk unloading method is run on a chunk which isn't currently loaded
  • Fill process should run a bit more safely now if you have a really high frequency specified
  • Added a few more materials to the "safe and open" list for MC 1.8
  • Removed color tags from fill and trim task progress logs


  • Removed direct support for GroupManager, since a recent release of it broke integration and was resulting in a fatal error; as long as you're using its Permissions bridge, it should continue to work fine for you even with direct support removed
  • Debug output (if debug mode is enabled) for border crossings now indicates the world name.
  • When enabling/disabling "whoosh" effect (via /wb whoosh), it was incorrectly indicating whether it was enabled/disabled; fixed


  • removed usage of ColouredConsoleSender, as it apparently can now trigger a console duping bug


  • Critical fix: a bizarre Bukkit bug was resulting in the /wb fill command sometimes wiping out the chunk at 0,0, even when that chunk was never even touched by the process. The bug is caused by Bukkit's World.unloadChunk() method, but the specific circumstances that result in it are unknown. The workaround fix applied in this release causes the task to speed along faster and memory usage to grow very quickly if you're running the fill task at a high frequency, so I've had to increase the "too low" memory threshold to 200 MB and increase the status update frequency and memory check to every 5 seconds (instead of every 10 seconds) to compensate.
  • The status update frequency for the trim task has likewise been switched to every 5 seconds, for consistency.


  • New trim command, to trim off chunks well outside the border. This command is similar to the fill command, but is much much faster (and of course trims excess rather than filling missing bits).
  • Made the fill command not unload any chunks which were already loaded before it was run.


  • Fix for round borders with a radius larger than 46340 (!wow that's huge!) being horribly glitched; was caused by limitations of "int" data type
  • When players are knocked back, an experimental effect can now be shown at the spot they were knocked back from; this effect is disabled by default (could potentially be considered annoying), but can be enabled/disabled with the new /wb whoosh <on/off> command
  • When using commands, world name can now be specified in quotation marks if it has a space in it (example: /wb "you world name" set 4000 0 0)


  • New fill command, which generates all missing chunks within a world's border along with a configurable buffer beyond the border; can be run at different speeds as well, to allow for running on a server with players on it or to have it finish as quickly as possible
  • Support for newly available built-in Bukkit "superperms" permission system; uses the same nodes as for the Permissions plugin
  • Knockback distance is now required to be at least 1.0


  • Added a bit to the "safe and open" and "painful" block-type lists for the function which teleports escapees back inside the border, for better safe spot choices
  • removed code which force-loaded GroupManager if it was present since it could potentially cause problems


  • When teleported back inside a border onto snow, you're no longer placed 1 block up in the air (was a minor nuisance)
  • Slight efficiency improvements to the function which finds a safe spot to teleport escapees back inside the border


  • Added a function to the main plugin class for other plugins to hook into, which will get the BorderData for a specified world. The other plugin can then access all available functions such as checking an X/Z position to see if it's inside the border, or getting a corrected (and safe) position inside the border.


  • Got rid of code which kept track of which players had moved, now simply checking all players each time the border-checking task runs; from my efficiency testing, it's actually less work for the server this way
  • Added ability to override shape (round/square) of individual worlds, with new /wb wshape command


  • Further bugfix release for server crashes, related to ConcurrentModificationException error.


  • Bugfix release for reported ConcurrentModificationException error.


  • moved border checking routine out into a timed task, for even lower server impact
  • added new configurable "delay" value, for the number of ticks it will wait between border checks, the default is 4 (200ms); each server tick is 50ms or so
  • added new configurable "knockback" value, for how far back inside the border to move a stray player, the default is 3.0
  • changed world-name encoding method for worlds with dots in the name to use an uncommon high-range ASCII character ("¨"), since forward-slash ("/") can occur in world names; don't worry, old configurations which have the "."->"/" encoding will be automatically and safely converted
  • split command listing to 2 pages for players, since there are too many commands to fit on the screen now


  • Bugfix: saving/loading data for worlds with periods (".") in the name wasn't working correctly.


  • Initial release.