Portal-Based Inventory System

Hi guys,
I’m looking for help designing a dynamic portal-based inventory system.
Specifically - The player could use a Portal Window to “Catch” an object moving through the environment, then close the portal - adding that asset, at its current velocity - to the player’s inventory. I.e. characters, bullets, vehicles, missiles - idea being that these portals could be opened later - in ambush, releasing a freight train at full speed into a standoff… just a more creative sort of magic.
At any rate, I don’t think I need a full studio to create an entire level and all the art assets but I’m in desperate need of much more than google inventory tutorial results. I’m happy hire someone more knowledgable than myself for the blueprint setup and I can do the tedious and/or artistic stuff. I just can’t seem to even find the right place to look. Any advice will be sincerely appreciated and ruthlessly shredded for useful keywords and concepts.
Please feel free to dm me if you’d be interested in helping with this.
Thank you, one and all

It’s a great idea :slight_smile:

The thing is, with an inventory, is it’s a bit like a save game. You start with nothing, and have to craft your own system to fit requirements. ( In fact, you will need a save game too, if you want the player to be able to reintroduce that freight train in the next session ).

One person might only need health and player location storing. So, a float and a vector - done.

You need a lot more, but it’s the same principle.

Each object will need to remember what it was doing when it entered the portal and be able to put that in a structure ( probably ). A generalized structure is probably best, it could hold an array of ints, floats, and other basic variable types. It’s up to the object in question to use that structure wisely when writing and reading back.

It’s probably a good idea to make a parent blueprint ‘portal aware object’ which knows how to read and write these structures to the save game / game instance. Then you can just inherit from it to make the various actors.

Or, you might want to use an actor component to implement the saving operations.

1 Like

thank you - this is great - thank you so much

1 Like