JCInventory, Grid based jigsaw Inventory for your projects

&stc=1

A grid based Jigsaw inventory system using UGM and Blueprints for the market place.

Description:
JCInventory system is a modular inventory system that aims to be easy to install and customize while providing powerful features. Most notably its jigsaw like system and crafting system.
JCInventory was developed in response to a lack of an overall inventory system that would suit my own projects, and really strives to be as editable and user friendly as possible.
Special thanks to the Unreal Community for all the help on this project, i hope my work can help others.

Third person pawn example

First person example

Features:

  • **Grid Based Jig saw **drag and drop
  • Quick Bar
  • Simple Random Loot System
  • Easy to set up Items
  • 15 minute install, Everything set up with interfaces so you can plug your own characters in right away!
  • Crafting system with option to set up easy fast crafting or run custom scripts for more advanced game logic
  • Item containers that are easy to set up
  • System made with ease of level design in mind
  • Split items, combined items.
  • Context Menu.
  • Details Menu
  • Multibag/Portable loot container system
  • Full Network support!

Changelog 4.11

  • Features a overhaul of network code. Will be totally stable even in very Laggy environments.
  • Protection from client side hacking of items.

Changelog for 4.9

  • Added Third person pawn example
  • Cleaned up first person code to make it easier to learn from
  • Added custom depth rendering to itemscourtesy Tom Looman
  • Spawn pawn bug fix
  • Added in ‘Charges’ as seen
  • Added in examples for giving a gun ammo in its chamber, then reload takes up one ‘Ammo’ item.
  • Added a controller component for JCInventory that helps with some of the lifting, seen
  • Removed JcInventoryHUD, put it in new object RPCComponent
  • Removed the need to add the RPC Graph to your pawn, its all included in the RPCComponent.
  • Added in ‘Get class defaults’ instead of needed to spawn the item to get its item data where possible.
  • Added in new attribute ‘UniqueChargesName’ to name what the Charges of the ammo is called, for example- the 30 charges in a gun could be called ‘30 bullets’.
  • Added UniqueName attibute ability to make items of the same class be customizable. Example the ‘Sword of sharpness + 1’ on a sword class
  • Changed the way bags work to be a lot less convoluted and easyer to set up (no longer uses BAGbag name as a Tag, uses the UniqueName string value instead.)

Supported platforms:
As i own own a PC i can only really offer official support with that. I am willing to try to support other devices but i can be very tricky without a means of directly testing personally. It may work 100% fine on other platforms as its mostly UMG- would love to hear feedback on this!

Tutorials:
Tuts Wiki page

*Special thanks to jordan trudgett on OpenGameArt.org for background icons in picture
*And **BIG **Special thanks to Axxi for donating his time and making the graphics on the player inventory window in 4.8
*Thanks to Sorin for his awesome Rifle!
*Thanks to Tom Looman for the Custom depth render Post prossesing material !

Some questions to the community,
Currently multi-player is not supported. How important is that functionality, should i hold back release?
Would $25 US be a fair price point? I aim to keep this project low so as many people can use it as possible as i want to benefit the community. The money received i honestly intend to reinvest in Art assets as i am a programmer myself.

Is there any other features that the system could use?

Thank you.

Looks good. Is it networked enabled?

Doh … Ninjaed. 8-}

I personally would say it is very important to support multi-player as it will even work single-player if necessary.

I’m afraid the main motivation for the system was my own project and im not that interested in multi-player, but because of how the system is set up it would only delay release by one week (or less) if people needed such functionality.

I guess the question is how desperate are you to get it on the marketplace?

Currently if you were to release it as is and then release an update later … you could wait up to 3 or 4 weeks to see the update appear on the market place. If you delayed by a week and then did a release … you probably get more people buying it as there are very few network enabled inventory systems around.

Maybe you should submit it so long, continue to work on the network support … by the time it goes through the voting process … you will probably have finished the networking and can then release a new version.

