MultiInv
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
Features
- 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.
Forums/Problems
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.
Commands
- /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.
Permissions
- 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!!!!)
Configuration
^That's a link up there
Updating from MultiInv 2.x to 3.x
- Delete your old config.yml file in the plugins/MultiInv directory
- Start the server with the new plugin
- Rename the Worlds folder to Groups under the plugins/MultiInv directory.
- Rename shares.yml to groups.yml
- Cut the creativeGroups section out of groups.yml and paste it at the end of config.yml
- Edit the config.yml to your prefrences
- do: /multiinv reload
- If you are moving to the mysql database do: /multiinv import
- You're done, enjoy!
Links
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!

Stats provided by Plugin Metrics
-
View User Profile
-
Send Message
Posted Feb 16, 2015Finally figured out what kept messing up the inventories...It was a spawn plugin that I had that forced users to log into Hub world instead of where they logged out and allowed their inventories to be transferred to that world instead of their logout world..Whew!
-
View User Profile
-
Send Message
Posted Feb 15, 2015Hi
Your plugin is great, but I seem to have this error:
[18:25:51 WARN]: java.sql.SQLException Field 'inv_spectator' doesn't have a def
ault value
[18:25:51 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.j
ava:1073)
[18:25:51 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
3593)
[18:25:51 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
3525)
[18:25:51 WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[18:25:51 WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:21
40)
[18:25:51 WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.
java:2620)
[18:25:51 WARN]: at com.mysql.jdbc.StatementImpl.executeUpdate(StatementI
mpl.java:1662
[18:25:51 WARN]: at com.mysql.jdbc.StatementImpl.executeUpdate(StatementI
mpl.java:1581
[18:25:51 WARN]: at uk.co.tggl.pluckerpluck.multiinv.mysql.SqlConnector.c
reateRecord(SqlConnector.java:543
[18:25:51 WARN]: at uk.co.tggl.pluckerpluck.multiinv.mysql.SqlConnector.r
un(SqlConnector.java:734
[18:25:51 WARN]: at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.ru
n(CraftTask.java:71
[18:25:51 WARN]: at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftAsyncTa
sk.run(CraftAsyncTask.java:53)
[18:25:51 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unk
nown Source)
[18:25:51 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Un
known Source)
[18:25:51 WARN]: at java.lang.Thread.run(Unknown Source)
[18:25:53 INFO]: TipTopTom issued server command: /hub
[18:25:53 WARN]: java.sql.SQLException Field 'inv_spectator' doesn't have a def
ault value
[18:25:53 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.j
ava:1073)
[18:25:53 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
3593)
[18:25:53 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
3525)
[18:25:53 WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[18:25:53 WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:21
40)
[18:25:53 WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.
java:2620)
[18:25:53 WARN]: at com.mysql.jdbc.StatementImpl.executeUpdate(StatementI
mpl.java:1662
[18:25:53 WARN]: at com.mysql.jdbc.StatementImpl.executeUpdate(StatementI
mpl.java:1581
[18:25:53 WARN]: at uk.co.tggl.pluckerpluck.multiinv.mysql.SqlConnector.c
reateRecord(SqlConnector.java:543
[18:25:53 WARN]: at uk.co.tggl.pluckerpluck.multiinv.mysql.SqlConnector.r
un(SqlConnector.java:734
[18:25:53 WARN]: at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.ru
n(CraftTask.java:71
[18:25:53 WARN]: at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftAsyncTa
sk.run(CraftAsyncTask.java:53)
[18:25:53 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unk
nown Source)
[18:25:53 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Un
known Source)
[18:25:53 WARN]: at java.lang.Thread.run(Unknown Source)
I am using MySQL for the data storage, can someone help?
-
View User Profile
-
Send Message
Posted Feb 13, 2015@miki88mouse
http://dev.bukkit.org/bukkit-plugins/tuxtwolib/files/25-v1-8-b2/ That's the file you need.
@Flarupspige
Did you also add TuxTwoLib? Without it MultiInv will not function.
-
View User Profile
-
Send Message
Posted Feb 13, 2015even i deny this permission multiinv.exempt in my permission file, i still keep my inventory, because i am op?
-
View User Profile
-
Send Message
Posted Feb 11, 2015@miki88mouse
Allthough your english could recieve some improvement, for what I understand, your issue is quite similar to mine.
http://dev.bukkit.org/bukkit-plugins/multiinv/tickets/241-inventory-separation-ocasional-bug/
What do you think? Is my issue also your case?
-
View User Profile
-
Send Message
Posted Feb 10, 2015Can't produce any errors at the moment, but multiple players are reporting glitchy inventories after name change.
-
View User Profile
-
Send Message
Posted Feb 10, 2015@Tux2
Using 3.3.0 and I got an error: http://pastebin.com/5BgadLhB
-
View User Profile
-
Send Message
Posted Feb 10, 2015Will do.
Nothing wrong with my config' file, is it definetely a bug ?
-
View User Profile
-
Send Message
Posted Feb 10, 2015@galaipa
Hi, as far as I can tell the UUID is working correctly. Has the player's UUID changed?
@ElKomic
Yes, tickets are always appreciated.
-
View User Profile
-
Send Message
Posted Feb 10, 2015+, there's definetely a problem, I just encountered some enderchests permutations (between Creative and Survival, which is indeed a big issue).
I totally disabled them for now (and gonna double check if the exploit has beed used by players), I don't think I messed up with my configuration, therefore a fix is clearly needed. Here's my config' file: https://komic.eu/s/M6Rch
Should I create a ticket ?
-
View User Profile
-
Send Message
Posted Feb 10, 2015Hi The UUID isn't working correctly, the players lose the inventory. (Using offline mode)
I hope you can fix it
Thanks
-
View User Profile
-
Send Message
Posted Feb 9, 2015@Tux2
Maybe yes but I don't know it occurs...
Java version: java version "1.7.0_65" OpenJDK Runtime Environment (IcedTea 2.5.1) (7u65-2.5.1-5deb7u1) OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
running on Debian 7
-
View User Profile
-
Send Message
Posted Feb 9, 2015@TNTUP
You do realize that if I could tell you why they were losing their inventory I'd already have a fix for it, right? I do have a question though, what version of Java are you using, as Java 8 is having problems with the mySQL database at the moment.
-
View User Profile
-
Send Message
Posted Feb 9, 2015@Tux2
No errors. A player reported an inventory loss. Downgrading plugin... I give up...
Blocking enderchests because its too buggy and why it doesn't use the playerdata's in the correct world instead of storing in mysql? Would be much safer saving it from their playerdata world. eg: Creative with its playerdata...
Can you please tell me why it occurs too much that players lose either their inventory or enderchest?? This is the most critical plugin that I need to use for Creative, Skyblock and AcidIsland purposes. I hope you can "save" me haha X'D just being annoyed why and how it happens thats the issue, though no errors are printed.
-
View User Profile
-
Send Message
Posted Feb 9, 2015@TNTUP
Any stack trace in console when this happens?
-
View User Profile
-
Send Message
Posted Feb 9, 2015Player got his creative enderchest into survival's enderchest. Going to blacklist them,all.
idk what it causes it but im forced to keep this plugin... possible loss of inventories and enderchests with this plugin, I'll keep an eye on your dev server
-
View User Profile
-
Send Message
Posted Feb 9, 2015I get this error occasionally in the console when a player logs in, seemingly random:
http://pastebin.com/pdWRwvTs
I'm not sure if it's linked too inventory loss or not, but some people are also reporting occasional inventory loss when switching back and fourth from world to world.
-
View User Profile
-
Send Message
Posted Feb 9, 2015@rbos
You can enable the option "SaveInventoriesOnQuit" which will force MultiInv to save inventories when a player quits. The feature is currently in beta, but should work for your purpose. As far as the WorldInventories import, if you send me a PM with your Skype ID I'll help you get all the old inventories from WorldInventories converted over to MultiInv.
-
View User Profile
-
Send Message
Posted Feb 9, 2015@Tux2
well. WorldInventories never really stopped working, so it's never been replaced. With the UUID change, user renames have been a problem. So now I'm kinda stuck with it, not sure how to get off it at this point. I'll probably have to parse all the files and dump it into a new format.
Pity about the world change. I was hoping to use this to do multi-server shared inventories, and if it only saves on world change, then that doesn't work. Oh well, I should probably be using InventorySQL anyway, I'd just hoped that I could use this plugin's WorldInventories import. :)
-
View User Profile
-
Send Message
Posted Feb 9, 2015@Tux2
The plugin was actually mine (Knapsacks). Had a owner who was complaining of issues where inventory was getting cleared when they returned from Creative Mode, especially their Knapsacks.