Advertisement
dinsfire24

Rewind (doesn't work)

Jul 9th, 2019
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --- [[ Simple Time Rewind ]] ---
  2. -- by fo43123, edited by dinsfire34
  3. -- original: https://pastebin.com/J4SZ8VC7
  4.  
  5. local mePlayer = game.Players.LocalPlayer
  6. local meChar = game.workspace.LocalPlayer
  7. local mouse = mePlayer:GetMouse()
  8. local char = meChar
  9. local hum = char:FindFirstChild('Humanoid')
  10. local hd = char:FindFirstChild('Head')
  11. local ts = char:FindFirstChild('Torso') or char:FindFirstChild('UpperTorso')
  12. local ra = char:FindFirstChild('Right Arm') or char:FindFirstChild('RightUpperArm')
  13. local la = char:FindFirstChild('Left Arm') or char:FindFirstChild('LeftUpperArm')
  14. local rl = char:FindFirstChild('Right Leg') or char:FindFirstChild('RightUpperLeg')
  15. local ll = char:FindFirstChild('Left Leg') or char:FindFirstChild('LeftUpperLeg')
  16. local root = char:FindFirstChild('HumanoidRootPart')
  17. local rj = root:FindFirstChild('RootJoint')
  18. local rs = ts:FindFirstChild('Right Shoulder')
  19. local ls = ts:FindFirstChild('Left Shoulder')
  20. local rh = ts:FindFirstChild('Right Hip')
  21. local lh = ts:FindFirstChild('Left Hip')
  22. local nk = ts:FindFirstChild('Neck')
  23. local anim = char:FindFirstChild('Animate')
  24. local base = workspace:FindFirstChild('Baseplate') or workspace:FindFirstChild('Base')
  25. local cantimerewind = true
  26. local cooldown = false
  27. local selfrewind = true
  28. local cc = workspace.CurrentCamera
  29. local cos = math.cos
  30. local sin = math.sin
  31. local rad = math.rad
  32. local rand = math.random
  33. local cfn = CFrame.new
  34. local cfa = CFrame.Angles
  35. local v3 = Vector3.new
  36. local str = string
  37. local past = {}
  38. local lastpast = {}
  39. local sine = 0
  40. local rewind = Instance.new('Sound', hd)
  41. local onrewind = Instance.new('Sound', workspace.CurrentCamera)
  42. onrewind.Looped = true
  43. onrewind.Volume = 10
  44. onrewind.SoundId = 'rbxassetid://2061143306'
  45. rewind.SoundId = 'rbxassetid://864569342'
  46. rewind.Name = 'trewind'
  47. rewind.Volume = 1
  48. rewind.PlaybackSpeed = 1.25
  49. hum.WalkSpeed = 23
  50. effects = Instance.new('Folder', char)
  51. effects.Name = 'Effects'
  52.  
  53. ArtificialHB = Instance.new('BindableEvent', script)
  54. ArtificialHB.Name = 'Heartbeat'
  55. script:WaitForChild('Heartbeat')
  56.  
  57. frame = 1 / 60
  58. tf = 0
  59. allowframeloss = false
  60. tossremainder = false
  61. lastframe = tick()
  62. script.Heartbeat:Fire()
  63.  
  64. game:GetService('RunService').Heartbeat:connect(function(s, p)
  65.     tf = tf + s
  66.     if tf >= frame then
  67.         if allowframeloss then
  68.             script.Heartbeat:Fire()
  69.             lastframe = tick()
  70.         else
  71.             for i = 1, math.floor(tf / frame) do
  72.                 script.Heartbeat:Fire()
  73.             end
  74.             lastframe = tick()
  75.         end
  76.         if tossremainder then
  77.             tf = 0
  78.         else
  79.             tf = tf - frame * math.floor(tf / frame)
  80.         end
  81.     end
  82. end)
  83.  
  84. function swait(t)
  85.     if t == 0 or t == nil then
  86.         script.Heartbeat.Event:Wait()
  87.     else
  88.         for i = 0, t do
  89.             script.Heartbeat.Event:Wait()
  90.         end
  91.     end
  92. end
  93.  
  94. function sound(id, parent, vol, pitch, timepos)
  95.     local s = Instance.new('Sound')
  96.     s.Parent = parent
  97.     s.SoundId = id
  98.     s.Volume = vol
  99.     s.PlaybackSpeed = pitch
  100.     s.TimePosition = timepos
  101.     s:Play()
  102.     game.Debris:AddItem(s, s.PlaybackSpeed + 5)
  103. end
  104.  
  105. function camshake(duration, intensity)
  106.     coroutine.wrap(function()
  107.         for i = 0, duration*60 do
  108.             hum.CameraOffset = v3(rand(-(intensity*10),(intensity*10))/10, rand(-(intensity*10),(intensity*10))/10, rand(-(intensity*10), (intensity*10))/10)
  109.             swait()
  110.         end
  111.         hum.CameraOffset = v3(0, 0, 0)
  112.     end)()
  113. end
  114.  
  115. function readyrewind()
  116.     cantimerewind = false
  117.     cooldown = true
  118.     onrewind:Play()
  119.     for i,v in pairs(workspace:GetDescendants()) do
  120.         if v:IsA('BasePart') then
  121.             local lastpos = v.CFrame
  122.             table.insert(past, {part = v, change = lastpos})
  123.         end
  124.         if v.Parent then
  125.             local lastparent2 = v.Parent
  126.             table.insert(lastpast, {part2 = v, change4 = lastparent2})
  127.         end
  128.         if v:IsA('Camera') then
  129.             local lastcam = v.CFrame
  130.             table.insert(past, {cam = v, change3 = lastcam})
  131.         end
  132.         if v:IsA('Sound') then
  133.             if v ~= rewind then
  134.                 local lastsongpos = v.TimePosition
  135.                 table.insert(past, {sound = v, pchange = lastsongpos})
  136.             end
  137.         end
  138.         if v:IsA('Humanoid') then
  139.             local lasthp = v.Health
  140.             local always = lasthp
  141.             table.insert(past, {health = v, hchange = lasthp})
  142.         end
  143.     end
  144.     newpast = workspace.DescendantAdded:Connect(function(v)
  145.         if v:IsA('BasePart') then
  146.             local lastpos = v.CFrame
  147.             local lastparent = v.Parent
  148.             table.insert(past, {part = v, change = lastpos, change4 = lastparent})
  149.         end
  150.         if v.Parent then
  151.             local lastparent2 = v.Parent
  152.             table.insert(lastpast, {part2 = v, change4 = lastparent2})
  153.         end
  154.         if v:IsA('Camera') then
  155.             local lastcampos = v.CFrame
  156.             table.insert(past, {cam = v, change3 = lastcampos})
  157.         end
  158.         if v:IsA('Sound') then
  159.             if v ~= rewind then
  160.                 local lastsongpos = v.TimePosition
  161.                 table.insert(past, {sound = v, pchange = lastsongpos})
  162.             end
  163.         end
  164.         if v:IsA('Humanoid') then
  165.             local lasthp = v.Health
  166.             local always = lasthp
  167.             table.insert(past, {health = v, hchange = lasthp})
  168.         end
  169.     end)
  170. end
  171.  
  172. function timerewind()
  173.     if cooldown then
  174.     rewind:Play()
  175.     sine = 0
  176.     onrewind:Stop()
  177.     coroutine.wrap(function()
  178.     local cce = Instance.new('ColorCorrectionEffect', game.Lighting)
  179.     local blur = Instance.new('BlurEffect', game.Lighting)
  180.     local effect2 = Instance.new('Part', effects)
  181.     local effect3 = Instance.new('Part', effects)
  182.     effect3.Shape = 'Ball'
  183.     effect3.Material = 'ForceField'
  184.     effect3.Anchored = true
  185.     effect3.CanCollide = false
  186.     effect3.Name = 'eff3'
  187.     effect3.BrickColor = BrickColor.new('Really red')
  188.     effect3.Size = v3(30, 30, 30)
  189.     effect3.Transparency = 0
  190.     effect2.CastShadow = false
  191.     effect2.Shape = 'Ball'
  192.     effect2.BrickColor = BrickColor.new('Bright red')
  193.     effect2.Material = 'ForceField'
  194.     effect2.Name = 'eff2'
  195.     effect2.Anchored = true
  196.     effect2.CanCollide = false
  197.     effect2.Size = v3(50, 50, 50)
  198.     effect2.Transparency = 0
  199.     cantimerewind = true
  200.     for i,v in pairs(past) do
  201.         pcall(function()
  202.             v.part.CFrame = v.change
  203.         end)
  204.         pcall(function()
  205.             v.cam.CFrame = v.change3
  206.         end)
  207.         pcall(function()
  208.             v.sound.TimePosition = v.pchange
  209.         end)
  210.         pcall(function()
  211.             v.health.Health = v.hchange
  212.         end)
  213.     end
  214.     for i,v in pairs(lastpast) do
  215.         pcall(function()
  216.             v.part2.Parent = v.change4
  217.         end)
  218.     end
  219.     pcall(function()
  220.         newpast:Disconnect()
  221.     end)
  222.     coroutine.wrap(function()
  223.         for i = 1, 1000 do
  224.             effect2.CFrame = ts.CFrame
  225.             effect3.CFrame = ts.CFrame
  226.             blur.Size = v3(blur.Size, 0, 0):lerp(v3(0, 0, 0), .010).X
  227.             cce.TintColor = cce.TintColor:lerp(Color3.fromRGB(255, 0, 0), 0.050)
  228.             effect2.Transparency = effect2.Transparency + 0.020
  229.             effect3.Transparency = effect3.Transparency + 0.020
  230.             effect2.Size = effect2.Size:lerp(v3(0, 0, 0), 0.050)
  231.             effect3.Size = effect3.Size:lerp(v3(0, 0, 0), 0.030)
  232.             if effect2.Transparency >= 1 then
  233.                 effect2:Destroy()
  234.             end
  235.             if effect3.Transparency >= 1 then
  236.                 effect3:Destroy()
  237.             end
  238.             swait()
  239.         end
  240.     end)()
  241.     wait(1)
  242.     blur:Destroy()
  243.     cce:Destroy()
  244.     end)()
  245.     wait(1.5) -- cooldown
  246.     past = {}
  247.     cooldown = false
  248.     end
  249. end
  250.  
  251. mouse.KeyDown:connect(function(key)
  252.     if str.lower(key) == 'r' and cantimerewind and cooldown == false then
  253.         readyrewind()
  254.     elseif str.lower(key) == 'r' and cantimerewind == false and cooldown then
  255.         timerewind()
  256.     end
  257. end)
  258.  
  259. hum.HealthChanged:connect(function()
  260.     if selfrewind then
  261.         cooldown = true
  262.         cantimerewind = false
  263.         timerewind()
  264.     end
  265. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement