Make Player Unable To See Other Player's Movement During Time Stop

I have finished the basic part of my time-stop script and I want to make it so players who get time-stopped will not be able to see the time-stopper moving. I have tried anchoring the time-stopper on every player/client that has been time-stopped. The issue is that when trying to un-anchor the time-stopper, the time-stopper’s player model will be frozen where the client had anchored them.

3 Likes

Maybe you could clone their model and set them invisible.

1 Like

I can’t clone a player model. When I do, it returns nil.

Edit: When trying to clone a player model, you have to do this first.

Character.Archivable = true

I can clone it now.

1 Like

This does not give the results I want. It does work but if the time-stopper has jumped or is walking and time stops then the model will be created with its arms at its side rather than looking like it was frozen mid animation.

2 Likes

If you want to “Clone” the character, you can use Players:CreateHumanoidModelFromUserId(id) to get the character model of the target character, which would act as a clone. The actual player’s character could just be parented to nil or a non-workspace storage. Once the time-stop ends, you can reparent the player’s character and delete the clone.

BadPart_1 is my alt account. Whenever he gets time stopped he can still see me moving. I want to have it so I am also paused on his screen. After the time stop has ended, I want to appear in my new location. When BadPart_1 is time stopped while he is walking, he is time stopped mid animation. I want to be paused mid animation as well on his screen. However, when cloning my character, the clone does not inherent the state my animation is in.

The results I get from anchoring the time-stopper are perfect, but there’s a issue as you can see in the video.


I do not appear where I am after the time-stop on the other player’s screen. How can I fix this?

I replied a solution to you in another post. Link here.

This is a repost for future reference.

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)

What is odd is I have already tried/done this method, but at that time I had issues. Now that you have replied and I have revisited this it seems like It works exactly how I wanted it to work. Thanks for the help! Also, what does the second instance in
for _, instance: Instance in ipairs(timeStopper:GetDescendants()) do mean?

The GetDescendants is there to cover for cases where GetChildren isn’t enough to get every base part of the Time Stopper. Think of cases like parenting a Stand to a player and anchoring those parts as well so you can’t see the Stand of the time stopper move as well.