How to make a player freeze into ice cube/block

I have tried doing this and it only worked with a union which I don’t like I want the player to freeze into a normal block

1 Like

Make the player PlatformStand then put the icecube Part at the CFrame of the players HumanoidRootPart

but won’t the player just glitch out? cause its cancollide

Couldn’t you just set the HumanoidRootPart’s Anchored property to true instead? Why enable the PlatformStand State?

1 Like

Then the player will still be able to rotate with shift lock, + it won’t put the player in the PlatformStand position.

Edit: I just tried it and you can rotate with PlatformStand enabled too rip

I just tested it and the player goes through the floor

So do both, Anchored and PlatformStand

can i just do it without the platformstand?

if you want to

The only reason I recommended PlatformStand is because it puts it in this position image

Instead of
image

Is there a way to add ice that is attached to the part like on a house irl

Just do something along the lines of this

local Duration = 5
local Target = --Character's HRP here
local IcePart = game.ReplicatedStorage.IcePart:Clone()

IcePart.Parent = workspace
IcePart.CFrame = Target.CFrame
Target.Anchored = true
wait(Duration)
Target.Anchored = false
IcePart:Destroy()

This is probably the most blandest code I’ve written

You could use Welds for that, attaching the Part0 & Part1 properties I believe

if i use welds it positions the part inside the otherpart

Maybe something like this?

local Part = script.Parent

Part.Touched:Connect(function(hit)
    if game:GetService("Players"):GetPlayerFromCharacter(hit.Parent) then
local Ice = Instance.new("Part")
local Attachment = Instance.new("WeldConstraint")
Ice.Position = hit.Parent.HumanoidRootPart.Position
Ice.BrickColor = "Color Of Ice"
Attachment.Part0 = Ice
Attachment.Part1 = hit.Parent.HumanoidRootPart
Ice.Parent = workspace
Attachment.Parent = Ice
    end
end)
1 Like

weld constraints are better, also is there a way to pause all animations for the player to make it more realistic?

You can do something like this to stop the animations in the character

if PlayerCharacter:FindFirstDescendants("Animation") then
   PlayerCharacter:FindFirstDescendants("Animation"):Stop()
end

and how would i resume just :Play()

1 Like

Because if they are in air, their animations will play, which is unwanted behavior,

FindFirstDescendants is not a thing. If you want to find a descendant, use FindFirstChild and put true to the second (recursive) property of the function. If you want all descendants, use GetDescendants.