The script works but if you press the key to uncrouch, you will lose your legs. Any way to fix that? By the way, the script is a chunk of the main script which handles crouching. If you need to see the main script, just ask. Your legs do not come off, but go through the floor and you still have them but they're in the floor.

function Crouch()
	if sprinting.Value then
		ResetSprint()
	end 
	while crouching.Value do
		if player.Character.Humanoid.WalkSpeed == 16 then
			player.Character.Humanoid.WalkSpeed = 8
		end
		if player.Character.Torso.Velocity.magnitude > 3 then
			character.Animate.Disabled = true
			if not crouching.Value then break end
			ting = 0
			character.Torso:findFirstChild("Left Shoulder").DesiredAngle = -math.pi/4
			character.Torso:findFirstChild("Right Shoulder").DesiredAngle = -math.pi/4
			character.Torso:findFirstChild("Left Shoulder").MaxVelocity = 0.1
			character.Torso:findFirstChild("Right Shoulder").MaxVelocity = 0.1
			repeat
				if not crouching.Value then break end
				welds[1].C1 = (welds[1].C1+Vector3.new(0,-6/80,10/80))*CFrame.fromEulerAnglesXYZ(math.rad(10),0,0)
				welds[2].C1 = (welds[2].C1+Vector3.new(0,6/80,-10/80))*CFrame.fromEulerAnglesXYZ(math.rad(-10),0,0)
				ting = ting + 1
				if player.Character.Torso.Velocity.magnitude > 1 then
					wait(1/15)
				else
					wait()
				end 
			until ting == 8
			ting = 0
			character.Torso:findFirstChild("Left Shoulder").DesiredAngle = math.pi/4
			character.Torso:findFirstChild("Right Shoulder").DesiredAngle = math.pi/4
			character.Torso:findFirstChild("Left Shoulder").MaxVelocity = 0.1
			character.Torso:findFirstChild("Right Shoulder").MaxVelocity = 0.1
			repeat
				if not crouching.Value then break end
				welds[2].C1 = (welds[2].C1+Vector3.new(0,-6/80,10/80))*CFrame.fromEulerAnglesXYZ(math.rad(10),0,0)
				welds[1].C1 = (welds[1].C1+Vector3.new(0,6/80,-10/80))*CFrame.fromEulerAnglesXYZ(math.rad(-10),0,0)
				ting = ting + 1
				if player.Character.Torso.Velocity.magnitude > 3 then
					wait(1/15)
				else
					wait()
				end 
			until ting == 8
		else
			character.Animate.Disabled = false
		end
		wait()
	end
	character.Animate.Disabled = false
end 

2 comments

0

Your welds are probably breaking somewhere. I'm not sure where, though.

0

Any cFrame experts out there?