BP Child/Clone assets not executing HIT event

Hello Community,

I’m trying to create a BP asset that stops simulating physics when hitting a landscape.
I don’t really know the best way of doing this so I did the following (see screenshot).

The Landscape object is fine, the same is the Event Hit event, but this only happens on the original BP assets, and not on the child or cloned assets. Any idea of why this is happening or how I can make it work on # copies of the BP asset?

The first question that comes to mind is, are you enabling the blueprint’s variables to be edited by other instances of the blueprint? (The yellow “eye”-con)

Secondly, events can often cause child instances to refer to the original. I can’t really explain it that well-- I just understand why. Instead of using those nodes directly in the blueprint, try collapsing it to a function and making a reference to (Self) to make sure it’s using its own instance of the blueprint.

Thirdly, the code seems entirely redundant (just constructive criticism). If you use a [Select] node, you can just as easily take input from either of those two events and have the events go to the same [Branch] node. You can remove the other copy of the code. If there is something that you intend to change that makes the two sets of nodes differ, then you can setup another [Branch] using the results of the earlier [Select].

Thanks for the answer Zakku. Yeah, you are totally right about the third point. It’s redundant - just me being lazy while trying to get the input from two sources. None of your suggestions worked. I’ll have to do some more research on this.

My goal was to create placeable spikes on a Landscape, but somehow I’m messing it up.

If it’s working on the original, then your events are only referencing the first instance. Events work this way, because it’s something of a static function. Instead of putting the collision detection in the blueprints for the spikes, you can use an external blueprint so that it references the instance of the spikes object. For now, since the collision detection isn’t using a reference to “self”, it will only ever call the event for the original instance.

Makes sense, Thanks for the help @Zakku!