diff --git a/include/game/game_handler.hpp b/include/game/game_handler.hpp index 25b6b8de..17efaaa7 100644 --- a/include/game/game_handler.hpp +++ b/include/game/game_handler.hpp @@ -825,6 +825,11 @@ public: glm::vec3 getComposedWorldPosition(); // Compose transport transform * local offset TransportManager* getTransportManager() { return transportManager_.get(); } void setPlayerOnTransport(uint64_t transportGuid, const glm::vec3& localOffset) { + // Validate transport is registered before attaching player + // (defer if transport not yet registered to prevent desyncs) + if (transportGuid != 0 && !isTransportGuid(transportGuid)) { + return; // Transport not yet registered; skip attachment + } playerTransportGuid_ = transportGuid; playerTransportOffset_ = localOffset; playerTransportStickyGuid_ = transportGuid;