Actor not returing visible after drop action.

Doing the Unreal UI with UMG tutorial series and have managed to get my pickup template to work for the most part but am having a couple of problems. When I use the drop action the item is removed from my inventory and seemingly even spawned into the world near my player as evidence by popup text. The newly spawned actor is invisible though, which is not the intended behavior. Sometimes my action text will stop popping up as well. Like it will show up the first time i enter the trigger zone, and disappear once I leave it, but will not reappear on re-entry.

Please and thanks for the help if anyone can point me in the right direction.
video of the behavior

This would be difficult to answer without seeing the blueprints that may be causing the problem. Did you use something like [Hide Actor in World], or did you use [Destroy Actor]? It appears to me that the default of the item is to ignore physics. If this was not the intended function, then at the very least it doesn’t seem to be re-enabling once it is spawned.

This may seem like a common question but it happens a lot: How are you controlling the boxes? As in, are they controlling themselves within their own blueprint? Or, are you using the world/player controller? A lot can go wrong when trying to use the object’s blueprint to control itself because events often end up getting called with a reference to the original instance.

Also, are those boxes starting out spawned (placed in the world via the editor), or are they being initially spawned using blueprints?

I used destroy actor to pick up the object in the first place. I’m following the InventoryUIwithUMG tutorial from the official unreal youtube and just finished step 7. Things almost work but not quite as they do in the TUT video. You can download the example project associated with it to see most of the blueprints I’m working with. I can post any of my own that you might need to see though.

I am controlling the boxes with their own blueprint currently. It seems like you’re suggesting another method would be more efficient/effective?

The boxes I’m using currently are spawned using the editor, but I plan to implement other items that spawn on other circumstances. I’m quite new to most of this so please excuse my inexperience.

Thank you for the prompt response, I appreciate the help.

The above post seems to fit your dilemma, as far as the disappearing text goes. I could be wrong.

https://docs.unrealengine.com/latest/INT/Videos/PLZlv_N0_O1gZalvQWYs8sc7RP_-8eSr3i/

Is this the tutorial to which you are referring? I haven’t the time to go through the videos, atm. If we don’t find a solution in the meantime, feel free to upload your project (or just the blueprints, if the project is too big) and I can check it out when it downloads.

At the risk of sounding like a smartass, here are some search results, in case my answers aren’t helpful.

Alright, looking at the screenshot, I deduce this is the blueprint for the inventory. From your video, it would appear that the slots are being properly removed. That aside, what are the key differences between your first editor-spawned item and the one at the very end of the video? Can you show both properties, side by side? More specifically, will either of them work just the same as the other if that box is the first one you picked up when first starting the simulation?

I would say there’s an overall mismanagement of the memory slots and the way the actors are spawned. Could you show me the screenshots of the blueprints for the three nodes shown?

Yes, if you’re controlling the boxes using their own blueprints, you could be having an issue with them using the wrong instance’s events. I would suggest that all item management be done in a separate component, whether that’s the player controller managing the dropping of the item (risky in multi-player), or having a component that is referenced by a more global blueprint to detect if a player has come into contact with an item, spawning the item, etc. Personally, I have dynamic worlds so I have the game mode control the subcomponents. But, let’s just worry about functionality, for now.

That disappearing text solution seems pretty spot on for what I’m encountering. The tutorial you linked is the one I am following. my project folder size is 3 gigs so I don’t know if uploading it is feasible, but I might be able to upload some blueprints. I’ll post some screen shots tomorrow, but I’m about done for the day. Thank you again for your prompt and thorough replies.

The first link you posted 100% cured the disappearing text issue. I ended up copying the visibility and collision settings from the pickup action in reverse and just putting that into my chain and things seem to be working. Thank you again for the help. I consider this is resolved.

link text
I guess I’m still having some issues with not being able to re-pick up items that are dropped too closely together. Probably to do with the items being controlled in their own blueprints, as you said. Could you possibly link to anything that might suggest a way to migrate what I have to another more global source?

You can accomplish this a number of ways. I personally use my [GameMode] blueprint to control the gameplay because all of my worlds are procedurally generated and it saves the trouble of attaching multiple scene components to the level map. However, your game seems to utilize static maps so it’s perfectly fine to use the level blueprint for this.

In the level blueprint editor, you can assign events, such as [BeginActorOverlap] and have it check to see if anyone has bumped into one of the items, to pick it up. To get a more specific overlap event for the boxes, you can bind their overlap event to a function that will reference their instance.

Similarly, you can assign an [Event Dispatcher] to the boxes so they will always use the gameplay blueprint to deal with the events, instead of them controlling themselves.

There’s also the option of using [GetOverlappingActors] with a reference to each of the boxes currently spawned, and use the class filter so this node only triggers when a player touches the box. Similarly, you can use [BoxOverlapsActors], but it’s not as efficient.

In any case, I would recommend creating a [Struct] and using that to pass the box’s data to and from your inventory, as described here:

I would not make it a habit to simply use, [HideActorInGame]. Instead, as described on that page, I suggest destroying and creating clean instances. But that’s up to you.

[Edit Ran out of characters left to type)]: One more thing: you can track all the instances of the boxes in a level blueprint by adding their instance ID to an array. To get the ones already spawned, just use [GetAllActorsOfClass]. To spawn, use [SpawnActorFromClass] and store the resulting ID in the array. Alternatively, you could use the new instance ID to bind its [Overlapping] events to a function in the level blueprint.

sorry I didn’t mark this as answered earlier. thank you so much for the help.