Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- [DIO's Time Stop Script] --
- -- Based on the main ability of DIO's Stand, The World, from Part 3 of JoJo's Bizarre Adventure.
- -- MOST of everything in this script is written by Tsuagon, except for the screenshake part, that was taken from a tutorial. Credit to the people to made said tutorials and scripts.
- ----------------------------------------------------------------------------------------------------
- -- Player Stuff --
- local player = game:GetService("Players").LocalPlayer
- local char = player.Character
- local head = char.Head
- local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")
- local root = char.HumanoidRootPart
- local humanoid = char.Humanoid
- local playerhealth = humanoid.Health
- local mouse = player:GetMouse()
- ----------------------------------------------------------------------------------------------------
- -- General Stuff --
- local tween = game:GetService("TweenService")
- local lighting = game:GetService("Lighting")
- local input = game:GetService("UserInputService")
- local frozenobjectstable = {}
- seconds = 5 -- You can change the length in which time is stopped for by modifying this number.
- stoppedtime = false
- -- Time Stop Effect
- local timestopeffect = Instance.new("ColorCorrectionEffect")
- timestopeffect.Parent = lighting
- timestopeffect.Saturation = 0
- timestopeffect.Contrast = 0
- timestopeffect.Enabled = true
- -- Sphere Effect
- local timestopsphere1 = Instance.new("Part")
- timestopsphere1.Parent = torso
- timestopsphere1.Material = Enum.Material.ForceField
- timestopsphere1.Size = Vector3.new(0, 0, 0)
- timestopsphere1.Shape = Enum.PartType.Ball
- timestopsphere1.CanCollide = false
- timestopsphere1.Massless = true
- timestopsphere1.Color = Color3.new(1, 1, 1)
- timestopsphere1.CastShadow = false
- local sphere1weld = Instance.new("Weld")
- sphere1weld.Part0 = timestopsphere1
- sphere1weld.Part1 = torso
- sphere1weld.C0 = torso.CFrame
- sphere1weld.C1 = torso.CFrame
- sphere1weld.Parent = timestopsphere1
- local timestopsphere2 = Instance.new("Part")
- timestopsphere2.Parent = torso
- timestopsphere2.Material = Enum.Material.ForceField
- timestopsphere2.Size = Vector3.new(0, 0, 0)
- timestopsphere2.Shape = Enum.PartType.Ball
- timestopsphere2.CanCollide = false
- timestopsphere2.Massless = true
- timestopsphere2.Color = Color3.new(1, 1, 1)
- timestopsphere2.CastShadow = false
- local sphere2weld = Instance.new("Weld")
- sphere2weld.Part0 = timestopsphere2
- sphere2weld.Part1 = torso
- sphere2weld.C0 = torso.CFrame
- sphere2weld.C1 = torso.CFrame
- sphere2weld.Parent = timestopsphere2
- local timestopsphere3 = Instance.new("Part")
- timestopsphere3.Parent = torso
- timestopsphere3.Material = Enum.Material.ForceField
- timestopsphere3.Size = Vector3.new(0, 0, 0)
- timestopsphere3.Shape = Enum.PartType.Ball
- timestopsphere3.CanCollide = false
- timestopsphere3.Massless = true
- timestopsphere3.Color = Color3.new(1, 1, 1)
- timestopsphere3.CastShadow = false
- local sphere3weld = Instance.new("Weld")
- sphere3weld.Part0 = timestopsphere3
- sphere3weld.Part1 = torso
- sphere3weld.C0 = torso.CFrame
- sphere3weld.C1 = torso.CFrame
- sphere3weld.Parent = timestopsphere3
- -- Sounds
- local timestopvoiceline = Instance.new("Sound", head)
- timestopvoiceline.SoundId = "rbxassetid://7514417921"
- timestopvoiceline.Volume = 5
- local injuredtimestopvoiceline = Instance.new("Sound", head)
- injuredtimestopvoiceline.SoundId = "rbxassetid://6043864223"
- injuredtimestopvoiceline.Volume = 5
- local tssfx = Instance.new("Sound", head)
- tssfx.SoundId = "rbxassetid://5679636294"
- tssfx.Volume = 5
- local timeresumevoiceline = Instance.new("Sound", head)
- timeresumevoiceline.SoundId = "rbxassetid://4329802996"
- timeresumevoiceline.Volume = 5
- local injuredtimeresumevoiceline = Instance.new("Sound", head)
- injuredtimeresumevoiceline.SoundId = "rbxassetid://6043853981"
- injuredtimeresumevoiceline.Volume = 5
- local countervoiceline = Instance.new("Sound", head)
- countervoiceline.SoundId = "rbxassetid://6675048510"
- countervoiceline.Volume = 5
- local countersfx = Instance.new("Sound", head)
- countersfx.SoundId = "rbxassetid://4572672240"
- countersfx.Volume = 4.5
- local tsteleportsfx = Instance.new("Sound", torso)
- tsteleportsfx.SoundId = "rbxassetid://3077287610"
- tsteleportsfx.Volume = 4.5
- local clock = Instance.new("Sound", workspace)
- clock.SoundId = "rbxassetid://4940109913"
- clock.Volume = 4.5
- clock.Looped = true
- ----------------------------------------------------------------------------------------------------
- -- Main Script --
- function timestop()
- if stoppedtime == true then return end
- if humanoid.Health < 50 then
- injuredtimestopvoiceline:Play()
- wait(1)
- tssfx:Play()
- elseif humanoid.Health > 50 then
- timestopvoiceline:Play()
- wait(1.6)
- end
- settings().Network.IncomingReplicationLag = math.huge
- for _, v in pairs(workspace:GetDescendants()) do
- if v:IsA("BasePart") then
- if not v.Anchored == true then
- if not v:IsDescendantOf(char) then
- v.Anchored = true
- table.insert(frozenobjectstable, v)
- end
- end
- end
- end
- coroutine.resume(coroutine.create(function()
- coroutine.resume(coroutine.create(function()
- timestopeffect.Enabled = true
- tween:Create(workspace.CurrentCamera, TweenInfo.new(1.5, Enum.EasingStyle.Exponential), {FieldOfView = 250}):Play();
- coroutine.resume(coroutine.create(function()
- while stoppedtime == false do
- tween:Create(timestopeffect, TweenInfo.new(0.8, Enum.EasingStyle.Quart), {Contrast = -2}):Play();
- wait(0.3)
- tween:Create(timestopeffect, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {Saturation = -1}):Play();
- wait(0.2)
- tween:Create(timestopeffect, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {Saturation = -2}):Play();
- wait()
- tween:Create(timestopeffect, TweenInfo.new(0.8, Enum.EasingStyle.Quart), {Contrast = -2.4}):Play();
- wait(0.3)
- tween:Create(timestopeffect, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {Saturation = 1}):Play();
- wait(0.2)
- tween:Create(timestopeffect, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {Saturation = -2}):Play();
- end
- end))
- wait(1.7)
- tween:Create(workspace.CurrentCamera, TweenInfo.new(1, Enum.EasingStyle.Quart), {FieldOfView = 70}):Play();
- tween:Create(timestopeffect, TweenInfo.new(1, Enum.EasingStyle.Quart), {Contrast = 0}):Play();
- tween:Create(timestopeffect, TweenInfo.new(1, Enum.EasingStyle.Quart), {Saturation = -0.8}):Play();
- end))
- coroutine.resume(coroutine.create(function()
- for _ = 1, 65 do
- wait()
- local offset1 = math.random(-650, 650) / 700
- local offset2 = math.random(-650, 650) / 700
- local offset3 = math.random(-650, 650) / 700
- tween:Create(humanoid, TweenInfo.new(0.1), {CameraOffset = Vector3.new(offset1, offset2, offset3)}):Play();
- end
- tween:Create(humanoid, TweenInfo.new(0.1), {CameraOffset = Vector3.new(0, 0, 0)}):Play();
- end))
- coroutine.resume(coroutine.create(function()
- tween:Create(timestopsphere1, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, 0), {Size = Vector3.new(45, 45, 45)}):Play();
- tween:Create(timestopsphere2, TweenInfo.new(1.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, 0), {Size = Vector3.new(40, 40, 40)}):Play();
- tween:Create(timestopsphere3, TweenInfo.new(1.7, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, 0), {Size = Vector3.new(35, 35, 35)}):Play();
- wait(1.7)
- tween:Create(timestopsphere1, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, 0), {Size = Vector3.new(0, 0, 0)}):Play();
- tween:Create(timestopsphere2, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, 0), {Size = Vector3.new(0, 0, 0)}):Play();
- tween:Create(timestopsphere3, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, 0), {Size = Vector3.new(0, 0, 0)}):Play();
- end))
- coroutine.resume(coroutine.create(function()
- for _, v in pairs(workspace:GetDescendants()) do
- if v:IsA("ParticleEmitter") then
- tween:Create(v, TweenInfo.new(3), {TimeScale = 0}):Play();
- end
- end
- for _, v in pairs(workspace:GetDescendants()) do
- if v:IsA("Fire") then
- tween:Create(v, TweenInfo.new(3), {TimeScale = 0}):Play();
- end
- end
- end))
- coroutine.resume(coroutine.create(function()
- for _, v in pairs(workspace:GetDescendants()) do
- if v:IsA("Sound") then
- if not v:IsDescendantOf(char) then
- tween:Create(v, TweenInfo.new(4), {PlaybackSpeed = 0}):Play();
- end
- end
- end
- end))
- end))
- stoppedtime = true
- wait(seconds)
- timeresume()
- end
- function timeresume()
- if stoppedtime == false then return end
- if humanoid.Health < 50 then
- injuredtimeresumevoiceline:Play()
- wait(0.6)
- elseif humanoid.Health > 50 then
- timeresumevoiceline:Play()
- wait(0.9)
- end
- settings().Network.IncomingReplicationLag = 0
- for _, v in pairs(frozenobjectstable) do
- if v:IsA("BasePart") then
- v.Anchored = false
- end
- end
- coroutine.resume(coroutine.create(function()
- for _, v in pairs(workspace:GetDescendants()) do
- if v:IsA("ParticleEmitter") then
- tween:Create(v, TweenInfo.new(3), {TimeScale = 1}):Play();
- end
- end
- for _, v in pairs(workspace:GetDescendants()) do
- if v:IsA("Fire") then
- tween:Create(v, TweenInfo.new(3), {TimeScale = 1}):Play();
- end
- end
- end))
- coroutine.resume(coroutine.create(function()
- for _, v in pairs(workspace:GetDescendants()) do
- if v:IsA("Sound") then
- if not v:IsDescendantOf(char) then
- tween:Create(v, TweenInfo.new(2), {PlaybackSpeed = 1}):Play();
- end
- end
- end
- end))
- tween:Create(timestopeffect, TweenInfo.new(2, Enum.EasingStyle.Quart), {Saturation = 0}):Play();
- stoppedtime = false
- end
- function tsteleport()
- if stoppedtime == true then return end
- tsteleportsfx:Play()
- coroutine.resume(coroutine.create(function()
- tween:Create(timestopeffect, TweenInfo.new(0.1), {TintColor = Color3.new(0, 0, 0)}):Play();
- wait(0.2)
- tween:Create(timestopeffect, TweenInfo.new(0.1), {TintColor = Color3.new(1, 1, 1)}):Play();
- end))
- root.CFrame = CFrame.new(mouse.Hit.p.X, mouse.Hit.p.Y, mouse.Hit.p.Z)
- end
- --[[function counter()
- countervoiceline:Play()
- wait(0.6)
- humanoid.HealthChanged:Connect(function(health)
- if playerhealth > 100 then
- countersfx:Play()
- root.CFrame = root.CFrame + root.CFrame.lookVector * -20
- elseif health == playerhealth then return end
- end)
- end]]--
- mouse.KeyDown:Connect(function(key)
- if key == "f" and stoppedtime == false then
- timestop()
- elseif key == "f" and stoppedtime == true then
- timeresume()
- end
- if key == "v" and stoppedtime == false then
- tsteleport()
- end
- end)
Advertisement
Comments
-
- Usefull
-
- Can someone make it time stop for 30 seconds for me, like shorten it so all I have to do is copy please thank you
Add Comment
Please, Sign In to add comment
Advertisement