Announcement

Collapse
No announcement yet.

JCInventory, Grid based jigsaw Inventory for your projects

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Hey man, I saw in previous posts you asking about Suggestions for documentation:

    Here's my suggestions after just looking into this briefly. I state briefly, because I think this system so far in the demo is an amazing starting point for so many things. So good on you for making and sharing this at a wicked price. I'm sure I'll learn more as I look into it and figure things out... but I think your goal is to make it so that people can support themselves as much as possible and as quickly. I think this is the best approach too.

    So.... do text based docs first. Videos later. I just sat down to start looking into this and properly integrate it. (maybe 25 mins ago). I'm trying to work with the containers and backpacks. I watched your 8 minute video. The options after creating the BP are slightly different. There's no item tags anymore. Might be easier for you to maintain updates on text docs then it is to do new videos every time. Outdated videos work if the text that goes with it is up to date. You're also more inclined to sit down and write about what you already know, then to have to prep a project and script to record a video.

    The reason I say that is because i created the backpack bp the way you said to. I added it to my test map. I can pick it up and it disappears from the map, but the icon doesn't display. I even just tried using the same Icon your briefcase uses and still doesn't display, but an empty grey space does display, which is unclickable, undraggable etc.. its stuck. I added your demo briefcase to the map. I can pick this one up as well , but when I click on it I hear the *ding* noise.. but no second window appears. Also if I pick mine up first than yours, yours just overwrites mine. Same applies if I drag yours over mine in the inventory window. However if I drag yours partially over mine, yours just disappears forever lol. Anyway thats my suggestion for now, because I don't know where to look to track this down. I'll spend some time on it now, I compared mine to yours in terms of the backpack_BP to make sure they're identical. I added your demo container as well and went up to it and hit the hot key... nothing happened. I don't have the hand icon tick setup but I do have all the hud functions integrated into mine. From stepping through your demo and my game, yours runs the events in the hud, mine doesnt. Don't know where to look next.... will take time to go thru it all since the system is big and complex (in a good way for use.. bad for troubleshooting learning... heh)



    Part of my day job is writing up technical documentation for cloud security software. I find the best way to introduce someone to a complicated system is a semi-point form, step by step guide from start to working. They don't need to necessarily understand the entire process first time, nor each step. You're detailing the functions separately as you're doing is good for deeper knowledge. But getting it working first is key. Then customization and understanding the core comes next.

    Unless I'm missing it (and thats totally possible) I don't see a doc like that on your site yet, I think videos are fantastic and totally appreciate the time you've put into trying to build up self-serve support for your product, but a core how-to I think would be great to get new buyers running with it and "off your back" in terms of support. As well as positive "easy to get running" feedback. It's somewhat difficult to seek through the videos to recheck things. Luckily you keep yours short.

    I'd suggest these headers filled in with steps 1 - x. (don't have to detail how to move functions from one BP to another or tedious BP basics like that, the buyer should know that. Just state which ones and to where...or what new nodes specifically to create if need be obviously)
    a few screenshots would help along the way but maybe you could create a fresh project with a character. Migrate your JCInv system to it. And integrate it step by step with the new character... as the buyer would. thinking as if you had a 4month old project already underway


    1. Integrate the Core System (basically point form of your video for using your own character)
    2. Equipping on drag and drop
    3. Setting up Backpacks
    4. Setting up Containers
    5. Making new items work with this system add new item from scratch example
    6. Randomize items in containers/"dead bodies" etc

    Once the buyer goes through all of those things. They basically would have seen all the parts of the system they need to customize and integrate it. It's not your responsibility to customize the system for everyone's game at all. Nor should you be asked to help with any weapons or item systems once they're equipped (as I've seen people ask). But it is to give them an understanding of where to find things and how to use them. For example, I don't think it's your task to train people on how to equip a weapon to a socket, thats not only easy, theres a million docs online on how. But when I drag an item to the hand in the inventory window.. .I'd like to know where in the code that occurs so I can link it to my "equip function" I already have. If I press 1, it equips an M16 rifle providing they've picked it up somewhere and the bool for having it is set to true. (before having your system in place). I want to tie this to dragging and dropping the rifle onto the hand as well. however first, I need to figure out how to pick up my rifle item using your system so it appears.. or its not your task to teach someone how to set up reloading and ammo control systems... I already have that setup. But when they drag ammo onto their gun OR they have ammo in a quick slot and hit that button, I want that to trigger my reload function avec animation etc....and so on.

    Sorry for the long post. I know writing a doc like that would probably take you a full day... hopefully its worth your time once. I think it would help you in the long run.

    Bye for now!
    Snap-In Systems: <<< CLICK
    | Inventory (Battle Royale) |Smart Select Box | Ready Game Modes | Handy Macros | Gun Weapon System |Simple Mesh Outliner |

    Comment


      Hey there Thankstipscom, really good constructive feedback. Documentation is a on going process, but i'm certainly not happy with it as of now, there is still much to be done! I'm going to take your words on board 100% and make a text tutorial for setting up JcInventory on a pawn, after that i will study how it goes. I have avoided too much text documentation as the i feel blueprint is a visual scripting language and the video suits it better, but i am willing to try all things to help the community.

      Once the buyer goes through all of those things. They basically would have seen all the parts of the system they need to customize and integrate it. It's not your responsibility to customize the system for everyone's game at all. Nor should you be asked to help with any weapons or item systems once they're equipped (as I've seen people ask). But it is to give them an understanding of where to find things and how to use them.
      I have finished implementing JcInventory into the Survival game C++ example, i just need to make a nice video explaining how to do it. From there i will go back and do another pass on the basics, as i agree with the above. This will be the last tutorial of this kind for awhile. It will cover most of the above in a fashion.

      I also wanted to take the time now to help you with the backpack system (even though that's not the core point of your post, im sure it will help!), TAGS have been moved into attributes inside item data. It functions the same way as the video other then that. I release how frustrating these little things are when the documentation is out of date! The reason for this way that attributes contain all persistent data for the item, so it made sense to move Tags within it.

      As for hotkeys to equip the rifle, have a look at the code in the Quick Bar Slot widget, as it does exactly that! It uses a function called Find Items in Inventory that also returns the index of the location in the players inventory. Quick tip, Try to avoid using Find Items in Inventory By Class on tick as it could get expensive.

      I will keep working on documentation, because at the end of the day, its good for users because you get immediate clear information, and its good for me because i can move on to making improvements! But until then if anyone has any questions about the above functions or any headaches do feel free to post on this forum or PM if that's more comfortable for you.

      On a related side note
      The Survival game video will be published on Wednesday.
      Last edited by Staggerlee; 07-17-2015, 12:46 AM.
      JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

      Comment


        Thanks for reply.

        I wasn't so clear on the back pack issue. I got pulled away and could only get back to it now. I figured the tags were in the attribute section just by looking at it initially. I assumed that was where to edit it so I'd actually already did that earlier and it didn't help. Thats the reason I opened the demo back pack and started comparing. In the demo one, there is no tag entered in the attributes tags either. I'm not sure why they're behaving differently. The demo one doesn't work properly with my character on its own either. Meaning it doesn't run the hud event to open a new inventory window that represents the content. But at least the demo one equips properly. Gonna play with it a bit now. If you think of what might be it.. shoot me a quick msg. If I figure it out now ill update this post.




        As for the docs, I agree the videos are awesome. I personally am a very visual person in general. I hate manuals that have massive table of contents etc... I like guides though. The more complicated the system, the simpler the guide should be. Start to finish, basic working system that touches on all its functions. I prefer step by step(text) guides with some screenshots to videos or any other documentation. Mostly because I can work at my own pace and go back and search or check for things im not sure of. It's easier to update and at the end of the day it's a backbone for all support issues for reference. Kind of a "check here in the meantime". One guide that goes through those main points would be helpful. If you wanted videos for each section, you could follow your own guide and record as you do it

        But of course whatever you think is the most appealing to the community, you should do, I just dont want to bug you for things lol. Let you get to improving or creating new things.

        kk... Onto to try and sort this backpack thing now.


        EDIT: Seems the "item name" is required. I entered a random name and it now equips and plays nice with the other inventory items. That took like two mins to figure out. Just gotta figure out why its not opening when trying to use it.

        EDIT 2: So this took me a bit longer to figure out (hour ish) but I finally got it. I stepped through the example. Needed BAG in the item tag (as mentioned in the video). But you ALSO must have the item name. Took me a bit of time to figure out where to put break points. The main issue that confused me so long was that even on the example there is no tag for the briefcase. So unless the tag gets set on begin play or something, I'm not sure how it works there, but when stepping thru the bag tag check ends up true even though the tag isn't set. I was trying to mimic what worked but.. hmmmm anyway.. kinda messed myself up because I didn't have the itemname but I did have the tag right initially. When that didn't work, I removed the tag to make it look like the demo example, and added a name(like the demo example)... lol and went the long way around figuring out that I needed to put BAG back into the tag while itemname is set.

        anyway... Good stuff. I like how the system is set up so far.
        Last edited by thankstipscom; 07-17-2015, 03:16 AM.
        Snap-In Systems: <<< CLICK
        | Inventory (Battle Royale) |Smart Select Box | Ready Game Modes | Handy Macros | Gun Weapon System |Simple Mesh Outliner |

        Comment


          Hey there thankstipscom, Item name is one of the values checked to see if a item is valid so it is always 100% needed!
          Secondly, check out the Injected attributes of the bags in the demo level, any overrides to attributes that you wish to make should be placed there. In this case, we are overriding the BAGname tag, so we need to recreate a new attribute in the replace/inject attributes struct in the details panel of the backpack, or in the containeritems struct inside a container (if it is inside a container already).

          At begin play the injected attributes will override the itemdata attributes. The item data attributes should never really be modified directly in the details panel. So you need the item data, then to create a separate backpack you need to add 'BAGUnique Name here' in the Replace attributes section. Its somewhat cumbersome at the moment im afraid, i will be looking to optimize it, but this workflow does function!
          JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

          Comment


            Product review

            So I purchased this a few weeks ago because I sat down and thought to myself, I could spend the next couple weeks building an inventory system or I could take a risk and purchase one and hope it does what I want. First I took a day to try a tutorial out. It was a very loooong one and while a good effort, not very efficient. So I searched around and ended up buying this one. I've spent a lot of time on learning it. More than I initially wanted to for an inventory system but after seeing the features, I kept wanted to make additions to my own game to make it better so learning this was essential to do that and I'm very glad I did. So far in total I'd say I've spent a solid 1-2 days of actual work time integrating it into my game. After seeing how complex the system is under the hood, I'm happy I bought it rather than go the distance on my own. There are things included here I never thought of that are necessary. But aside from that, the structure of the system makes a very good attempt being as automated as possible.

            To save a lot of reading time: I'll make it more point form of what I think people would be looking for:

            - Drag and drop personal inventory menu
            - Drag out of menu to drop on the ground in the level
            - The pickup function already works
            - Easy to understand the item class. Very easy to start making your own pickup-able items
            - Straight forward item attributes to customize and apply stats, looks and variations to items
            - UI menu on the items themselves, so USE, DROP functions are available. you can make each item or class do the logic you want by simply adding the use item function to it. You can make your own functions here in UMG.
            - Quick slots are already integrated and easily expandable
            - Containers. Not even part of personal inventory, but containers are built in so you can use them as Loot chests, dead bodies, boxes, fridges, drawers, whatever... set it up as a container populate it with items randomly or purposefully and thers a loot box just like that.
            - Backpacks. Pick up a back pack and you now have a separate inventory window to store more stuff. The backpack takes up space in the personal inventory but gives more by default, etc...easy to setup once you know the system a bit and easy to customize

            Thats whats included and works with the included FPS character out of the box, integrating all of this into your own character works......*almost* out of the box. There's "rough-ins" for other things like

            - attaching static meshes to sockets upon equip (very basic sample code is included for this)
            - inventory weight systems
            - powerups and attributes application affected by inventory items etc...
            - Crafting (mixing multiple items together). This is pretty much included from what I can tell already, I haven't played with it yet but it seems pretty straight forward to use. comes with a sample that works for adding a silencer to a gun. Might not be the best example since the addition looked permanent, but can see how it would work for crafting items and bombs etc.


            The truths:

            - if you're just starting your game and want an inventory system... get this NOW not later. Building around what you get here is easy. Integrating this into a large existing project. Not as easy.
            - No inventory system that you buy will plug into your game in 5 mins or less. Especially one that has as much as this does. So expect to spend a few days learning how it functions, so you can start integrating or rewriting your functions to work with it. It's got expansion and automation in mind, so you can add items and attributes whenever and they just fit in without having to modify the system.
            - It won't attach the meshes when you equip an item in the inventory slot. It's not supposed to. When you switch out the item in the slot, you can have that trigger an event that you can make do whatever you want, like adding a mesh, removing a mesh. You will need to know how to do this yourself (and you should already)
            - It's not an ammo, gun or weapon system as some seem to expect. It houses, switches, modifies and uses inventory very well, thats what it does
            - The videos that exist are great and short and easy to follow. Some are slightly outdated, but the creator is responsive in the forums and friendly and helpful. There isn't much in the way of documentation though and this is a big fault for me since the videos show certain things in a specific way sometimes. I wanted a deeper understanding of the system so I could customize it. A lot of my time with it has been trial and error to learn how it works. Which was beneficial, but could have been eased with more written docs in my opinion. This is being worked on according to the creator though, so we'll see if more docs appear. Though I may not really need them much anymore. lol
            - Lastly, a minor but pet peeve of mine is the branding. It's JC's product and thats cool, but every function and variable under the hood of the system is branded "JCThis" "JCThat". While it doesn't make much difference in the end, I like keeping my code organized and labelled in my own way. I'd have preferred something more generic like "INVThis" "INVThat". So at least it doesn't look like product placement everywhere. Again it's minor.

            Conclusion:

            I haven't tried the other available systems, but I've checked out the features. This one seems to have the most features that fit the context of the system. Not just but a bit but by far. An integrated chat system in my opinion doesn't fit here for example. But crafting, backpacks, looting containers, attributes, using items out of the window...on top of storing inventory. Thats a complete system. I wouldn't expect any system that is done in a clever manner to take 5 mins to install. The system isn't difficult to integrate into your system, but it just takes patience and understanding. Put the time in to integrating this into your game and you won't be sorry. For the price, the value is beyond a good deal. I can't stress enough the amount of features this has included in it just waiting to be used and customized your own way. For sure the best system out there for inventory management, for any type of game. The ease of expansion alone makes it phenomenal.

            I integrated this into a TPS in a matter of days and expanded on quite a bit without any major issues. The possibilities for expansion are pretty much endless on it.

            Jack has been around to help out when needed as well.
            Last edited by thankstipscom; 07-20-2015, 07:17 PM.
            Snap-In Systems: <<< CLICK
            | Inventory (Battle Royale) |Smart Select Box | Ready Game Modes | Handy Macros | Gun Weapon System |Simple Mesh Outliner |

            Comment


              found a bug just wanted to report:

              if you have any other umg widgets showing on the players screen and you drop an item onto it... it just disappears totally. It doesn't register the drop so in the code the character still has the item, but the mesh disappears after the drop.

              Click image for larger version

Name:	umgbug.png
Views:	1
Size:	731.9 KB
ID:	1082214
              Last edited by thankstipscom; 07-21-2015, 07:20 PM.
              Snap-In Systems: <<< CLICK
              | Inventory (Battle Royale) |Smart Select Box | Ready Game Modes | Handy Macros | Gun Weapon System |Simple Mesh Outliner |

              Comment


                hey thankstipscom , thank you so much for the detailed review.
                I think its really honest and fair, reading it really made my day!

                There are a few work arounds for this widget collision issue,
                i think the issue is that your widget is higher in the ZOrder then JcInventory.
                JcInventory is designed to go at the very front of a view port, when JcUserInterface Widget is not showing is has no collision so it wont cause any problems.
                JcUserInterface widgets entire canvas (that fills the entire view port) has collision when the inventory is active so thats how JcInventory detects items OnDrop()

                I personally find widget collision to be confusing sometimes because its 2D and very layered.
                i like to imagine it like this; when an item is dropped or clicked, imagine a ray trace firing into a stack of paper, and one of those pieces of paper is JcUserInterface JcInventory.

                The easiest way to test this theory would be to expand the 'Add to view port' nodes in your Hud that spawn the widgets and change there Z orders accordingly. Also, make sure you turn collision off widgets that don't 100% need it.


                Edit: Another work around if you need the Widget over JcInventory (Not recommended) would be to add a OnDrop override to your new Widget, then have it cast the payload to a JcDragAndDropPayload and call the function that returns the payload to its origin.
                OR! You could have override OnDrop and then have it return false, thus your 'raytrace' through the paper will continue to the next widget it hits.

                There is a Twitch support video going to be done by Epic soon, i suggest anyone interested in making there own UMG widgets watches it! More here!
                Last edited by Staggerlee; 07-21-2015, 08:20 PM.
                JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

                Comment


                  Originally posted by Staggerlee View Post
                  hey thankstipscom , thank you so much for the detailed review.
                  I think its really honest and fair, reading it really made my day!

                  There are a few work arounds for this,
                  i think the issue is that your widget is higher in the ZOrder then JcInventory.
                  JcInventory is designed to go at the very front of a view port, when JcUserInterface Widget is not showing is has no collision so it wont cause any problems.
                  JcUserInterface widgets entire canvas (that fills the entire view port) has collision when the inventory is active so thats how JcInventory detects items OnDrop()

                  I personally find widget collision to be confusing sometimes because its 2D and very layered.
                  i like to imagine it like this; when an item is dropped or clicked, imagine a ray trace firing into a stack of paper, and one of those pieces of paper is JcUserInterface JcInventory.

                  The easiest way to test this theory would be to expand the 'Add to view port' nodes in your Hud that spawn the widgets and change there Z orders accordingly. Also, make sure you turn collision off widgets that don't 100% need it.
                  Thanks for the quick reply once again!
                  I do already understand the Zorders. I wish I didn't because I spent a bunch of time trying to make it so my hud items stop interferring wtih the inv system! but with no luck. I've tried making the inv system priority over everything. and all other widgets the furthest back, but the backpacks always appear under my minimap and I cant grab them easily etc... I had gave up on it initially and figured I'd come back to it but forgot, so it's not a zorder thing.

                  however: I had no idea there was "collision" on widgets at all. I guess because I never used mouse cursor in game before. It's not actually called collision in the widgets, its under Visibility, hit test invisible is the setting that makes it appear as art and not interact-able.

                  That resolved the issue. Learn something new every day... Thanks!
                  Last edited by thankstipscom; 07-21-2015, 08:18 PM.
                  Snap-In Systems: <<< CLICK
                  | Inventory (Battle Royale) |Smart Select Box | Ready Game Modes | Handy Macros | Gun Weapon System |Simple Mesh Outliner |

                  Comment


                    Survival C++ Game

                    New videos, as promised, the C++ survival series by Tom Looman found here. Its not quite finished as these videos take a long time to make.




                    Click here for the link!
                    Last edited by Staggerlee; 07-22-2015, 09:32 PM.
                    JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

                    Comment


                      Third person pawn example coming for UE 4.9 (or sooner?)



                      Just a example pawn i have included. It just shows off a different approach to handling picking up items. All the JcInventory commands are the same, but it uses different ways of ray tracing for items that are more appropriate for third person and maybe they can inspire your creative decisions in your own game or maybe it can be a good starting template!

                      also in the video is dynamic re-sizing, i realized i have never included a recording of that feature so here it is.
                      Last edited by Staggerlee; 07-24-2015, 06:14 AM.
                      JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

                      Comment


                        Originally posted by Staggerlee View Post
                        New videos, as promised, the C++ survival series by Tom Looman found here. Its not quite finished as these videos take a long time to make.
                        Hey, thanks. I was doing a similar implemetation of this. (Is a little different because the inventory code i have is a little different too), are you releasing an update soon?
                        I want to know what did you do with the linetraces. Are you using the survivalgame linestraces, the inventory Linetraces or a combiantion of both?
                        I ask this because i think you didn't mention this on your videos.

                        Thanks again =)
                        pd: Excuse my English.

                        Comment


                          Hey there, im using the survival game line trace. JcInventory's pawn does come with a simple line trace to get going, but theres really no reason to stick with it. Especially for a third person style game.
                          Because JcInventoryitem is a child of AUseableActor it will behave the same as the items already inside the world (the cupcake, the bomb, etc). This is why when we click 'E' on one of the Jcinventoryitems it also is removed from the game as the C++ code handles that.
                          All we needed to do was make a BlueprintImplementableEvent that would tell the item to add to the JcInventoryCore.

                          As for an update, probably not till theres a need for it. Aesthetic changes like my third person example are nice to have, but i wont encourage people to do a project upgrade just to get them. I think when 4.9 comes out i will make the needed changes to the system and then update it on the market for future users (and make videos of the bug fixes for existing).
                          Last edited by Staggerlee; 07-24-2015, 08:18 PM.
                          JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

                          Comment


                            Originally posted by Staggerlee View Post
                            (and make videos of the bug fixes for existing)
                            Great to hear! I really don't plan to "upgrade" again. Also good job with the new tutorial, though I just skipped through it within a minute :P

                            Comment


                              Hi,

                              Having some issues with using attributes at runtime, I'd love some examples of how this should be done.

                              Here's what I'm doing:

                              Write:


                              Read:


                              Only getting zeros from that print no matter what value gets piped in. So either this is wrong or the BP struct bug has broken something in JCcore that I missed. I'm on Engineversion 4.8.2.

                              Comment


                                Hey DYJ, you need to set the item data after you 'get item data'/ that get item data does not pass by reference so you need to get item data and make it a local variable, then set the attributes of that local itemdata then set the local itemdata to the items itemdata.

                                The system you look to be making sounds good!
                                JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

                                Comment

                                Working...
                                X