What is MultiInv

MultiInv is a plugin that gives players a separate inventory for every different world running on the server. You can share inventories over chosen worlds and some players can be ignored entirely. With this power it is possible to have multiple worlds running on one server, but keeping them totally segregated from one another.

MultiInv can also separate health over certain worlds allowing for total separations of a world on a server.

If MultiInv refuses to work and you can't change inventories, it's because you have the wrong version of the TuxTwoLib or forgot to deny yourself the permission multiinv.exempt!

Update for UUIDs and 1.7.9 (there will be no support for 1.7.8 or below due to game breaking bugs) are here! Download will be available as soon as Bukkit Dev approves it.

MultiInv and MobArena are currently not compatible! Make sure users can only join a mob arena from the same world group!

Starting with MultiInv 3.2.1 we now require the library TuxTwoLib to maintain compatibility across various minecraft versions

Video Tutorial


  • Separate world inventories
  • Create groups of worlds where the inventory is shared between them
  • Separates XP, food, health, potion effects, and EnderChest inventory per world/group of worlds.
  • Option to ignore certain players completely (permissions based)
  • Can import Multiverse-Inventories/WorldInventories saved inventories.
  • Option to use mySQL instead of flat files.


The forums for this plugin (at the top of the page) are the best place to go if you have any questions that aren't just general comments (such as "I hat you" or "I love you"). There I can see which problems have been replied too and who still needs help.

Using MultiInv with BungeeCord

