How to make an object undestructible?

As a general rule of thumb you always want an actor to take care of itself. Outside classes should not tell other objects what to do, similar to how your mother doesn’t dictate how you do the laundry and wash the dishes - she only cares that it gets done.

The best approach here is to replace that Destroy call with an interface method call. Create a blueprint interface called IClickable and give it a function OnClick. Attach this blueprint interface to your actors.
Controller Code

Destructible Object

103152-capture2.png