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 Aug 17, 2012@Hangar
No problem Hangar! I'm basically maintaining this plugin because it is also essential to my server, and none of the alternatives worked the way I wanted them to. Multiverse-Inventories updates slowly, the author of WorldInventories is just updating the plugin to work with new releases and doesn't have much interest in making sure there are no bugs in it, with it also having a very volatile storage system for the inventories.
Also, right now I'm trying to get a hold of Pluckerpluck and see if he really has any further interest in the project at all since it seems I'm the only one really updating and maintaining the plugin. He came back awhile ago and made one commit for the logging system, then disappeared again. That way I can get the project assigned to me as the current author, if he truly doesn't have an interest, so I can make a few needed changes to the project page.
-
View User Profile
-
Send Message
Posted Aug 17, 2012@Tux2
Very nice, thank you. I would suggest making it a Page and putting a link up above so it doesn't get lost in the comments and people coming here in an emergency data-loss situation can find it nice and easy.
I'm so glad you picked this up and fixed it up all nice :) There has been a lot of uncertainty with the other inventory switchers and that's very worrying for a server admin when it comes to such a critical part of a multi-world server.
-
View User Profile
-
Send Message
Posted Aug 16, 2012@Hangar
That is, in a sense, correct. Your current inventory is saved in the players folder of your default world as defined in your server.properties folder. Now for the nitty gritty:
MultiInv keeps all other inventories in separate folders inside the "groups" folder. The group names you define in the groups.yml become these folder names. If a world is not inside a group it creates a folder with the world name instead. When you switch between world groups (or worlds not in a group), it saves your current inventory to the world group that you are leaving, looks in the group folder for that world, and loads that inventory. Also, when you switch world groups a file gets written called logoutworld.yml which contains the current world group you are in to check to make sure that you don't spawn in another world when you log in and you have the wrong inventory (It does a quick save to the folder of the last world you were in with your current inventory then gives you back your correct inventory).
Enderchest contents are also stored in the same location as player files, they just have .ec.yml at the end instead of just playername.yml. These get saved a tick after an interaction with your enderchest has occurred. When opening an enderchest the contents of that file for the world group overwrites whatever contents was in the chest before.
Book contents are stored in a separate folder called "books" in the MultiInv folder. The books Title, Author, and contents are made into a unique MD5 hash and then stored inside a file with the format: book_<md5hash>.yml.
The mySQL implementation of these is somewhat similar, with the enderchest, player inventories, and books being saved to different tables. The book contents are saved as a java beans XML file in the mySQL implementation.
Inventory contents format:
Player armor and inventory contents is saved in a field corresponding with the player's game mode. If game modes are to be ignored they are just saved in the survival spot. The Armor and Inventory inventories are separated by a colon (:) and is in the format <inventory>:<armor>. The contents of the inventory are separated by a semicolon (;) and each inventory item has 4 data fields, comma separated (,) in the format: <itemID>,<quantity>,<durability>,<enchantments or book hash>. The enchantments are further separated by a hash symbol(#), with the format of each enchantment being: <enchantmentID>-<enchantmentLevel>.
Hopefully this answers your questions.
-
View User Profile
-
Send Message
Posted Aug 16, 2012@WayGroovy
I honestly think that deserves its own page here, the exact How, Where, and When of players' inventory data getting saved with this plugin, so that admins doing recovery and whatnot can understand what they're doing. I've tried to get the other devs to expound upon this before and they never replied :/
Anyway, I believe that the main world's folder (as defined in server.properties) holds the inventory from whatever world you're currently in and these types of plugins swap data from their plugin folders into that position as needed. But I could be wrong. It's been a while and I've used a few different plugins like this.
Perhaps Tux can correct me or enlighten us :)
-
View User Profile
-
Send Message
Posted Aug 16, 2012Should be quite instant.
MultiInv has greatly improved it's safe saving and crash recovery.
If you are worried just get InventorySQL to be extra safe.
MultiInv should store players inventories in the /plugins/MultiInv folder in the according group folder as a .yml file or in MySQL DB
-
View User Profile
-
Send Message
Posted Aug 16, 2012How are files saved to MultiInv, and how often? If a server crashes, is there a potential for inventory rollback? I ask because after loading multiinv, i have players coming and going, and they have inventories, but their multiinv files don't change as I expected.
-
View User Profile
-
Send Message
Posted Aug 15, 2012I just pushed an update to MultiInv with an XP fix that fixes the XP bar on the client. The fix is not enabled by default and you need to go into your config.yml and set the option "xpfix" to true, then do /multiinv reload http://dev.bukkit.org/server-mods/multiinv/files/17-v3-1-2/
-
View User Profile
-
Send Message
Posted Aug 15, 2012@Crunkatog
That's not the entire error, please go into the server.log and pastebin the entire error please.
-
View User Profile
-
Send Message
Posted Aug 13, 2012Getting this error every time a player goes from one world to another (e.g. Creative to Survival) either by way of a portal, or by using the /mvtp command.
7:39:56 PMCONSOLE:
[SEVERE] Could not pass event PlayerChangedWorldEvent to MultiInv
7:39:56 PM
CONSOLE:
[SEVERE] Could not pass event PlayerGameModeChangeEvent to MultiInv
The inventory remains the same in all worlds that player visits - it is the inventory he or she had when first logging onto the server after the update.
Game specs: MC 1.3.1, Craftbukkit 1.3.1-R1.1 dev build 2327
Relevant Plugins: Multiverse-Core v2.4 build 525, MultiInv 3.1.1
Our configs:
useSQL: false
splitHealth: true
splitHunger: true
controlGamemode: true
separateGamemodeInventories: true
creativeGroups:
- creative
allowEnderChestPlacement: true
compatibilityMode: false
Our groups:
default:
- survival
- survival_nether
- survival_the_end
- gateway
creative:
- creative
pvp:
- hardcore-pvp
Could this be a compatibility issue with Multiverse? I have set Multiinv to override MV's inventory management before, with proper result.
-
View User Profile
-
Send Message
Posted Aug 13, 2012Config:
useSQL: false
splitHealth: false
splitHunger: false
controlGamemode: true
separateGamemodeInventories: true
creativeGroups:
- creative
sql:
host: localhost
port: '3306'
username: username
password: password
database: database
prefix: multiinv_
groups:
default:
- World
- World_nether
- World_the_end
creative:
- Sandbox
default - survival with surv inventory
creative - creative inventory
Using Multiverse. Worked fine some days and today I catched first player with messed up inventory. Any restrictions? Mb do not let use different tp commands inside of creative world and changing world only via portal not home etc?
-
View User Profile
-
Send Message
Posted Aug 12, 2012@macman73
Hi macman73, you are not alone, it seems to be happening whether you have multiinv or not: https://bukkit.atlassian.net/browse/BUKKIT-2227 Upvote the ticket!
-
View User Profile
-
Send Message
Posted Aug 11, 2012Thank you guys that was very helpful
Also it all come back as soon as you gain xp from killing a mob or something.
By the way MultiInv is a great plugin it I find it really usefull for my semi creative server.
Great work and thanks again.
Macman
-
View User Profile
-
Send Message
Posted Aug 10, 2012please xp :)
-
View User Profile
-
Send Message
Posted Aug 10, 2012I also have the same problem, XP dissapears. For now I'm using an XP bank so users can deposit their XP.
Edit, XP is saved in each world, there is just an issue showing the XP counter when you travel to and from worlds, a way to get your XP counter to show up again is by getting an admin to give you 1xp, or by depositing your XP into an XP bank using a plugin like signbank.
The problem is when you're Xp counter is glitched, you cant enchant stuff, you cant get XP from killing mobs.
-
View User Profile
-
Send Message
Posted Aug 10, 2012Hello, I have the same problem like macman73 the problem is Essentials.
Try to disable all of your plugins apart Essentials, if you relog the problem is solved but boring...
Its an Essentials bug I think...
-
View User Profile
-
Send Message
Posted Aug 10, 2012@macman73
What plugins do you have installed, what CraftBukkit version are you using, and are there any error messages in the console?
-
View User Profile
-
Send Message
Posted Aug 10, 2012Hello I have a problem that I am not sure is to do with your plugin well here it is anyway.
If my players use portals to teleport between worlds inventory is fine but all the players XP dissapears. This also happens to me as an OP. This also happens by doing /mv tp world etc.
If I use warps using another plugin the players XP remains.
I just updated to your latest release 3.1.1 for use with CB 1.3.1. and it still happens I could not tell you if this was happening before the Craftbukkit update.
Hopefully you can advise
Many Thanks
Macman
-
View User Profile
-
Send Message
Posted Aug 9, 2012@deleted_7554077
And your request has been fulfilled: http://mfav.me:8080/job/MultiInv3/60/
permission node: multiinv.enderchestexempt
-
View User Profile
-
Send Message
Posted Aug 9, 2012Yeah would be useful.
And maybe udner a different permission like multiinv.exempt.enderchest
Thanks :D
-
View User Profile
-
Send Message
Posted Aug 9, 2012@deleted_7554077
That's correct, EnderChest inventories follow the same mappings as regular inventory. Also, there is no exemption for EnderChest inventories at the moment. If you guys want it though I can add it.