When processing ghost entities on the client side, it may happen that components of that ghost which are replicated from the server are not synchronized yet. Then the components are having their default values.
I know it is possible to check whether a component has its defaults or not. But it is more desirable to simply process the entity first when it has been fully synchronized including all components. But how to determine whether an entity is fully synchronized the first time on the client side?
When a ghost is synchronised, all the component that are required to be synchronised are part of the snapshot and received by the client. There is not such a thing a a “partial ghost data snapshot”.
If all ghosts does not fit into a snapshot, you may receive only some ghosts into it for a certain tick. This is what we call a “partial snapshot”. But for the ghost inside the snapshot, all their replicated component are serialised,
There are many rules for component serialisation, and are controlled by the GhostComponentAttribute. Unless you altered these for example to prevent the component being received by the Owner, or by specifying to not replicate the component the data should be there.
Good to know. Indeed I had some issues with Prefabs which were not excluded on some queries.