local TweenService = game:GetService("TweenService") local LocalPlayer = game.Players.LocalPlayer local function Tween(Object, Destination, TimeOveride) local Distance = (Object.Position - Destination).Magnitude local Time = Distance / LocalPlayer.Character.Humanoid.WalkSpeed if TimeOveride ~= nil then Time = TimeOveride end local Tw = TweenService:Create(Object, TweenInfo.new(Time, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut,0,false,0), {CFrame = CFrame.new(Destination)}) Tw:Play() getgenv().finished = false local finish = Tw.Completed:Connect(function() getgenv().finished = true Tw:Destroy() end) repeat wait() Object.Velocity = Vector3.zero until getgenv().finished == true finish:Disconnect() Object.Velocity = Vector3.new(0, 50, 0) task.wait(2.5) end getsenv(game:GetService("Players").LocalPlayer.PlayerScripts:WaitForChild("LocalScript")).kick = function() return; -- replaces kick function with a function that just returns end local virtualUser = game:GetService("VirtualUser") LocalPlayer.Idled:Connect(function() virtualUser:CaptureController() virtualUser:ClickButton2(Vector2.new()) end) while wait(2) do local Tower = workspace:WaitForChild("tower") local Sections = Tower.sections print("Started") local RootPart = LocalPlayer.Character.HumanoidRootPart for i,v in pairs(LocalPlayer.Character:GetChildren()) do if v:IsA("BasePart") then v.CanTouch = false end end for i, Section in pairs(Sections:GetChildren()) do if Section:FindFirstChild("start") then Tween(RootPart, Section.start.Position + Vector3.new(0, 3.1, 0)) end if Section:FindFirstChild("stop") then --Tween(RootPart, Section.stop.Position) end if Section.Name == "finish" then for i,v in pairs(LocalPlayer.Character:GetChildren()) do if v:IsA("BasePart") then v.CanTouch = true end end end end local old = RootPart.Position Tween(RootPart, Tower.sections.finish.FinishGlow.Position - Vector3.new(0, 5, 0)) Tween(RootPart, old) print("Finished") Tower.sections.finish.FinishGlow.Destroying:Wait() end