Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Player Resize Killing instead of resizing fix?

So I was making a script so I could resize players down to a certain height, just a note I am using R6 and not R15.

So here is my code

local beam = script.Parent.Beam
script.Parent.BrickColor = BrickColor.new("Really red")
beam.Transparency = 1
beam.Color = Color3.fromHSV(0, 255, 255)

local cd = script.Parent.CD
local beam = script.Parent.Beam
local debounce = false
local size = 1

cd.MouseClick:connect(function()
	if debounce == false then		
		beam.Transparency = 0.4
		
		beam.Touched:connect(function(hit)
			local humanoid = hit.Parent:FindFirstChild("Humanoid")
			if humanoid then
				for i,v in pairs(hit.Parent:GetChildren()) do
					if v:IsA("Part") then
						v.Size = Vector3.new(size, size, size)
					end
				end
			end
		end)
	end
end)

im not sure why it kills players.

1 answer

✓ Accepted answer

This is killing players because you're not re-making the joints. An easy way to implement this is to make a table of the player's joints before you scale them down.

For example (Just for storing joints, not direct answer).

function storeJoints(chr)
	local joints = {}
	for i,v in pairs(chr.Torso:GetChildren()) do
		if v:IsA("Motor6D") then
			table.insert(joints,v)
		end
	end
	table.insert(joints, chr.HumanoidRootPart.RootJoint)
	
	return joints
end

local backupJoints = storeJoints(chr)

Later, once you've scaled down the players you want to go through this table and restore the joints. Although, you may want to scale down the joints. This should help give you an idea of what you need to do.

To answer your question directly though, it's simply because you're not restoring the joints.

This discussion is preserved as it was. New answers, comments, and votes are closed.