PerWorldPlugins v1.3.0

Limit plugins to certain worlds!

PerWorldPlugins v1.2+ was built with compatibility as a top priority. Because of this, we should be fully functional with other plugins. However, in the case that you do stumble upon an incompatibility, we urge you to create an informative ticket!

Plugin Creator: MylesC
Plugin Maintainer: Incomprehendable

What does this plugin do, and how does it work?

PerWorldPlugins will inject the Bukkit core with its own CommandMap as well as changing how the event system works using some neat (and totally not hacky in any way) tricks. This allows you to control which plugins receive the events needed to function, and more importantly, where they receive those events. Using this plugin, you can block plugins in certain worlds. If you're hosting a hybrid server, you're probably overflowing with excitement. Sick of people using mcMMO in your minigames? Block mcMMO in the minigames world! Don't like LWC in your hardcore world? Block that, too!

What's new?

We've updated our plugin to provide maximum compatibility, If you need the technical know-how, we've pushed the changes to our GitHub below. The biggest step in this update is the fact that we have stopped overriding Bukkit's PluginManager, meaning that all plugins should be compatible.


This is an example of the config.

    - world
    - world_nether
  ModReq: []

The configuration of PerWorldPlugins is simple and easy. Referring to the example above, WorldEdit would only work in the worlds 'world' and 'world_nether'. However, ModReq will work in any world.

REMEMBER: If a plugin has no world list, it will work in every world.

exempt-login-events is a self-explanatory feature. This controls whether or not PerWorldPlugins will allow login events to work in every world, no matter the limits. This is highly recommended to be true. It will cause some memory leaks. For example, most minigames plugins will save a player's inventory, so when they log out and log in, their inventory will be returned. If they return to a world that blocks the minigames plugin and this boolean is set to false, their inventory will be lost. Forever.

blocked-msg is also self-explanatory. This is just the string that is sent to players when they try a command from a plugin that is blocked in their current world. And no, there was no way to explain that easier.

You can also use these variables in the string:

  • %player% - The name of the player receiving the message
  • %world% - The name of the world that the player is currently in
  • %plugin% - The name of the plugin that is blocked in the world.