I think you’re both right. First I wanna say that I like your system very much because of the crafting and the drag&dropable items and so on. Multiplayer replication is really a point these days.
But otherwise it is not hard to replicate the variables and the pickup & delete and drop & create functions and thats all you’ll have to do. If you did the network tutorials then you’re already able to do replication.
Don’t understand me wrong guys. I am talking not to a special person but rather to the guys who wanna create a multiplayer RPG or a MMORGP. Already finished systems won’t help you to come into the code/BP and that is my own experience I did that hard. People sharing their systems for peanuts of money for spending hundreds of hours in their work. I really marvel at this.
I also gonna buy all these inventory systems out there but not to use them in my game as a finished system. I use the BPs and scripts to learn from + there are a whole bunch of different solutions how you can solve the same problem and that is what I personally like. So just a tip, try to implement the multiplayer replication yourself. It is not really that hard.

is a tutorial which should be that what you’re looking for:https://youtube.com/watch?v=TbaOyvWfJE0
I am glad to see what updates, videos and pictures will follow. Nice system at all :slight_smile:

Thanks for your advice 3HMonkey, i am comfortable with replication and have since made about 60% of the system work on network. My guess would say it will be tested and finished by wens. :smiley: Unreal makes things very easy and the system architecture is very clean making implementation very simple.

I agree, if you wish to make a in depth and complex MMO good programming and engineering skills are incredibly important. I understand that a lot of the people who download this system will be looking to learn from this as a resource so i have spent a lot of time trying to make my comments and structure very readable. Code/blueprints i always think is deeply personal, however i have done my best to make the system easy to add to. I intend to make some videos soon to show what i mean, but i will finish replication first.

@3HMonkey: I fully agree with you and I buy Blueprint systems for exactly the same reason … to learn and see how things work. And yes it is fairly easy if you follow the Networking Tutorials to enable replication to any of your work.

The point I am trying to make is that there are very few Network Enabled Inventory Systems to learn from and this one would be a very good example of one.

Anyway … good luck with your submission Staggerlee … I will probably buy it and add it to my ever growing collection of Marketplace items. 8-}

Hi Staggerlee. Nice work. Competition is stiff for Inventory Systems destined for the Marketplace. Each every one is unique in its own way. You’re offering some interesting features and Network support is a great selling point. I’ve been working through UMG Tutorial to create a JRPG Style Action Menu myself, but, I’m going to purchase one of the more advance Inventory Systems to configure into a JRPG Style Action Menu. Unfortunately, I don’t have an Artist to draw up Icons, so my plan is add a Auto/Manual Snapshot System to create Inventory Item Icons on-the-fly. The less I have to do the better. Look forward to seeing JCInventory in the Marketplace.

One major problem with adding network functionality is that right now the system works without being invasive of the HUD class, Player controller or character. This is good because it can be added to exsisitng projects very easily.
Function replication only works on actors with net owners, i.e. the exact things i was trying to avoid impacting.
i have moved all the server side functions to the HUD class as this i hope is the least invasive class for existing projects, but really that’s just a guess.

My first thought was I could also have the inventory system as a pawn and give it a AIcontroller, but of course they only exist on the server so this would not work.

Edit: second thought was to considered component system, but would not work on containers and also only works in C++.

How important is it that the system not be tied into the HUD class/PlayerController/Pawn?
Is network more important? i don’t want people to have to rebuild there blueprints and blueprint copy and paste is much harder then copy pasting code.
edit: huh, i just tried installing it into another project and events copy and paste really easy. I guess i worry about the wrong things sometimes. Because there all in the event graph i guess. Normally i prefer to redo then copy paste with blueprints but that’s because of functions etc. Very happy with that!

@Techlord
Big fan of your work with GolemCraft, i will keep you updated. an auto snapshot feature would be very very cool.

https://.youtube.com/watch?v=YF21xTub3_k

Networking is in game! is a tech demo video, need to clean up the print strings.
It needs more testing and comments, but the system now supports networking and i was very excited and wanted to share!

If you want to see JcInventory on the market place please vote Trello

@Staggerlee: Wow that is an awesome job. Voted for you on Trello … good luck with your pack. 8-}

Can the inventory be switched from a grid based system to a non-grid space system? I assume it’s just a matter of icon size? Also, does the inventory system support sorting?

