Quick answer: Construct 3 Photon Multiplayer events firing before initialization complete? Default event subscription happens at object create; Photon init is async - await connection state.
Player joins; instantly tries to send RPC; fails because client hadn't connected to room yet.
Await connected state
Check Photon.PlayerCount > 0 before sending. Or subscribe to OnJoinedRoom.
Or use a state machine
States: Disconnected, Connecting, InRoom, Playing. Each state defines allowed actions.
Default-disable RPC
RPC button disabled until connected. UX gates the bug.
“Async initialization completes asynchronously. Code after init runs without it.”
For multiplayer, the connection state machine is the foundation. Build it; everything else is correct.