Search Unity

[RELEASED] Ultimate Inventory System

Discussion in 'Assets and Asset Store' started by opsive, May 19, 2020.

  1. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Ultimate Inventory System
    Available on the Asset Store
    Available on the Opsive Store




    The Ultimate Inventory System is a robust and fully featured inventory system for Unity. The system was designed from the ground up to offer flexibility for any genre.

    The Ultimate Inventory System contains an intuitive editor which allows you to quickly create your inventory objects. The UI display can be customized to show the inventory using the style of your game. Advanced inventory features such as crafting, upgrades, and a shop system are also included.

    The Ultimate Inventory System contains the following features:
    • Item Management
    • Inventory Display
    • Crafting
    • Upgrades
    • Shop
    • Currencies
    • Save & Load
    • Hotbars
    • Item Variants
    • Item Actions
    • Controller Support
     
    Last edited: Jul 14, 2020
  2. RobsonFMaciel

    RobsonFMaciel

    Joined:
    Jan 12, 2013
    Posts:
    187
    Please give us more details about the Ultimate Inventory System. Do you have videos? The price is too expensive for few details. Is there integration with the Photon module? Thank you.
     
  3. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Thanks for taking a look at the system.

    During the pre-release phase we'll have a demo and documentation available. Before we release on the Asset Store we plan on creating views. I can definitely answer any questions about it in the meantime though.

    The package currently does not contain any multiplayer integration, but it is something that we'd like to add in the future.
     
    RobsonFMaciel likes this.
  4. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    KeithBrown and TonyLi like this.
  5. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    A new update has been sent to Opsive Store purchases. You can see the release notes on this page. Major new features include integration with the Ultimate Character Controller, Behavior Designer, and Playmaker.
     
  6. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    TonyLi likes this.
  7. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    The Ultimate Inventory System will be released on the Asset Store on July 7th!

     
    Last edited: Jul 3, 2020
    TonyLi likes this.
  8. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Unfortunately we hit some last minute issues with the Ultimate Character Controller integration so are delaying the Asset Store release until we verify that everything works smoothly. As a result the new Asset Store release date is July 14th.

    Release candidate 4 has been released on the Opsive Store, and we have also published the first set of video tutorials. You can see all of the videos on this page.
     
  9. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    The Ultimate Inventory System hit version 1.0 and has been released on the Asset Store!
     
    digiross and TonyLi like this.
  10. hippobob

    hippobob

    Joined:
    Feb 26, 2017
    Posts:
    33
    Will this plugin work in 2D?
     
  11. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    @hippobob Yes it is independent from 2D/3D objects. The demo scene is only in 3D but you can inspire yourself from it to create your 2D scene.
     
    hippobob likes this.
  12. Naxorst

    Naxorst

    Joined:
    Apr 10, 2020
    Posts:
    2
    Hello.
    I have some questions
    Can the asset handle multiple inventories?
    Do you have a drag and drop option?
    If you can use the drag and drop option, and it accepts multiple inventories, could you drag and drop items from one inventory to another?
     
  13. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Hi @Naxorst

    The asset does handle multiple inventories. In our system an inventory is simply a component with collection of items. You can add it on any game object and do whatever you want with it. In the demo scene we use it for the character, shop, chest, pickups, enemiers, etc...

    Currently the asset does not support drag & drop but it has been heavily requested, so we plan to implement it in version 1.1. Once we implement it you should be able to drag & drop between inventories and item hot bars.

    No ETA yet on that but we'll post an update here once we have a better insight on when this update could come out.
     
    Naxorst likes this.
  14. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Version 1.0.1 of the Ultimate Inventory System has been released. You can see what has changed on this page.
     
  15. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    We released Version 1.01 yesterday and it contains quite a few bug fixes. But we still have a lot of improvements and features planned coming soon.


    For example in Version 1.02, which we plan to release some time next week, we will be adding breakable crates that drop items in the UCC/UIS integration.
    Crates_21_07_2020.gif

    This feature was requested by one of our community members. If you want a feature to be implemented in UIS we'll listen and if we believe it will benefit a good amount of our users, we'll implement it as soon as we can.
     
  16. PesadeloDoEspantalho

    PesadeloDoEspantalho

    Joined:
    May 26, 2017
    Posts:
    45
    Hi, would be nice to be able to add how much ammunition is loaded and the maximum number of ammunition on the item slots of shootable weapon in the inventory... :D
     
  17. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    That's a good idea @Rastos78 I'll add that to my todo list.
     
  18. PesadeloDoEspantalho

    PesadeloDoEspantalho

    Joined:
    May 26, 2017
    Posts:
    45
    Thanks!!

    I don't know if you've changed the system but when I made the integration of Inventory Pro I realized that you could only opt for it if the weapon was equipped and it was complicated just to get the number of consumable Item Amount.

    I had also added the option to be able to unload it, or if a weapon was in a container to be able to take just the ammunition (unload the weapon from the container and add it directly to your inventory).

    ;)
     
  19. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    UCC changed quite a bit to allow for a good integration with UIS. There is still room for improvements but everything works as it should.
    With the UIS/UCC integration we essentially bind the UIS Item to the UCC Item. So we should be able to get the consumable count/max through the UIS item.

    We don't have a way to unload ammunitions from a weapon into the inventory yet, but we could implement it using an item action. I can add that to the todo list too.
     
  20. PesadeloDoEspantalho

    PesadeloDoEspantalho

    Joined:
    May 26, 2017
    Posts:
    45
    Ok cool thanks :)

    I've integrated Mirror with UCC and I'm going to integrate UCC with Rucksack, at the moment I'm on the host migration but I wonder if I shouldn't make UIS compatible with Mirror instead...

    By the way your integration with Mirror has been abandoned??
     
  21. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    The Mirror integration with the Ultimate Character Controller has been led by a community member and unfortunately he decided to stop development. We may work on an official integration later, but probably not this year.

    Related to the Ultimate Inventory System, we'd like to eventually add PUN support since the character controllers already have support for PUN.
     
  22. PesadeloDoEspantalho

    PesadeloDoEspantalho

    Joined:
    May 26, 2017
    Posts:
    45
    Ok thanks for replies.
     
  23. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    I would like to know what kind of sorting solution the inventory system can offer and hope that when the drag and drop feature is comming that it also can offer split halve or de/increase by 1 for example.
    With sorting i mean, can the player sort the inventory by weight or by value and such things if he want?
     
  24. Hozedix

    Hozedix

    Joined:
    Dec 17, 2015
    Posts:
    1
    Hi when i prees the integration tab, it says "No integrations installed use a custom inspector". I got both UCC and UIS installed and i have Unity vertion 2019.3.11f1. Help?
     
  25. liquidsht

    liquidsht

    Joined:
    Jun 4, 2020
    Posts:
    49
    Hi I only just started looking at inventory and equipment in general so sorry if my questions are very noob.
    Say if I have an existing sword. In the UIS, I would select the attribute damage and set it equal to 10. Is that only a number that shows the player what the damage is? or Do I have to change my script so that it reads from the UIS that damage is 10. If it's the latter, does it mean any existing weapons will need to be rewritten to accommodate UIS?

    Thanks.
     
  26. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    @RandAlThor
    Currently if you wish to sort your inventory you would need to do so by code. There is a sort and filter function that can be overriden. By default we offer sort by category and/or name.

    In version 1.1 I will add an option to sort by an attribute value (i.e weight, attack, etc...)

    item stack splitting will also be implemented in 1.1, currently it can only be done by code but I'll be adding features so that it will be an option you can easily toggle on or off.

    @Hozedix
    After installing both UCC and UIS you'll need to install the integration package too.
    At the bottom on this page : https://opsive.com/support/document...oller/integrations/ultimate-inventory-system/
    you will see download links to the integration. Read through that page as it explains how to set up the integration. In the download links make sure you select you character controller you are using. Then simply enter your invoice number and the downloads for the integration package will be available to you.
    Make sure to join the Opsive Discord and forum if you have any other questions.

    @liquidsht
    When you create an attribute on the UIS item it can mean anything. There are a few names like "Icon", "Description", etc... which we use in some of the UI but in most cases you can name your attribute anything you want.
    If you were to name an attribute "Attack" then you would need to should that value to the player through the UI using ItemBoxes/AttributeBoxes.
    If you wish the attack value to affect your sword damage then you have two options.

    1) Use Item Binding: https://opsive.com/support/documentation/ultimate-inventory-system/item-objects/item-binding/
    Which allows you to Bind the attribute value Attack of your sword to a property on a component. For example if you have a custom SlashAttack component on your weapon prefab instance then you could bind the item attribute "Attack" value to a property "Damage" on your slash attack component.

    2) Get the attribute value through code. There are a few examples at the end of this page: https://opsive.com/support/documentation/ultimate-inventory-system/attributes/
    Then you can choose to use that value in whatever way you want: change the character stats. change the weapon gameobject stats, etc...

    The system is extremely flexible as you can create whatever attribute you want.

    I hope that answers your questions :)
     
    RandAlThor and Hozedix like this.
  27. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Version 1.0.2 of the Ultimate Inventory System has been released. You can see what has changed on this page.
     
  28. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Drag & Drop is a very requested feature and it will be available in version 1.1

    There is still a lot of work to do but here is sneak peak of drag & drop with grid sorting options!
    GridSorting_verion0.1_29_07_2020.gif
     
    RandAlThor and opsive like this.
  29. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    Great to see!
    So because sort by name is working a search field should be possible too or not?
     
  30. wuffyriongames

    wuffyriongames

    Joined:
    Jun 12, 2020
    Posts:
    4
    Will you be integrating this with Pixel crusher's Dialogue system?
     
  31. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    @RandAlThor
    I wasn't planning on making a search bar, but I could. I made it such that it is really easy to write your own sorters and filters for the inventory grid. So a search bar should be pretty easy to implement. I'll add it to my todo list.

    @wuffyriongames
    Tony Li from Pixel Crushers is working on an integration with the Dialogue System. There is no ETA yet though.
     
    wuffyriongames likes this.
  32. PesadeloDoEspantalho

    PesadeloDoEspantalho

    Joined:
    May 26, 2017
    Posts:
    45
    Hi, how does the fixed size item collection work?
    When I set (Main) Default Collection to fixed size item collection, I can't pickup item...
    (In Ucc integration Demo)

    NullReferenceException: Object reference not set to an instance of an object
    Opsive.UltimateInventorySystem.UI.Monitors.InventoryMonitor.OnItemAmountAdded (Opsive.UltimateInventorySystem.Core.DataStructures.ItemInfo addedItemInfo, Opsive.UltimateInventorySystem.Core.DataStructures.ItemStack newStack) (at Assets/Opsive/UltimateInventorySystem/Scripts/UI/Monitors/InventoryMonitor.cs:150)
     
  33. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Hello,

    For support can you post on the forum at https://opsive.com/forum? This allows us to track each request better and also has a search to make it easier to find previously asked questions.

    Justin
     
  34. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    @Rastos78
    As mentioned above, please ask support questions on the forum.

    as for the bug it's a simple mistake to fix, and the fix will be available in the next update.
    Simply swap the line 150 of the InventoryMonitor script by
    Code (CSharp):
    1. if (newStack == null || newStack.ItemCollection != m_MonitoredInventory.MainItemCollection) { return; }
    Thank you for bringing it up to my attention
     
  35. liquidsht

    liquidsht

    Joined:
    Jun 4, 2020
    Posts:
    49
    I was wondering how would the inventory system feed into a game progress save system. Say I collected one sword and one armour. From what I understand, I will track in my save file like this:
    int sword = 1
    int armour =1

    I am looking into saving and loading but just wanted to see if the UIS will simplify the process of declaring each item individually as there could be hundreds of them in a game. T
     
  36. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    @liquidsht Saving and Loading is a bit more complicated than that. Especially because some items are set as mutable and can change at runtime. We need to be able to save those modified values.

    Currently our solution is to save all the (unique) items in the game. Then each component keep track of the ID of the saved item and loads it after the InventorySystemManagerSaver loads all the saved items.

    Our save system allows you to register your own serialized data to be saved and loaded. So you can use it to save things that have nothing to do with inventory or items.

    We are looking into ways to make the save load more robust as a simple change in the inventory database can corrupt a save file.
     
  37. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Version 1.0.3 of the Ultimate Inventory System has been released. You can see what has changed on this page.
     
  38. Grendelbiter

    Grendelbiter

    Joined:
    Oct 14, 2016
    Posts:
    123
    Would it be possible to make an old school RPG inventory with UIS where items can take up multiple grids, like this:

    haven't seen anything in the docs or description about it so i assume no. Is it planned to be added?
     
  39. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Hi @Grendelbiter currently it is not supported.

    In version 1.1 we are upgrading and adding a lot of UI features including: filters, sorters, drag&drop and more...

    Having items that can take multiple slot is something I'm looking into too. Whether it is rectangles or even odd shapes, like a T or C shaped item. You'd define the shape of the item on the ItemDefinition as an attribute.

    With version 1.1 the goal is to allow users to build any type of UI they want, whether it is a list, a grid with pages and tabs, a drag-able window, an item-wheel, etc... It will take time to develop but it will be worth the wait!
     
  40. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Version 1.0.4 of the Ultimate Inventory System has been released. You can see what has changed on this page.
     
    opsive likes this.
  41. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    I'm very excited to show some of the progress on the drag & drop feature planned for v1.1

    We are building a very flexible system that allows you to customize exactly how items are passed around between different panels. The item boxes can be notified on drag hover to preview what will happen if dropped.

    As the gif below shows we can preview exchanges, or even preview that you may not add a weapon in the chest slot.

    Note there are still a lot of bugs and we have a ton more features planned for v1.1 so this update will take some time to get released.
    V1.1 will focus on UI, improving the existing system and adding a lot of requested UI features. If you have any features you would really like for the UI, please let us know.

    Stay tuned as we will show even more features in the coming weeks :).

    ezgif.com-optimize.gif
     
    digiross likes this.
  42. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Version 1.0.5 of the Ultimate Inventory System has been released. You can see what has changed on this page.
     
  43. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Version 1.0.6 of the Ultimate Inventory System has been released. You can see what has changed on this page.
     
    digiross likes this.
  44. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Another sneak peak at v1.1 with a gif that shows both drag & drop with mouse and "move" with controller working in the same grid.

    move_items_controller_04_09_2020.gif

    There's still room for improvements and many, many more features, so I hope you can be patient :)
     
  45. Niroan

    Niroan

    Joined:
    Jun 16, 2019
    Posts:
    115
    The most important feature for mobile games are drag and drop. Can you please release a fix that Will allow This. Been waiting for 7 versions now...

    What date are you expecting for This to be released?
     
  46. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Drag and Drop will be included in version 1.1. @Sangemdoko has been working hard on this version in between the minor updates to version 1. Progress is going well but we currently don't have an ETA on when 1.1 is released.

    You don't have to wait for version 1.1 to get started on your inventory though - when 1.1 is released will include a guide for how to update. This update is going to be focused on giving more UI options and from what I've seen it is looking extremely good.
     
  47. AJP-Online

    AJP-Online

    Joined:
    Aug 12, 2015
    Posts:
    4
    Hey guys,
    before buying your asset I have some questions (some others were already answered, like drag&drop or multiple inventories)

    1. Is it possible to change sucess rate in crafting items? For example i want to craft a Stone hammer (wood + stone + fiber) and I want to a successrate of 80% crafting the item.
    2. Is it possible to connect your shop system with a IAP system? => Buying ingame currency/items with real money. If it is not implemented which one would you recomment to combine with your asset?
    3. Can I use the system with mirror multiplayer?
    4. Can I set different "rights" to different inventories: One interactable inventory, another inventory with same content just showing items for other users?
     
  48. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Hi @AJP-Online

    1. It is possible to do this but it requires you to write custom code. You can inherit the recipe type to add a property for the success or you can add it as an attribute on the output item definition.
    From there you'll need to create a custom crafting processor that uses that information (and any other you might want) to decide whether the craft succeeds/fails and if the ingredients get removed. The crafting system is extremely flexible but going away from the default A + B => C formula requires a bit of custom code. Of course you'll also need custom code for the crafting UI to display all the information to the player. We help people who implement custom crafting systems in the forum.

    2. So far we have no integrations with IAP systems. I haven't had any experience with IAP systems so I wouldn't be able to recommend you any. I would assume that simply matching the IAP currencies with the Inventory system currencies would do the trick, but I could be wrong.

    3. We do not support any network multiplayer packages yet. But we hope to integrate with Mirror and PUN in the future

    4. That's not currently supported but it should be simple enough to add an option to deactivate all interactions.
     
  49. Niroan

    Niroan

    Joined:
    Jun 16, 2019
    Posts:
    115
    I bought it and i love it.

    i just need to know Something.

    the issue i have is that i currently get my players inventory from cloud service so each player has all their items in the cloud inventory. I Can define items in the cloud and give Them via cloud scripts.

    I want your inventory to be the GUI for that.
    I allready generate my own inventory with predefined custom class. From the cloud.

    i want to generate the item for Your inventory instead. I imagine its just populating items from a database. So i would cross check each item from cloud string name with the database for your items. And the amount. Then ADD the inventory item so it works with your inventory system.

    So my question. If i want to generate the items only via code for players inventory. Where In the code would i do This.

    Or even better do you have support for PlayFab cloud? Then everything would be Solved.


    Looking forward for your reply
     
  50. Sangemdoko

    Sangemdoko

    Joined:
    Dec 15, 2013
    Posts:
    221
    Hi @Niroan

    This is my first time hearing about PlayFab so unfortunately we do not support it out of the gate. That being said your idea of adding items to the inventory from the cloud database by name matching it to the UIS inventory database seems like the right approach. If you were to only use Immutable items that would work just fine, the issue comes from if you plan to use Mutable items (items that change attribute values at runtime). In that case you'll need to save not only the item name/id but also it's item attribute values. This is how the UIS save system saves/load items.

    As from v1.0.7 (which will come out very soon) you'll be able to add items to an inventory by name.
    Code (CSharp):
    1. //New since v1.0.7
    2. inventory.AddItem("MyItem", 1);
    3.  
    4. //Previously
    5. var item = InventorySystemManager.CreateItem("MyItem")
    6. var itemInfo = (ItemInfo)(item,1)
    7. inventory.Add(itemInfo)
    You could use that if you plan to only use immutable items. If not you can have a look at the InventorySaver script and to see how we serialize items such that they can be saved as persistant data.

    I hope that helps

    If you have further questions I would suggest you write them in the Opsive forum: https://opsive.com/forum/index.php