Flashback v2
Key RequiredUniversal

Flashback v2

Universal Scriptlinhmcfakelinhmcfake 4.7K views 1K executesUpdated Aug 19, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•223 lines (5095 chars)
local ReGui = loadstring(game:HttpGet('https://raw.githubusercontent.com/depthso/Dear-ReGui/refs/heads/main/ReGui.lua'))()
local PrefabsId = "rbxassetid://" .. ReGui.PrefabsId

local InsertService = game:GetService("InsertService")
local RunService = game:GetService("RunService")
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local GameInfo = MarketplaceService:GetProductInfo(game.PlaceId)
local LocalPlayer = Players.LocalPlayer

ReGui:Init({
    Prefabs = InsertService:LoadLocalAsset(PrefabsId)
})

local flashbacklength = 60
local flashbackspeed = 0.5

local name = game:GetService("RbxAnalyticsService"):GetSessionId()
local frames, LP, RS = {}, LocalPlayer, RunService

pcall(RS.UnbindFromRenderStep, RS, name)

local function getchar()
   return LP.Character or LP.CharacterAdded:Wait()
end

function gethrp(c)
return c:FindFirstChild("HumanoidRootPart") or c.RootPart or c.PrimaryPart or c:FindFirstChild("Torso") or c:FindFirstChild("UpperTorso") or c:FindFirstChildWhichIsA("BasePart")
end

local flashback = {lastinput=false, canrevert=true, active=false}

function flashback:Advance(char, hrp, hum, allowinput)
   
   if #frames>flashbacklength*60 then
       table.remove(frames, 1)
   end
   
   if allowinput and not self.canrevert then
       self.canrevert = true
   end
   
   if self.lastinput then
       hum.PlatformStand = false
       self.lastinput = false
   end
   
   table.insert(frames, {
       hrp.CFrame,
       hrp.Velocity,
       hum:GetState(),
       hum.PlatformStand,
       char:FindFirstChildOfClass("Tool")
   })
end

function flashback:Revert(char, hrp, hum)
   local num = #frames
   if num==0 or not self.canrevert then
       self.canrevert = false
       self:Advance(char, hrp, hum)
       return
   end
   for i=1, flashbackspeed do
       table.remove(frames, num)
       num = num-1
   end
   self.lastinput = true
   local lastframe = frames[num]
   table.remove(frames, num)
   hrp.CFrame = lastframe[1]
   hrp.Velocity = -lastframe[2]
   hum:ChangeState(lastframe[3])
   hum.PlatformStand = lastframe[4]
   local currenttool = char:FindFirstChildOfClass("Tool")
   if lastframe[5] then
       if not currenttool then
           hum:EquipTool(lastframe[5])
       end
   else
       hum:UnequipTools()
   end
end

local function step()
   local char = getchar()
   local hrp = gethrp(char)
   local hum = char:FindFirstChildWhichIsA("Humanoid")
   if flashback.active then
       flashback:Revert(char, hrp, hum)
   else
       flashback:Advance(char, hrp, hum, true)
   end
end

local Window = ReGui:TabsWindow({
    Title = "linhmc_new's Reverse Script | Flashback v2",
    Size = UDim2.new(0, 400, 0, 350),
    Position = UDim2.new(0.5, 0, 0, 70),
    CloseCallback = function()
        pcall(RS.UnbindFromRenderStep, RS, name)
    end
}):Center()

local MainTab = Window:CreateTab({
    Name = "Main",
    Visible = true
})

MainTab:Label({
    Text = "Flashback System"
})
MainTab:Label({
    Text = "idk, just like reverse"
})
MainTab:Separator()

local FlashbackHeader = MainTab:TreeNode({
    Title = "Flashback Controls",
    Collapsed = false
})

local ButtonsRow = FlashbackHeader:Row()

ButtonsRow:Button({
    Text = "Toggle Flashback",
    Callback = function()
        flashback.active = not flashback.active
    end,
})

ButtonsRow:Button({
    Text = "Reset Flashback",
    Callback = function()
        frames = {}
        flashback.active = false
    end,
})

FlashbackHeader:Label({
    Text = "Original script by dark eccentric"
})

local SettingsTab = Window:CreateTab({
    Name = "Settings"
})

local SettingsHeader = SettingsTab:TreeNode({
    Title = "Flashback",
    Collapsed = false
})

SettingsHeader:SliderInt({
    Label = "Flashback Length (seconds)",
    Value = flashbacklength,
    Minimum = 10,
    Maximum = 300,
    Callback = function(self, Value)
        flashbacklength = Value
    end,
})

SettingsHeader:SliderFloat({
    Label = "Flashback Speed",
    Value = flashbackspeed,
    Minimum = 0,
    Maximum = 5,
    Callback = function(self, Value)
        flashbackspeed = Value
    end,
})

SettingsHeader:Separator()

local InfoHeader = SettingsTab:TreeNode({
    Title = "Information",
    Collapsed = false
})

InfoHeader:Label({
    Text = "Flashback Length: Controls memory usage"
})
InfoHeader:Label({
    Text = "Flashback Speed: Higher = faster rewind"
})
InfoHeader:Label({
    Text = "Current frames stored: 0"
})
InfoHeader:Label({
    Text = "Max frames: " .. tostring(flashbacklength * 60)
})

local InfoTab = Window:CreateTab({
    Name = "Info"
})

InfoTab:Label({
    Text = "Script by linhmc_new"
})
InfoTab:Label({
    Text = "UI powered by ReGui"
})
InfoTab:Label({
    Text = "REVERSE!!! Time travel script"
})

InfoTab:Separator()

InfoTab:Label({
    Text = "How to use:"
})
InfoTab:Label({
    Text = "1. Click 'Toggle Flashback' to start/stop"
})
InfoTab:Label({
    Text = "2. Adjust settings as needed"
})
InfoTab:Label({
    Text = "3. Use 'Reset' to clear all data"
})

RS:BindToRenderStep(name, 1, step)

Features & Information

credit to dark eccentric

Community Comments (1)

helloimgregory89helloimgregory89Aug 20, 2025

what script is this?

More Scripts for Universal Scripts