How are custom MultiplayerAPIs supposed to work with MultiplayerSpawner?

Godot Version

v4.2.1.stable.mono.official [b09f793f5]


Working out of GitHub - Luminoth/Godot-Multiplayer-Demo I have a setup where I want to have, in a single project, the ability to run a dedicated server or have a game client itself act as a host (while itself also being a game client). To facilitate this, I have a ServerManager and a ClientManager that both create their own MultiplayerApi (which I believe is correct according to RPC checksum fails when custom MultiplayerAPI is set on SceneTree via set_multiplayer · Issue #80604 · godotengine/godot · GitHub)

The problem I’ve run into with this is that either my Level’s MultiplayerSpawner ends up not under one of these paths, in which case the spawner doesn’t do anything because its MultiplayerApi is “offline” or I put it under one of the managers and it still doesn’t work because it’s synchronizing to the wrong paths (eg - clients have it under /root/ClientManager and servers have it under /root/ServerManager). Is there a way that I’m supposed to organize this so that things can actually work with this sort of design?

Yes, but you will have to change your managers to the same name, even though they are different scripts. If you want the editor to show the right name you can set the name to “network” or something in the ready func.

I don’t think that works when the server and client are in the same app - that requires them to be separate Node paths because they need to have their own MultiplayerPeers. Am I not understanding that requirement correctly?