Since BungeeCord requires servers to be in offline mode it's sometimes hard to acquire a reliable UUID if Spigot/BungeeCord isn't configured correctly. Here are the settings you will need to change:
In the BungeeCord config.yml make sure ip_forward is set to true
On the server in the spigot.yml make sure bungeecord is set to true
By setting these two options BungeeCord will be able to pass the correct UUID to the servers. Please note that if you are sharing inventories across multiple servers that this feature is still in beta and may not always work.


  • /multiinv reload - Reloads config files.
  • /multiinv import - Imports flat files into a mysql database.
  • /multiinv mvimport - Imports Multiverse-Inventories into MultiInv, with the database that you have selected. (You will need to have the Multiverse-Inventories plugin installed when doing the import, just make sure to remove it afterwards)
  • /multiinv miimport - Imports WorldInventories into MultiInv.
  • /multiinv mcimport - Import Minecraft player files into MultiInv. (Only useful when you've got existing player data and you are enabling the SaveInventoryOnQuit option)
  • /multiinv mcexport - Exports MultiInv player data for the default world into the default world in Minecraft format.


  • multiinv.reload - Permission to use the reload command
  • multiinv.import - Permission to use the import command
  • multiinv.mvimport - Permission to use the mvimport command
  • multiinv.mcimport - Permission to use the mcimport command
  • multiinv.mcexport - Permission to use the mcexport command
  • multiinv.exempt - Exempts player from inventory switch (If your inventory is not changing, deny yourself this permission in your permissions manager!!!!)


^That's a link up there

Updating from MultiInv 2.x to 3.x

  1. Delete your old config.yml file in the plugins/MultiInv directory
  2. Start the server with the new plugin
  3. Rename the Worlds folder to Groups under the plugins/MultiInv directory.
  4. Rename shares.yml to groups.yml
  5. Cut the creativeGroups section out of groups.yml and paste it at the end of config.yml
  6. Edit the config.yml to your prefrences
  7. do: /multiinv reload
  8. If you are moving to the mysql database do: /multiinv import
  9. You're done, enjoy!

When, Where, and How are the Inventories Saved?
Old forum page (Includes old version links)
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Jenkins Dev Builds
Source Code

Please note, that while I (Tux2) am maintaining this plugin you must file bug reports under the tickets section. If you're having a problem, try replicating it in the latest version of MultiInv as it could already be fixed! Also, if you want your problem to be addressed please make sure to include the MultiInv version, the TuxTwoLib version, your config.yml and groups.yml files contents as well, (even if it is a comment asking for help) If you do not follow these guidelines your comment may be deleted without warning!

MC Stats for MultiInv
Stats provided by Plugin Metrics

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

  • Avatar of Rosming Rosming Jan 27, 2016 at 06:03 UTC - 0 likes

    Thanks for this awesome plugin but there is on minor error I would gladly seen patched, when a player switches worlds especially from creative to survival the player can duplicate 1-2 blocks by spamming the drop button(q) when its switching...

  • Avatar of mcsorley mcsorley Jan 03, 2016 at 22:55 UTC - 0 likes

    @Yupie123: Go

    I have the same error, players loose ther inventory :S

    Have you find a solution

  • Avatar of Yupie123 Yupie123 Dec 27, 2015 at 17:13 UTC - 1 like


    I'm getting this error for some players. They are able to keep their inventory through worlds and gamemodes because of this..

    27.12 11:10:33 [Server] INFO ... 28 more
    27.12 11:10:33 [Server] INFO at$1.execute( ~[spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at java.lang.reflect.Method.invoke( ~[?:1.8.0_45]
    27.12 11:10:33 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke( ~[?:1.8.0_45]
    27.12 11:10:33 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke( ~[?:1.8.0_45]
    27.12 11:10:33 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
    27.12 11:10:33 [Server] INFO at ~[?:?]
    27.12 11:10:33 [Server] INFO at ~[?:?]
    27.12 11:10:33 [Server] INFO at ~[?:?]
    27.12 11:10:33 [Server] INFO at<init>( ~[?:?]
    27.12 11:10:33 [Server] INFO at<init>( ~[?:?]
    27.12 11:10:33 [Server] INFO at<init>( ~[?:?]
    27.12 11:10:33 [Server] INFO at ~[?:?]
    27.12 11:10:33 [Server] INFO Caused by: java.lang.NullPointerException
    27.12 11:10:33 [Server] INFO at [?:1.8.0_45]
    27.12 11:10:33 [Server] INFO at [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.MinecraftServer.A( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.DedicatedServer.B( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.MinecraftServer.B( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at [?:1.8.0_45]
    27.12 11:10:33 [Server] INFO at java.util.concurrent.Executors$ [?:1.8.0_45]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$ [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.PacketPlayInChat.a( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.PacketPlayInChat.a( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.PlayerConnection.a( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at org.bukkit.command.SimpleCommandMap.dispatch( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at org.bukkit.command.PluginCommand.execute( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at com.earth2me.essentials.Essentials.onCommand( [Essentials-2.x-SNAPSHOT%20(1).jar:?]
    27.12 11:10:33 [Server] INFO at com.earth2me.essentials.Essentials.onCommandEssentials( [Essentials-2.x-SNAPSHOT%20(1).jar:?]
    27.12 11:10:33 [Server] INFO at [Essentials-2.x-SNAPSHOT%20(1).jar:?]
    27.12 11:10:33 [Server] INFO at [Essentials-2.x-SNAPSHOT%20(1).jar:?]
    27.12 11:10:33 [Server] INFO at com.earth2me.essentials.Teleport.teleportPlayer( [Essentials-2.x-SNAPSHOT%20(1).jar:?]
    27.12 11:10:33 [Server] INFO at com.earth2me.essentials.Teleport.teleport( [Essentials-2.x-SNAPSHOT%20(1).jar:?]
    27.12 11:10:33 [Server] INFO at [Essentials-2.x-SNAPSHOT%20(1).jar:?]
    27.12 11:10:33 [Server] INFO at org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer.teleport( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at net.minecraft.server.v1_8_R3.PlayerList.moveToWorld( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent( [spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent( ~[spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO at$1.execute( ~[spigot_1.8.8_5f38d38-18fbb24.jar:git-Spigot-5f38d38-18fbb24]
    27.12 11:10:33 [Server] INFO org.bukkit.event.EventException
    27.12 11:10:33 [Server] ERROR Could not pass event PlayerChangedWorldEvent to MultiInv v3.3.5


  • Avatar of adopted3 adopted3 Dec 22, 2015 at 01:24 UTC - 0 likes

    @ExoKruzer: Go

    We're also getting this error every time a player switches worlds. Everything seems to work, but the error message is a bit unnerving.

  • Avatar of sdafghdfg sdafghdfg Dec 21, 2015 at 12:46 UTC - 0 likes

    Does it support version 1.7.10MCPC+?

  • Avatar of U1T1MATE U1T1MATE Nov 30, 2015 at 00:02 UTC - 0 likes

    If I install MultiInv on my server, will current player inventories in a set survival world I have be wiped? Is there a way to prevent that?

    My setup is one city world, and one survival world, that I would like separated.

  • Avatar of Schneidertm Schneidertm Nov 23, 2015 at 13:52 UTC - 0 likes

    @Tux2: Go

    Thanks. I will try it. Love this plugin! Thanks for the amazing work!!

  • Avatar of Tux2 Tux2 Nov 11, 2015 at 18:40 UTC - 2 likes

    Hey guys, after hearing all this feedback about how this plugin is "broken" with version 1.8.8 I decided to take a look. Seems like you guys just need to deny the multiinv.exempt permission as everything compiles perfectly over here and works with 1.8.8 on my end. Bitcoins?1Lr7prAnqYpZe2UizvPKV2Cg4KSuj2weXb
    If you didn't take the time to read how my plugins work, don't expect me to take the time to diagnose your stupidity.
    If updates to my plugins depended on donations, they would never update. Donate!

  • Avatar of ssamjh ssamjh Nov 07, 2015 at 12:57 UTC - 0 likes

    Hey, I have a problem on my server, when players die and they loose their inventory, they keep their helmet.

    This is a extremely annoying bug, does anyone else have this problem?

  • Avatar of ExoKruzer ExoKruzer Oct 27, 2015 at 11:00 UTC - 0 likes

    Hello. Every time I switch gamemodes, i get this error Happens in every world. I have multiverse-core for the world managing in case that info is needed. Any idea why its throwing so many errors? v3.3.5 MultiInv and v1.8.4-b6 TuxTwoLib (Latest for both at this moment) Config and groups:


Date created
Aug 26, 2011
Last update
May 18, 2015
Development stage
  • enUS
GNU General Public License version 3 (GPLv3)
Curse link
Recent files
  • R: v3.3.5 for 1.8.1 May 18, 2015
  • R: v3.3.4 for 1.8.1 May 12, 2015
  • R: v3.3.3 for 1.8.1 May 04, 2015
  • A: v3.3.2-dev for 1.8.1 Jan 08, 2015
  • R: v3.3.1 for CB 1.7.9-R0.2 Dec 03, 2014