Time stop script
Key Required

Time stop script

[ Content Deleted ]Team8x8x8x8Team8x8x8x8 125K views 682 executesUpdated Jan 22, 2024
5.0/ 5(1 votes)
10100% Positive
Lua Script•302 lines (10491 chars)
-- [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)

Features & Information

V is to teleport f is to time stop on keyboard script

Community Comments (6)

len260719len260719Aug 10, 2025

Imma god of visual, thx you

TestededetedTestededetedJan 21, 2026

Pls fix It when i die all breaks and i wanted a mobile support

rating_yourscriptrating_yourscriptMar 17, 2026

10/10

vlad21041567vlad21041567Mar 25, 2026

THE WORLD

SerozzSerozzSep 26, 2026

its cool but its visual, add some qol, make the player go invis when they stop time

Replying to @Serozz
SerozzSerozzSep 26, 2026

it breaks after you die

More Scripts for [ Content Deleted ]