How can I make a player freezing effect?

how do I make a player freezing effect that wraps around player body parts and hats?

heres an example:
image

How do I make something like that?

I’m trying to make a magic item that shoots an ice beam to freeze the player but I have no idea how to do the freezing effect for it.

4 Likes

Hi, the first thing you need to do is create a tool: https://developer.roblox.com/en-us/articles/intro-to-player-tools. Then, with the following video, he shows you how to make a laser: https://www.youtube.com/watch?v=K_XA3AtlMxg

Finally modify the script so that when it touches the humanoid it is frozen.

I will try to make an example of freeze effect.

You could also try and add a highlight to the player when they get hit by it?
FreezeEffect

Like what @Michaelmailman1 mentioned, you can use Highlights to achieve this effect.

for _,v: BasePart in ipairs(char:GetDescendants()) do
	if v:IsA("BasePart") then
		local highlight = Instance.new("Highlight") do
			highlight.Parent = v
			highlight.Adornee = v
			highlight.FillColor = Color3.new(0.431373, 1, 0)
			highlight.OutlineTransparency = 1
		end
	end
end

This is what i have so far:

Thanks to @Downrest for example of freeze.

-- Script in "ServerScriptService"

local Debris = game:GetService("Debris")

function Freeze(player)
	local character = player.Character
	character.PrimaryPart.Anchored = true
	for _,v: BasePart in ipairs(character:GetDescendants()) do
		if v:IsA("BasePart") then
			local highlight = Instance.new("Highlight") do
				highlight.Parent = v
				highlight.Adornee = v
				highlight.FillColor = Color3.new(0, 1, 1)
				highlight.OutlineTransparency = 1
				Debris:AddItem(highlight, 10)
			end
		end
	end
	
	wait(10)
	
	character.PrimaryPart.Anchored = false
end

wait(20)

local players = game.Players:GetPlayers()
local player = game.Players:GetPlayers()[#players]
Freeze(player)

You can use just 1 highlight for each character. No need to loop through the entire character.

1 Like

Wait, I didn’t even realize that. I thought it couldn’t wrap around models. In that case, that makes everything way more easier.

Perfect!!. Now I opened to pause the animations. Now open to pause the animations. But so far I couldn’t do it. For example I am walking and it looks like walking

-- Script in "ServerScriptService"

local Debris = game:GetService("Debris")

function Freeze(player)
	local character = player.Character
	
	local highlight = Instance.new("Highlight")
	highlight.Parent = character
	highlight.Adornee = character
	highlight.FillColor = Color3.new(0, 1, 1)
	highlight.OutlineTransparency = 1
	Debris:AddItem(highlight, 10)

	for i, p in pairs(character.Humanoid.Animator:GetPlayingAnimationTracks()) do
		p:AdjustSpeed(0)
		print(p)
	end
	
	character.PrimaryPart.Anchored = true

	wait(10)
	
	character.PrimaryPart.Anchored = false
	for i, p in pairs(character.Humanoid.Animator:GetPlayingAnimationTracks()) do
		p:Stop()
	end
end

wait(20)

local players = game.Players:GetPlayers()
local player = game.Players:GetPlayers()[#players]
Freeze(player)

I already have the tool made. I probably should’ve mentioned that in the post.

Perfect, when the laser touches a person, use the freeze function to freeze it.

You can add a particle effect to it:

-- Script in "ServerScriptService"

local Debris = game:GetService("Debris")
local assetId = 257489726
local InsertService = game:GetService("InsertService")
local model = InsertService:LoadAsset(assetId)
model.Parent = workspace

function Freeze(player)
	local character = player.Character
	
	local highlight = Instance.new("Highlight")
	highlight.Parent = character
	highlight.Adornee = character
	highlight.FillColor = Color3.new(0, 1, 1)
	highlight.OutlineTransparency = 1
	Debris:AddItem(highlight, 10)
	
	for _,v: BasePart in ipairs(character:GetDescendants()) do
		if v:IsA("BasePart") then
			local pe = Instance.new("ParticleEmitter")
			pe.Size = NumberSequence.new(0.5)
			pe.Lifetime = NumberRange.new(1)
			pe.Speed = NumberRange.new(0.1)
			pe.Texture = 'rbxasset://textures/particles/sparkles_main.dds'
			pe.Parent = v
			Debris:AddItem(pe, 10)
		end
	end	

	for i, p in pairs(character.Humanoid.Animator:GetPlayingAnimationTracks()) do
		p:AdjustSpeed(0)
		print(p)
	end
	
	character.PrimaryPart.Anchored = true

	wait(10)
	
	character.PrimaryPart.Anchored = false
	for i, p in pairs(character.Humanoid.Animator:GetPlayingAnimationTracks()) do
		p:Stop()
	end
end

wait(20)

local players = game.Players:GetPlayers()
local player = game.Players:GetPlayers()[#players]
Freeze(player)

I have an issue with the projectile hitting way too many times as well as the characters limbs not colliding with the ground.

heres the code:
image

(idk how to do the lua text thing)

The “wait” and “freeze” sentences go after the “end” of “for”.

for i, p in pairs(character.Humanoid.Animator:GetPlayingAnimationTracks()) do
    ...
end
wait(10)
freeze.Humanoid.PlatformStand = false

For add code:

imagen

Ok. Here I leave you a tool that I created. I also attach an example.

EfectoCongelarPersona.rbxl (121,3 KB)

what I’m trying to go for is a ragdoll kinda thing where when they get frozen it activates platform stand and doesnt anchor them. the animations freeze and the body parts have cancollide true but i dont know how to do make them have cancollide true.

Do you have any example? Some video for example…