local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local char, root local recording = false local playing = false local frames = {} local playIndex = 1 local PLAYBACK_SPEED = 3 local function onChar(c) char = c root = c:WaitForChild("HumanoidRootPart") end if player.Character then onChar(player.Character) end player.CharacterAdded:Connect(onChar) -- UI local gui = Instance.new("ScreenGui") gui.Name = "TASMenu" gui.ResetOnSpawn = false gui.Parent = player.PlayerGui local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(220,160) frame.Position = UDim2.fromScale(0.05,0.4) frame.BackgroundColor3 = Color3.fromRGB(35,35,45) frame.Active = true frame.Draggable = true frame.Parent = gui Instance.new("UICorner", frame).CornerRadius = UDim.new(0,12) local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,30) title.Text = "TAS MENU" title.TextColor3 = Color3.new(1,1,1) title.BackgroundTransparency = 1 title.Parent = frame local status = Instance.new("TextLabel") status.Position = UDim2.fromOffset(0,30) status.Size = UDim2.new(1,0,0,25) status.Text = "Idle" status.TextColor3 = Color3.fromRGB(180,180,255) status.BackgroundTransparency = 1 status.Parent = frame local function makeButton(text, y) local b = Instance.new("TextButton") b.Size = UDim2.new(0.9,0,0,30) b.Position = UDim2.fromScale(0.05,y) b.Text = text b.BackgroundColor3 = Color3.fromRGB(55,55,75) b.TextColor3 = Color3.new(1,1,1) b.Parent = frame Instance.new("UICorner", b) return b end local recordBtn = makeButton("Record",0.4) local playBtn = makeButton("Play (Fast)",0.6) local clearBtn = makeButton("Clear",0.8) recordBtn.MouseButton1Click:Connect(function() recording = not recording playing = false if recording then frames = {} status.Text = "Recording" else status.Text = "Idle" end end) playBtn.MouseButton1Click:Connect(function() if #frames > 0 then recording = false playing = true playIndex = 1 status.Text = "Playing" end end) clearBtn.MouseButton1Click:Connect(function() frames = {} recording = false playing = false status.Text = "Cleared" end) RunService.RenderStepped:Connect(function() if not root then return end if recording then table.insert(frames, root.CFrame) end if playing then if frames[playIndex] then root.CFrame = frames[playIndex] playIndex += PLAYBACK_SPEED else playing = false status.Text = "Finished" end end end)