Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
LocalPlayer = Players.LocalPlayer
maxHistoryTime =
recordInterval =
rewindSpeed =
positionHistory = {}
isRecording =
isRewinding =
screenGui = .()
screenGui.Name =
screenGui.Parent = LocalPlayer:()
screenGui.ResetOnSpawn =
mainFrame = .()
mainFrame.Size = .(, , , )
mainFrame.Position = .(, , , -)
mainFrame.BackgroundColor3 = .(, , )
mainFrame.BorderSizePixel =
mainFrame.Active =
mainFrame.Draggable =
mainFrame.Parent = screenGui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = mainFrame
shadow = .()
shadow.Color = .(, , )
shadow.Thickness =
shadow.Transparency =
shadow.Parent = mainFrame
flashbackButton = .()
flashbackButton.Size = .(, -, , )
flashbackButton.Position = .(, , , )
flashbackButton.BackgroundColor3 = .(, , )
flashbackButton.BorderSizePixel =
flashbackButton.Text =
flashbackButton.TextColor3 = .(, , )
flashbackButton.TextSize =
flashbackButton.Font = .Font.GothamBold
flashbackButton.Parent = mainFrame
buttonCorner = .()
buttonCorner.CornerRadius = .(, )
buttonCorner.Parent = flashbackButton
buttonGradient = .()
buttonGradient.Color = ColorSequence.{
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
}
buttonGradient.Rotation =
buttonGradient.Parent = flashbackButton
()
isRecording LocalPlayer.Character
humanoidRootPart = LocalPlayer.Character:()
humanoidRootPart
.(positionHistory, {
= humanoidRootPart.CFrame,
Time = ()
})
currentTime = ()
#positionHistory > (currentTime - positionHistory[].Time) > maxHistoryTime
.(positionHistory, )
()
isRewinding #positionHistory ==
LocalPlayer.Character LocalPlayer.Character:()
isRewinding =
isRecording =
flashbackButton.Text =
flashbackButton.BackgroundColor3 = .(, , )
humanoidRootPart = LocalPlayer.Character.HumanoidRootPart
humanoid = LocalPlayer.Character:()
humanoid
humanoid.WalkSpeed =
humanoid.JumpPower =
humanoid.AutoRotate =
humanoid.PlatformStand =
humanoidRootPart
humanoidRootPart.Anchored =
totalFrames = #positionHistory
rewindDelay = recordInterval / rewindSpeed
( .. totalFrames .. )
i = totalFrames, , -
isRewinding LocalPlayer.Character
record = positionHistory[i]
humanoidRootPart humanoidRootPart.Parent
humanoidRootPart.CFrame = record.CFrame
.(rewindDelay)
()
humanoidRootPart
humanoidRootPart.Anchored =
humanoid
humanoid.PlatformStand =
humanoid.WalkSpeed =
humanoid.JumpPower =
humanoid.AutoRotate =
positionHistory = {}
isRewinding =
.()
isRecording =
flashbackButton.Text =
flashbackButton.BackgroundColor3 = .(, , )
.(()
()
.(recordInterval)
)
flashbackButton.MouseButton1Click:(()
isRewinding
()
)
UserInputService.InputBegan:((input, gameProcessed)
gameProcessed
input.KeyCode == .KeyCode.R
isRewinding
()
)
flashbackButton.MouseEnter:(()
isRewinding
flashbackButton.BackgroundColor3 = .(, , )
)
flashbackButton.MouseLeave:(()
isRewinding
flashbackButton.BackgroundColor3 = .(, , )
)
()
()
( .. maxHistoryTime .. )
()
( .. rewindSpeed .. )
Universal