I am hitting a tree which is a instanced static mesh component, it is supposed to disappear because I am setting scale to 0, and another actor is supposed to appear in the same spot, looking exactly like that tree and immediately fall down (just rotation) because that’s all it does for now. And this is exactly what happens on the server. On a client all the same things happen, except the instanced tree doesn’t get scaled to 0, or to any other value, or moved, or rotated (I tried various things), except the collision. New tree actor appears and animates like it is supposed to on both server and client …
… well, I ran some more tests and it appears that I was wrong, looks like my instanced components do not replicate, I guess collision works because server manages that anyway. Tried it with 4.7, same things happen. I was too quick to jump to conclusions and now I am completely out of ideas. Maybe instanced static meshes just don’t replicate? Or at least any changes to them, because initial positions of trees are fine on the client.
EDIT: I got it to work by moving just the part that does tree appearance change to a new event which replicates as multicast while my main event that does tracing and determines if we hit a tree still server only. New event is called from within the old event. Now the problem is that I don’t completely understand what does it mean and if it is safe.