Developers (You shouldn't need this v1.2.0+)

API: Currently we don't support one. If you want one, suggest the features you want!

If your plugin is incompatible, it is mainly because the plugin might extend to SimplePluginManager. PerWorldPlugins will not extend to that class due to its protection; how can you expect us to do so without some more l33t hacky code manipulation?

Here's an example on how to fix it:

Before: (incompatible)

SimplePluginManager spm = (SimplePluginManager)Bukkit.getServer().getPluginManager();
Field scmF = spm.getClass().getDeclaredField("commandMap");

After: (compatible!)

PluginManager pm = Bukkit.getServer().getPluginManager();
Field scmF = pm.getClass().getDeclaredField("commandMap");

Done! That's it. Even as a bonus, if someone decides to make another PluginManager, your plugin will already work with it.

Installation and Use

  1. Download PerWorldPlugins.
  2. Place PerWorldPlugins.jar into your plugin folder.
  3. Start up (or restart) your server.
  4. PerWorldPlugins should have created a folder, called "PerWorldPlugins". Go in there, and edit the configuration file. (server\plugins\PerWorldPlugins\config.yml)
  5. Type /pwp reload in-game, and enjoy the plugin!

Video Tutorials/Showcases

For russian

Bugs and Issues

  • PerWorldPlugins may appear in your stacktraces. This does not mean that PWP is the cause of that stacktrace, so we encourage that you are able to comprehend stacktraces. If you are confident that the issue may be our plugin, then please make a ticket!
  • May be bugs to do with aliases of commands, we're looking into it but isn't top priority as we're waiting for Bukkit 1.8 or the next stable platform.


  • Fix up and prevent certain exploits and unfair tactics in places. (like the mcMMO/Minigames example)
  • Cut down on server lag; some plugins like SurvivalGames check player movement, which fires everywhere, costing you RAM and CPU usage.
  • Add more features and plugins into your server.


/pwp version - Displays the version of the plugin.

/pwp reload - Reloads the config.


pwp.admin - Gives access to reload and view the plugin's version.

Upcoming Features

  • Reversible configuration! Instead of whitelisting worlds, you can choose to blacklist them.
  • /pwp list E/D - list all of the plugins that are enabled/disabled in your current world.
  • /pwp add <plugin> <world> - configure the world whitelist/blacklist from in-game! Reloads automagically.
  • /pwp set <exemptLogin/blockedMsg/listMode - set configuration values from in-game! Reloads automagically.

Other Stuff

Source Code

YourKit supports this project with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications. We use it on this project to allow us optimise it for best experience. Check it out

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

  • Avatar of tjbruce tjbruce Oct 16, 2014 at 23:11 UTC - 0 likes

    The plugin is not disabling any commands and features in the worlds I have selected. Not even the scoreboard and boss bar. Using bukkit 1.7.10. Any other plugin I need to make compatible?


  • Avatar of RexzyV2 RexzyV2 Oct 15, 2014 at 23:57 UTC - 0 likes

    @drew5494 and it will disable in certain worlds?

  • Avatar of drew5494 drew5494 Oct 15, 2014 at 23:03 UTC - 0 likes

    @RexzyV2: Go

    Have you tried removing this permission? It worked for me. - factions.kit.rank0


  • Avatar of RexzyV2 RexzyV2 Oct 14, 2014 at 01:41 UTC - 0 likes

    This doesnt work if your trying to disable factions on certain worlds so dont bother using it if you have factions. Just get 3 servers and use bunjeecord this doesnt work.

  • Avatar of portapipe portapipe Oct 07, 2014 at 07:09 UTC - 1 like

    @TheR3ktor: Go

    Did you at least read what I've wrote? Just once? The issue is NOT command-related but... just read WELL what I've post.

    p.s. If I use a plugin like that is because I don't want to deny commands with worldguard. Is like buying a car without weels, it makes no sense. If you make a plugin like this it MUST block EVERY command from the plugins you've blocked. PWP ignores the aliases and that's not good.

  • Avatar of TheR3ktor TheR3ktor Oct 06, 2014 at 14:48 UTC - 0 likes

    Want to block Factions or Towny commands? Use WorldGuard Global Flag. Faction /rg flag __global__ blocked-cmds /f

    or Towny /rg flag __global__ blocked-cmds /t Nation /rg flag __global__ blocked-cmds /n

    Last edited Oct 06, 2014 by TheR3ktor
  • Avatar of portapipe portapipe Oct 03, 2014 at 07:00 UTC - 1 like

    This plugin doesn't disable any check of a plugin but just block the commands.

    I have factions in a world and I've put mcore and factions only to be loaded in that world.

    Every worldguard API that check if you can build in a region failed because of the wilderness (if I set build deny to users in the wild) so I had to permit users to build where they can't build in factions to have the 'can build' check correctly with my plugins.

    Take a look at this issue, I think is quite big.

    p.s. even the /t command of towny is not blocked, the /town and /towny commands are fine (?)

    Last edited Oct 03, 2014 by portapipe
  • Avatar of chsedv chsedv Sep 25, 2014 at 18:18 UTC - 0 likes

    @Duffa13: Go

    Im using WorldGuard v5.9.1-SNAPSHOT:1298-0dd9729,master and have no probs with this version

  • Avatar of Duffa13 Duffa13 Sep 25, 2014 at 10:08 UTC - 0 likes

    @chsedv: Go I do not have citizens installed on my server. I am thinking the issue has something to do with the new WorldGuard 6.0 Beta 2 update?

  • Avatar of chsedv chsedv Sep 24, 2014 at 15:57 UTC - 0 likes

    @Duffa13: Go

    I have found the error. My probleme was the new citizens2 version. I have now version of citizens2 from 15.9.2014 and it works.


Date created
Jun 12, 2013
Last update
May 20, 2015
Development stage
  • enUS
All Rights Reserved
Curse link
Recent files