You are correct SaviorNT, the system can be changed very easily to a non grid based system by chaning the icon size to 1x1. It will work in all the same ways and have all its functionality! It also means you can change to a grid based system at any time if you like.
As for sorting, currently there is not support but sorting algorithms are not hard. THe next time i am in my office is on Wednesday and i will add this functionality into JCinventory as i think its a really good suggestion!

I will make a function for sorting by a string (i.e. the items name, A-z sorting) and the items quanity (an int, 0 - 9). From there any sorting you would like should be straight forward.
I have deliberately stayed away from adding variables such as ‘Weight’ and ‘Gold value’ to the items as i wanted the system to be as stripped back as possible but i will be making a video that shows how easy it is to add these variables.
I did not want to bloat the system with game logic that may not be relevant to everyone’s game!

Thank you for your suggestion SaviorNT! If you have any more questions let me know.

I also wanted to announce that because of all your votes JCInventory has been accepted by epic to be a candidate for the marketplace once i am happy with the documentation for the system. Thank you for all the votes, its very flattering and really makes me feel like my hard work is appreciated.
Mind you, more votes could not hurt as im sure it will speed up the process!
https://trello.com/c/NxDJ1Tn0/268-jcinventory

New tutorial up!
It explains how to add an item to JCInventory and how to set up crafting.
Many more to come, release will be soon as well! Thanks for all the support guys!

Setting up and Item in JcInventory

New Diggs!

New digs! Quick make over with the help of Buck (UI) & nickolasnm (Man) from OpenGameArt.org

Of course this is just something i put together quickly.
Note that the container window stretches with the size of the container (UMG MAGIC)!
96ac3ae889c236e9d0d2ac036f5917bd3bc3cb39.jpeg

also @SaviorNT, See those two buttons? A to Z sorting and Sorting by item size! In and working! Thanks for the suggestion!

Another new feature, items will scale to the right ratio when put into equipment slots, so items with different sizes do not stretch strangely bur rather enlarge as big as they can while persevering there shape!
I’m still open to more features! More videos coming soon guys. Next thing to do is to replace those item icons.

Awesome! Any idea when it will be available?

Doom Skull does not like hammers very much. LOL

Wow this is so awesome. This is the best kind of inventory system grid based and all! Seriously looks very clean in the editing window, kudos. One feature I’d ask for is setups for the item description, string combiners that can be added along with color coding & variables. So:

Doom Skull
+1 HP

  • 1 Hammer Resistance
    Belongs to Player 1

Kudos to you!

First off I’d like to say your System looks the most promising so far. I like it! I don’t really find it necessary to provide better graphics (others may think different), as long as it’s easy and flexible to edit for the Customer (maybe you could share some insight how to change the background image or Inventory size?). It’s hard to tell a fair price, especially since the features are not final and the marketplace is still in a very early stage. However for something like a Inventory System (potentially high demand) I’d rather go for a low price and sell more copies.

Well then…

  • optional weight system for inventory and containers (as it correlates with other features I suggest, and after all I don’t think it bloats the system more than it adds)
  • possibility to limit the amount of items a container/inventory may hold
  • possibility to limit the item(class) a inventory(container) or slot? can hold (actually similar to how your equipment works)
  • possibility for specific slots to pass information to the item it currently holds (e.g. telling the item it’s burning, it’s being powered, refilled etc.)
  • possibility to add nAmount of independent quickslots (should be limitable which item(classes), scale and weights are allowed)
  • inventory independent character/equipmentscreen
  • possibility for multi inventories (e.g. multiple bags) and containers (e.g. shelves in a storage rack)

Of course, not everybody will need these features, just as with crafting or sorting. But if I’m to buy a asset, I rather buy a fully fledged system that has most of the features I want and strip of the ones I don’t need instead of one where I had to add the wanted functionality on my own. However if you can’t decide which features to include and which not you might also consider to just offer both, a simple and a advanced version of the System.

Totally agree with these, I would especially like to see: *]possibility for multi inventories (e.g. multiple bags) and containers (e.g. shelves in a storage rack)