I made spinner that if its touched, then it would teleport the player back to where they started (like an obby). But when I was testing it when friends, it would lag. Here's the script:
local teleportpart = script.Parent --the part while true do --the loop script.Parent.CFrame = script.Parent.CFrame * CFrame.fromEulerAnglesXYZ(0,0.102,0) teleportpart.Touched:Connect(function(hit) --function when player touches part if hit.Parent:WaitForChild("HumanoidRootPart") then game.Players[tostring(hit.Parent.Name)].Character:SetPrimaryPartCFrame(CFrame.new(228.5,24.5,880)) --where it teleports the player end end) wait() end
Any help would be appreciated!
You can try tweening the CFrame to greater increments.
local teleportpart = script.Parent --the part local ts = game:GetService("TweenService") local timetaken = .1 -- Change this to control speed while wait(timetaken) do local goal = {} goal.CFrame = script.Parent.CFrame * CFrame.fromEulerAnglesXYZ(0,1.02,0) -- Increment is ten times larger; you can change this to any denomination you like. local ti = TweenInfo.new(timetaken, Enum.EasingStyle.Linear) local tween = ts:Create(script.Parent, ti, goal) tween:Play() teleportpart.Touched:Connect(function(hit) if hit.Parent:WaitForChild("HumanoidRootPart") then game.Players[tostring(hit.Parent.Name)].Character:SetPrimaryPartCFrame(CFrame.new(228.5,24.5,880)) --where it teleports the player end end) end