This is the smoothest public resource for a freeze debuff I’ve seen. Your contribution to the community is much appreciated! Good luck to all developers who use this resource for their games, and good luck to you Thunder for your future projects.
Thank you all for the kind feedbacks and especially the extremely cool demo of using this module! I really like them and I hope this module can help you guys as well!
To clear up some confusions (Apologize for that), I just added some extra info about the Freeze Module
Examples (There are 3 examples that come along with the module, I’ll add more soon and make the script easier to customize)
I cannot figure out how to scale/position the SpecialMeshes and MeshParts properly so there will be some parts that aren’t completely covered in the ice layer
Also it’ll just be an ice block if the Target has CharacterMesh (Old R6 stuff)
Any help would be really nice if you know how to fix that
to do that you should check out the humanoidDescription.
or you can calculate the new size based off a coparison of the original size sample and the new size sample. Divide the new size by the original size. This ratio will reflect the scale difference. So if you NPC has a Left Arm of 10 units x and the orignal is 1 units x the scale would be 10.
I also wrote some code that will scale pretty much anything including bones, welds, humanoids, hipheight, motor6Ds and particles.
Update: Added a limit for the CharacterSize calculation so that it cannot crash the game in case the character is too massive or its body parts fling off
Changed “Part” on line 173 to “BasePart”
I did not think about rigs that use WedgePart & Sphere parts, also just learned this recently
for _, v in ipairs(Target:GetDescendants()) do
-- If we find a part, cover it in a randomized ice mesh
if v:IsA("BasePart") and not v:FindFirstChildOfClass("SpecialMesh") then
IsA("Part") --> IsA("BasePart")
Now also freezes the animation of a rig without Humanoid object by checking their AnimationController
elseif Target:FindFirstChildOfClass("AnimationController") then
local AnimationController = Target:FindFirstChildOfClass("AnimationController")
local Animator = AnimationController:WaitForChild("Animator", 10)
for i, v in pairs(Animator:GetPlayingAnimationTracks()) do
v:AdjustSpeed(0)
v:Stop()
end
task.wait(Duration)
-- Continue playing the animation
for i, v in pairs(Animator:GetPlayingAnimationTracks()) do
v:AdjustSpeed(1)
end
end
Huge update!
Since someone asked me, I spent quite a while to make this, introducing…
The secondary, modified version that comes with an UNFREEZE function (No duration)
Separate Freeze & Unfreeze functions, so there’s no duration in this version
Targets’ Walkspeed & JumpPower are stored in a weak table (No worries they don’t overlap each other) and then set back to the stored WS & JP when you call the unfreeze function on the same targets
Make sure to check the new examples (Parented inside the modified module) if you don’t know how to use!
Frozen:
The mech has no Humanoid, just an AnimationController, works perfectly
Unfrozen:
Walkspeed & JumpPower were randomly assigned before running, and they went back to the original values without any issues!
Note: This modified version has nothing to do with the first version. Both are up-to-date without issues from my play testing. The choice is yours, feel free to modify them to your liking
Hi
Thanks for reporting
It seems like Roblox layered clothing is quite weird so after doing some testing for an hour, I decided to exclude them from the freezable parts and added an extra setting
They will always be buggy while being frozen if an extra part is added to the character
But they return to normal after being unfrozen so I think that shouldn’t be a problem
Who needs to freeze clothes anyways?
(Yes I used your character and also wore some layered clothes)
Ngl I was a bit skeptical about it adapting to any kind of rig so I just tested it and it actually works extremely well to my surprise, since I’m working on a kind of UT/DR game I will use it, its a pretty good module ngl, good job mate!
Incase you might wanna know what I used it for, here it is lol