I noticed when setting a replicated actor to be HiddenInGame=True on the server it will get deleted on clients. I need my actors to further exist on the client, as I do some stuff that is actually not necessary to be replicated → saving some bandwidth. Is there a suitable way of keeping the hidden actor on the client alive?
We solved it by overriding AActor::SetActorHiddenInGame in C++. Do not propagate the call to parent if the parent is AActor. Instead hide the RootComponent and propagate it to the child components. This keeps the actor alive on the clients, but comes with new issues. If you had some components hidden for what ever reason, you will overwrite that by unhiding and need some other logic to handle this problem.