-- [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 = [Link] or [Link]:Wait()
local head = [Link]
local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")
local root = [Link]
local humanoid = [Link]
local playerhealth = [Link]
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 -- (Not used now but you can keep it)
stoppedtime = false
-- Time Stop Effect
local timestopeffect = [Link]("ColorCorrectionEffect")
[Link] = lighting
[Link] = 0
[Link] = 0
[Link] = true
-- Sphere Effect
local function createSphere()
local sphere = [Link]("Part")
[Link] = torso
[Link] = [Link]
[Link] = [Link](0, 0, 0)
[Link] = [Link]
[Link] = false
[Link] = true
[Link] = [Link](1, 1, 1)
[Link] = false
local weld = [Link]("Weld")
weld.Part0 = sphere
weld.Part1 = torso
weld.C0 = [Link]
weld.C1 = [Link]
[Link] = sphere
return sphere
end
local timestopsphere1 = createSphere()
local timestopsphere2 = createSphere()
local timestopsphere3 = createSphere()
-- Sounds
local function createSound(parent, id, vol)
local s = [Link]("Sound", parent)
[Link] = "rbxassetid://"..id
[Link] = vol
return s
end
local timestopvoiceline = createSound(head, "7514417921", 5)
local injuredtimestopvoiceline = createSound(head, "6043864223", 5)
local tssfx = createSound(head, "5679636294", 5)
local timeresumevoiceline = createSound(head, "4329802996", 5)
local injuredtimeresumevoiceline = createSound(head, "6043853981", 5)
local countervoiceline = createSound(head, "6675048510", 5)
local countersfx = createSound(head, "4572672240", 4.5)
local tsteleportsfx = createSound(torso, "3077287610", 4.5)
local clock = createSound(workspace, "4940109913", 4.5)
[Link] = true
----------------------------------------------------------------------------------------------------
-- Main Script --
function timestop()
if stoppedtime == true then return end
if [Link] < 50 then
injuredtimestopvoiceline:Play()
wait(1)
tssfx:Play()
elseif [Link] > 50 then
timestopvoiceline:Play()
wait(1.6)
end
settings().[Link] = [Link]
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("BasePart") then
if not [Link] == true then
if not v:IsDescendantOf(char) then
[Link] = true
[Link](frozenobjectstable, v)
end
end
end
end
[Link]([Link](function()
[Link]([Link](function()
[Link] = true
tween:Create([Link], [Link](1.5,
[Link]), {FieldOfView = 250}):Play();
[Link]([Link](function()
while stoppedtime == false do
tween:Create(timestopeffect, [Link](0.8,
[Link]), {Contrast = -2}):Play();
wait(0.3)
tween:Create(timestopeffect, [Link](0.5,
[Link]), {Saturation = -1}):Play();
wait(0.2)
tween:Create(timestopeffect, [Link](0.5,
[Link]), {Saturation = -2}):Play();
wait()
tween:Create(timestopeffect, [Link](0.8,
[Link]), {Contrast = -2.4}):Play();
wait(0.3)
tween:Create(timestopeffect, [Link](0.5,
[Link]), {Saturation = 1}):Play();
wait(0.2)
tween:Create(timestopeffect, [Link](0.5,
[Link]), {Saturation = -2}):Play();
end
end))
wait(1.7)
tween:Create([Link], [Link](1,
[Link]), {FieldOfView = 70}):Play();
tween:Create(timestopeffect, [Link](1, [Link]),
{Contrast = 0}):Play();
tween:Create(timestopeffect, [Link](1, [Link]),
{Saturation = -0.8}):Play();
end))
[Link]([Link](function()
for _ = 1, 65 do
wait()
local offset1 = [Link](-650, 650) / 700
local offset2 = [Link](-650, 650) / 700
local offset3 = [Link](-650, 650) / 700
tween:Create(humanoid, [Link](0.1), {CameraOffset =
[Link](offset1, offset2, offset3)}):Play();
end
tween:Create(humanoid, [Link](0.1), {CameraOffset = [Link](0,
0, 0)}):Play();
end))
[Link]([Link](function()
tween:Create(timestopsphere1, [Link](1, [Link],
[Link], 0), {Size = [Link](45, 45, 45)}):Play();
tween:Create(timestopsphere2, [Link](1.4, [Link],
[Link], 0), {Size = [Link](40, 40, 40)}):Play();
tween:Create(timestopsphere3, [Link](1.7, [Link],
[Link], 0), {Size = [Link](35, 35, 35)}):Play();
wait(1.7)
tween:Create(timestopsphere1, [Link](1, [Link],
[Link], 0), {Size = [Link](0, 0, 0)}):Play();
tween:Create(timestopsphere2, [Link](1, [Link],
[Link], 0), {Size = [Link](0, 0, 0)}):Play();
tween:Create(timestopsphere3, [Link](1, [Link],
[Link], 0), {Size = [Link](0, 0, 0)}):Play();
end))
[Link]([Link](function()
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("ParticleEmitter") then
tween:Create(v, [Link](3), {TimeScale = 0}):Play();
end
end
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("Fire") then
tween:Create(v, [Link](3), {TimeScale = 0}):Play();
end
end
end))
[Link]([Link](function()
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("Sound") then
if not v:IsDescendantOf(char) then
tween:Create(v, [Link](4), {PlaybackSpeed =
0}):Play();
end
end
end
end))
end))
stoppedtime = true
end
function timeresume()
if stoppedtime == false then return end
if [Link] < 50 then
injuredtimeresumevoiceline:Play()
wait(0.6)
elseif [Link] > 50 then
timeresumevoiceline:Play()
wait(0.9)
end
settings().[Link] = 0
for _, v in pairs(frozenobjectstable) do
if v:IsA("BasePart") then
[Link] = false
end
end
[Link]([Link](function()
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("ParticleEmitter") then
tween:Create(v, [Link](3), {TimeScale = 1}):Play();
end
end
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("Fire") then
tween:Create(v, [Link](3), {TimeScale = 1}):Play();
end
end
end))
[Link]([Link](function()
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("Sound") then
if not v:IsDescendantOf(char) then
tween:Create(v, [Link](2), {PlaybackSpeed = 1}):Play();
end
end
end
end))
tween:Create(timestopeffect, [Link](2, [Link]), {Saturation =
0}):Play();
stoppedtime = false
frozenobjectstable = {}
end
function tsteleport()
if stoppedtime == true then return end
tsteleportsfx:Play()
[Link]([Link](function()
tween:Create(timestopeffect, [Link](0.1), {TintColor = [Link](0, 0,
0)}):Play();
wait(0.2)
tween:Create(timestopeffect, [Link](0.1), {TintColor = [Link](1, 1,
1)}):Play();
end))
[Link] = [Link]([Link].p.X, [Link].p.Y, [Link].p.Z)
end
-- UI Setup for mobile --
local StarterGui = game:GetService("StarterGui")
local screenGui = [Link]("ScreenGui")
[Link] = "TimeStopGUI"
[Link] = player:WaitForChild("PlayerGui")
local timeStopButton = [Link]("TextButton")
[Link] = [Link](0, 80, 0, 80)
[Link] = [Link](0, 110, 1, -110) -- Moved right by 110 pixels from bottom left
timeStopButton.BackgroundColor3 = [Link](0, 0, 0)
[Link] = 0.4
[Link] = 2
timeStopButton.BorderColor3 = [Link](255, 255, 255)
[Link] = "Stop Time"
timeStopButton.TextColor3 = [Link](1, 1, 1)
[Link] = true
[Link] = true
[Link] = screenGui
local teleportButton = [Link]("TextButton")
[Link] = [Link](0, 80, 0, 80)
[Link] = [Link](0, 210, 1, -110) -- Moved right by 210 pixels from bottom left
teleportButton.BackgroundColor3 = [Link](0, 0, 0)
[Link] = 0.4
[Link] = 2
teleportButton.BorderColor3 = [Link](255, 255, 255)
[Link] = "Teleport"
teleportButton.TextColor3 = [Link](1, 1, 1)
[Link] = true
[Link] = true
[Link] = screenGui
timeStopButton.MouseButton1Click:Connect(function()
if stoppedtime == false then
timestop()
else
timeresume()
end
end)
teleportButton.MouseButton1Click:Connect(function()
if stoppedtime == false then
tsteleport()
end
end)
[Link]:Connect(function(key)
if key == "f" then
if stoppedtime == false then
timestop()
else
timeresume()
end
end
if key == "v" and stoppedtime == false then
tsteleport()
end
end)