Download

Instance Static Mesh Component is not visible client side, only collision is there.

I am working with a replicated instanced static mesh component.
But am running in to some issues when a new instance is added server side.
Collision gets placed but there is no visible mesh client side.

Searching around came up with some tips e.g: Change Mobility, Making sure Material is set to be used with instanced Static mesh.
But no luck so far do anyone have any experience with this issue?

I’m pretty sure you’ll need to wrap ‘AddInstance’ call in replicated function (possibly ‘RemoveInstance’ as well if you use it).

My interpretation of InstancedStaticMesh is that original intention is to use it at Edit time, then save and cook everything including lighting.

Hey am using it runtime for a building system.
What i have concluded is that the instances do not replicate.
The resson i get collision is becuse the instance excist server side, and server handels collision.

I only found NetMulticast to do what i need making sure it visible on all connections.
For late connections i get some data from server and “duplicate the instances” when the client has finished adding instances, NetMulticast takes over again.

Im trying to figure something out that is similar to your problem hopefully you can help me. I have a building system that works when everyone is in the match at the same time. How did you get late connections to show the instanced meshes? Right now lets say i build a foundation and then someone joins it acts like the foundation is there but they can’t see it? Any help would be much appreciated!

RPC’s are called when event happens, not after. In your case, if people can connect after the event, it may be more suitable to replicate this information via variables – those will be replicated when actor becomes relevant to client (even if these clients connect later).

For instance, you may have some sort of BuildManager actor that is replicated from server to all clients (mark it Always Relevant), with replicated variable that stores TArray of structures with information needed to perform the build on the client. OnRep function that belongs to this actor can then iterate the variable and locally spawn whatever was already spawned.

If this variable is updated directly on the server, and also on the client when RPC executed, then OnRep will not fire off. (OnRep only fires if the variable’s value actually changed).

Good luck,

Thanks!! I got it working using replicated Actors but would much prefer using instanced meshes for performance issues. Your answer gave me a little more insight and im going to try and get the instanced meshes working tonight. Thanks!!!