
Keyless

-- [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 = 10 -- 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)
Imma god of visual, thx you
Pls fix It when i die all breaks and i wanted a mobile support
10/10
THE WORLD
its cool but its visual, add some qol, make the player go invis when they stop time
it breaks after you die