I know that currently Godot doesn't have a feature to synchronize nodes between server and client. In Unreal Engine, I can check "Replicated" and an object will be synced. Can anyone figure out a stategy to solve this ? I have a few solutions but they are not reliable. Solution 1: Store game data in json. Check every interval. Spawn children nodes if json data is not matched. Solution 2: Server sends list of children node names. Spawn nodes if data is not matched.

I feel like these are like a hack. I think the best solution is to modify RPC call. This networking feature is really really critical.

Maybe you can use rset? Then whenever you change a variable, the changes (should) happen on all the connected clients. Here is the page from the documentation, which shows what you can do using RPC and rset

I have not really used the networking side of Godot that much, so there may (and probably is) a better way to do this :smile:

Thanks for responding, Rset is just like Rpc call. I'm considering using json to store game data and replicate it. This will also help players who reconnect game. This is a feasible approach right now.

a month later

If this is a problem for you too you might want to note it somewhere on Godot's GitHub so this can be added.

How did your JSON approach work? I gave that a shot and got weird, possibly path related errors on rpc calls afterwards.

Edit: Found an issue for it

https://github.com/godotengine/godot/issues/16793

4 years later