I think I found a solution that fixed the problem for me. In a local script, I waited for the vehicle to load using ContentProvider:PreloadAsync({VehicleSeat})
. After it loads, I fire a RemoteEvent to the server where a server script will call VehicleSeat:Sit(Humanoid)
. Here is the code:
Local Script:
game.ContentProvider:PreloadAsync({seat})
task.wait()
seat:WaitForChild("IsLoaded"):FireServer()
Server Script:
seat.IsLoaded.OnServerEvent:Connect(function()
seat:Sit(humanoid)
end)
In my game, I put a RemoteEvent name IsLoaded inside the VehicleSeat. Sometimes it didn’t finish loading the RemoteEvent when I called it so I used WaitForChild
to fix that.