local plr = game.Players.LocalPlayer local RS = game:GetService("ReplicatedStorage") local zone = workspace.Garages.Garage local remote = RS:FindFirstChild("Garage") local function tp(cf) local hum = plr.Character:FindFirstChildOfClass("Humanoid") hum:ChangeState(0) task.wait(1) local n = 0 repeat task.wait() n += 1 until n >= 40 or not plr:GetAttribute("LastACPos") plr.Character.HumanoidRootPart.CFrame = cf task.wait() hum:ChangeState(2) end local car for _, c in ipairs(workspace.CivCars:GetChildren()) do local o = c:FindFirstChild("Owner") if o and o.Value == plr.Name then car = c end end print("car:", car and car.Name) if not car then return end if not car.PrimaryPart then car.PrimaryPart = car:FindFirstChildWhichIsA("BasePart") end local seat = car:FindFirstChild("DriveSeat") local hum = plr.Character:FindFirstChildOfClass("Humanoid") car:SetPrimaryPartCFrame(CFrame.new(zone.Position)) task.wait(0.4) print("car at:", tostring(car.PrimaryPart.Position), "| dist to zone:", math.floor((car.PrimaryPart.Position - zone.Position).Magnitude)) print("before seat -> driving:", tostring(hum.SeatPart == seat)) if hum.SeatPart ~= seat then if hum.SeatPart then hum.Sit = false task.wait(0.2) end tp(seat.CFrame * CFrame.new(0, 2.5, 0)) task.wait(0.2) seat:Sit(hum) task.wait(0.5) end print("after seat -> driving:", tostring(hum.SeatPart == seat), "| occupant:", tostring(seat.Occupant)) local res = remote:InvokeServer(Color3.fromRGB(205, 208, 215), "Body") print("paint invoke ->", tostring(res))