WorldBorder logo r3

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 Donate.
Thanks to the following people who have appreciated the plugin enough to donate: jonDatz, xrobau, Gussi, Dizzy, R. Meijer, FoundationCraft, T. Bronner, R. Thompson, The Pokemon Server,, D. Senff, Vik1395, TagCraftMC, D. Strickner, M. Wilson, Rhythmatic, W. Downey, P. V. Gretener, MiniCraft Server, Cosmic Craft,, polaris_iv (Forge port), matagin.
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.


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.


  • 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:

Screenshot 2

Of special interest are the Fill command and the Trim command features:
Before and After Fill Before and After Trim

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

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of graycatgrayhat graycatgrayhat May 04, 2016 at 07:37 UTC - 0 likes

    @MasterTom013: Go

    So far I have no issues with both running, and a fair bit of testing.

  • Avatar of Brettflan Brettflan May 03, 2016 at 12:41 UTC - 0 likes

    @GioboiMC: Go

    Spigot still doesn't have it fixed. The Paper fork of Spigot has it fixed at the very least in regards to Nether portals, but related problems have been reported with End portals in even the Paper fork which cause various problems even on a vanilla server with no plugins. I don't know for sure whether other methods of teleportation between worlds are fixed in Paper, but I think they are. All of this as per:

    @MasterTom013: Go

    Yes, as with pretty much any plugin which modifies world generation.

  • Avatar of MasterTom013 MasterTom013 May 03, 2016 at 12:16 UTC - 0 likes

    Worldborder is working with Multiverse Core ?

  • Avatar of GioboiMC GioboiMC May 01, 2016 at 19:46 UTC - 0 likes

    @Brettflan: Go

    Is it fixed now?

    Adam - Relentless CEO/Owner [IP:]

  • Avatar of AylaAsperger AylaAsperger Apr 23, 2016 at 19:18 UTC - 0 likes

    @JD_Mortal: Go

    Hey, I don't know what other plugins you use, but what you want is pretty easy to arrange with WorldGuard, with that plugin you can make a region inside your worldborder that only certain groups can enter. Have you tried that?

  • Avatar of JD_Mortal JD_Mortal Apr 14, 2016 at 18:37 UTC - 0 likes

    @advenbest: Go

    It builds the world, at the present state of the command. It still must update the clients as they enter/see the chunks. It only reduces some server-side "thinking", initially.

    Since the world is not "static", (unchanging), there is no real long-term bonus other than the initial creation process. Trees grow, vines grow, fires burn-down forests, enderman move blocks, creepers blow-up terrain, and people build...

    One day the core may only broadcast "changes", but that isn't the case with the game, as it stands today. Thus, no real gains for the client or the server, from doing this. (With the exception of the above stated initial world-chunk drawing. Also, for map updates.)

    There would be another advantage to this, if you ever wish to compare the existing world with the "drawn world" at that initial state, for detecting changes. (However, it will detect player and non-player changes, which includes growth and other block-updates, which do not happen until someone actually "sees" the area, and is within that 256 block range.)

  • Avatar of JD_Mortal JD_Mortal Apr 14, 2016 at 16:35 UTC - 0 likes

    I have two big wishes for this plugin...

    1: Reverse permissions. The ability to restrict people from ENTERING the center of the world, instead of restricting EXITING. Thus, noobs and lower levels can play outside, but not ENTER the designated "veteran" zone.

    2: Leveled permissions. With a set "world border", as this is already setup to be. With inner permissions to allow HIGHER or LOWER restrictions per area. EG, World border stops ALL, except those with set permissions. (Small group). With inner levels restricted to isolate groups (X,Y,Z) as... (X,Y,Z)-(Y,Z)-(Z)... or (X)-(Y)-(Z)... or (X)-(X,Y)-(Y)-(Y,Z)-(Z)... etc. (I think three groups would not be that much of a burden, up to 8 levels, with 0 being "No-one pass", hard world limit, even to admins and the owner.)

  • Avatar of Brettflan Brettflan Apr 13, 2016 at 11:54 UTC - 0 likes

    @aikar looked into the bug with teleporting between worlds and submitted a pull request to the Spigot project a couple of days ago which should fix it.

    Since they still haven't pulled it yet, anyone wanting the fix right now can get it by running the Paper fork of Spigot:

    Last edited Apr 13, 2016 by Brettflan
  • Avatar of Brettflan Brettflan Apr 07, 2016 at 21:15 UTC - 0 likes

    @MinePuppeh: Go

    Spigot bug. The player's location data isn't properly updated immediately when they teleport between worlds, such that the world reference is pointing to the new world but the coordinates are still the coordinates they were at in the previous world before they teleported. For the period of time which these are out of sync (and therefore wrong) shortly after teleporting between worlds, it can lead to problems in plugins like WorldBorder that need to check that data. Hopefully they'll get that fixed soon.

    @advenbest: Go

    The Fill command makes the server generate those chunks of the world, which can then be saved to disk and also be available to mapping plugins/mods. Later when a player actually visits the area, the chunks can be quickly be loaded from disk rather than the server needing to run through all of the calculations and work required to initially generate them.

  • Avatar of advenbest advenbest Apr 07, 2016 at 20:31 UTC - 0 likes

    about the fill command. does this command force render the entire space of the world border permanently so the server won't ever have to load these chunks later on?


Date created
Aug 31, 2011
Last update
Jan 02, 2016
Development stage
  • enUS
BSD License
Curse link
Reverse relationships
Recent files
  • R: 1.8.5 for 1.9 Jan 02, 2016
  • R: 1.8.4 for 1.8.1 Jun 23, 2015
  • R: 1.8.3 for 1.8 Mar 07, 2015
  • R: 1.8.2 for 1.8 Mar 01, 2015
  • R: 1.8.1 for CB 1.7.9-R0.2 Sep 27, 2014