local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "TAS Control By Luseryf", Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default). LoadingTitle = "CAN YOU PLEASE NOT BREAK THIS SCRIPT?? ", LoadingSubtitle = "by luseryf.txt", ShowText = "me the script", -- for mobile users to unhide Rayfield, change if you'd like Theme = "Default", -- Check https://docs.sirius.menu/rayfield/configuration/themes ToggleUIKeybind = "K", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode) DisableRayfieldPrompts = false, DisableBuildWarnings = false, -- Prevents Rayfield from emitting warnings when the script has a version mismatch with the interface. ConfigurationSaving = { Enabled = true, FolderName = nil, -- Create a custom folder for your hub/game FileName = "Big Hub" }, Discord = { Enabled = false, -- Prompt the user to join your Discord server if their executor supports it Invite = "noinvitelink", -- The Discord invite code, do not include Discord.gg/. E.g. Discord.gg/ ABCD would be ABCD RememberJoins = true -- Set this to false to make them join the Discord every time they load it up }, KeySystem = false, -- Set this to true to use our key system KeySettings = { Title = "Untitled", Subtitle = "Key System", Note = "No method of obtaining the key is provided", -- Use this to tell the user how to get a key FileName = "Key", -- It is recommended to use something unique, as other scripts using Rayfield may overwrite your key file SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from Key = {"Hello"} -- List of keys that the system will accept, can be RAW file links (pastebin, github, etc.) or simple strings ("hello", "key22") } }) local Tab = Window:CreateTab("TAS Control", 4483362458) local Section = Tab:CreateSection("TAS Section") local player = game.Players.LocalPlayer local char local humanoid local root local recording = {} local recordingNow = false local playing = false -- update character on spawn/reset local function UpdateCharacter() char = player.Character or player.CharacterAdded:Wait() humanoid = char:WaitForChild("Humanoid") root = char:WaitForChild("HumanoidRootPart") end UpdateCharacter() player.CharacterAdded:Connect(function() task.wait(0.5) UpdateCharacter() end) -- RECORD FUNCTION function StartRecording() playing = false recording = {} recordingNow = true print("Recording started") end -- STOP RECORDING function StopRecording() recordingNow = false print("Recording stopped") end -- PLAY RECORDING function PlayRecording() if playing then return end if #recording == 0 then warn("No recording") return end playing = true for i,v in ipairs(recording) do if not playing then break end root.CFrame = v.cf if v.jump then humanoid.Jump = true end task.wait(0.03) end playing = false end -- SLOW MOTION function SlowMotion(enable) if enable then humanoid.WalkSpeed = 4 else humanoid.WalkSpeed = 16 end end -- UI BUTTONS Tab:CreateButton({ Name = "Start Recording", Callback = function() StartRecording() end, }) Tab:CreateButton({ Name = "Stop Recording", Callback = function() StopRecording() end, }) Tab:CreateButton({ Name = "Play Recording", Callback = function() PlayRecording() end, }) Tab:CreateToggle({ Name = "Slow Motion", CurrentValue = false, Flag = "slowtoggle", Callback = function(Value) SlowMotion(Value) end, }) -- RECORD LOOP task.spawn(function() while true do if recordingNow and root and humanoid then table.insert(recording,{ cf = root.CFrame, jump = humanoid.Jump }) end task.wait(0.03) end end)