Godot Version
4.5.1
Question
Hi. I am tinkering with some fairly simple multiplayer stuff. A lobby players can join. The host can start the game when everyone is ready, and the host can select the scene which gets loaded for all clients. This works fine. But I am having an issue when anyone joins mid-game. I get the following errors:
I am using a MultiplayerSpawner, and it seems to be, if the MultiplayerSpawner has already spawned something, then the MultiplayerSpawner will be broken for any players who join after the fact. So, effectively this means the game is broken for anyone trying to join an already-running game.
I’ve tried a few things (time delays, moving the MultiplayerSpawner to the level root, etc), but without success and I don’t really know what else to try. Interestingly I have another project without the lobby system which loads the level scene before initiating the connection process and this doesnt have the same issue.
The logical process of a client connecting to an in-progress game is this:
- The client joins via IP+port via a game menu.
- A handshake occurs and the server tells the client what scene to load.
- The client loads the requested scene and tells the server when it has finished loading (using the scenes _ready() method as the hook to determine when loading has finished).
- The server spawns the player object via the MultiplayerSpawner (I’m using the custom spawn function functionality).
- The clients custom spawn function should be called for their player object that the server just created, but is not.
Any help and / or tips would be greatly appreciated.


