So today, I finally finished the functional parts of the Time Stop for the Jojo game, here it is!

SHOWCASE:

I really want to know how this can be improved, so go all out!

9 Likes

Pretty sweet! The model of The World looks good also. How did you do the color changes?

TweenService | Documentation - Roblox Creator Hub + ColorCorrectionEffect | Documentation - Roblox Creator Hub

It’s a very simple effect. Color changing.

1 Like

I’ve never seen anything like that.
That is extremely cool.

1 Like

Thank you! Do you happen to have any kind of criticism? I want this to be the best Time Stop possible.

You should add the effect when DIO stops time a couple waves extrude out of him and then come back once he has completed his time stop. Allow me to elaborate if you don’t understand. I have never been good at explaining things.

1 Like

I am going to follow you for future updates on your game because I like the work.

How did you go about stopping time did you anchor all the part or pause the players animations?

Pausing animations wasn’t the way to go, so I just anchored everything in the character.

I understand that it is poor etiquette to reply to old posts since it bumps them. But I also have created a time stop script and I am wondering how you made it so the person who is time stopped cannot see the time stopper moving within the time stop. I already created my own topic for this but nobody has given me a answer that has my desired results.

If you want it to be the best, then maybe add some spheres and have them with different colors, slowly gaining transparency? just a thought idk

It’s actually really simple and this problem stumped me for a while as well.
All you have to do is fire a remote event to any clients not allowed to see time stoppers (this way you can have a system where some players can see a time stopper’s movement) and anchor them. That simple. The code is something like this.

Server Code

-- Tell clients time has stopped.
local Players = game:GetService("Players")
local timeStopper: Model = nil -- get the time stopper somehow
for _, player in ipairs(Players:GetChildren()) do
	TimeStopChanged:FireClient(player, true, timeStopper)
end

Client Code (the meat of this effect)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TimeStopChanged = ReplicatedStorage.Remotes.TimeStopChanged

--[[
	You could also send in a player object and access the Character property.
	I prefer using a model because you can extend this to NPC characters as well,
	and a better (if needed, might be overkill) is passing an array of timeStopper models and
	anchoring all of them
--]]
TimeStopChanged.OnClientEvent:Connect(function(timeStopped: boolean, timeStopper: Model)
	-- if time has stopped let's anchor the timeStopper
	if timeStopped then
		-- [insert code for effects]
		for _, instance: Instance in ipairs(timeStopper:GetDescendants()) do
			if instance:IsA("BasePart") then
				instance.Anchored = true
			end
		end
	else
		-- if time is NOT stopped, let's unanchor the time stopper
		for _, instance: Instance in ipairs(timeStopper:GetDescendants()) do
			if instance:IsA("BasePart") then
				instance.Anchored = false
			end
		end
	end
end)