Yeah you’re right. With this approach you would need something like a “IsInSyncProcess” Bool. Then when the server cuts down a tree and “IsInSyncProcess” is true do a small delay before cutting it down (so disable any action that would lead the server to go out of sync while syncing with the client).
Maybe you could create a replicated variable that holds all the transforms and only change this variable when a client joins with a “RepNotify” and doing the sync there. So it would only be updated when a client joins. I think that would be cleaner than using RPCs cause you don’t have to worry about how it gets updated. But I think you would still have a delay so you may still need a “IsInSyncProcess” Bool.
I think syncing it during gameplay would either be very complicated (cause the array permutes) or be a huge drain on your Network Bandwith when you sync it every time a tree gets cut down.
off topic: Yup 