How can I ensure that a function owner only receives executions from specific targets?

If the same function is executed from multiple targets, how do I select which target it was executed from and process the function accordingly?
For example, if a function is executed from targets A and B, I want to receive execution from target A only.

The important thing is that the permission to execute a function belongs to the function owner, not the function invoker. Is something like this possible?

yes you can always check if Invoker==Self but a better way is to make the function private and use another function for external objects to call it if allowed.

if you can expand on exactly what youre trying to do i may be able to help more

1 Like

I’ll explain in detail.

Multiple actor components are executing functions on actors and displaying their content in widgets. However, only one can be displayed at a time, and the player controls which component’s function results are displayed.

To be event-driven, functions must always be executed from a component. The function is constantly being referenced and updated by components, so without filtering, all component changes will be mixed together.

This is the current situation.

couldnt you just have an bIsSelectedByPlayer bool and only update if true?

1 Like

I noticed that I can get variables directly from the Select of Object with a specified class type.
By separating the execution of the function from the acquisition of the variable, and switching the object with Select, I was able to obtain only the state of a specific object.

I didn’t want to do any additional operations on the object side so this solved my case. Unfortunately, this only works if they are all the same class, so if they are different you’ll need another solution.