So uh I made a fall damage script with a ragdoll, ( you can copy this script and paste it in a server script and try it urself)
NOTE: This is my first time using the ragdoll system ( BallSocketConstraint )
ServerScript:
game.Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function(char) local humanoid = char:WaitForChild("Humanoid") local Root = char.HumanoidRootPart local OriginalPos humanoid.StateChanged:Connect(function(oldstate, newstate) if not Root then return end if newstate == Enum.HumanoidStateType.Freefall then OriginalPos = Root.Position.Y if not OriginalPos then return end elseif newstate == Enum.HumanoidStateType.Landed then local LandPos = Root.Position.Y if not LandPos then return end if OriginalPos < LandPos then return end humanoid:TakeDamage(OriginalPos - LandPos) local d = char:GetDescendants() for i=1,#d do local desc = d[i] if desc:IsA("Motor6D") then local socket = Instance.new("BallSocketConstraint") local part0 = desc.Part0 local joint_name = desc.Name local attachment0 = desc.Parent:FindFirstChild(joint_name.."Attachment") or desc.Parent:FindFirstChild(joint_name.."RigAttachment") local attachment1 = part0:FindFirstChild(joint_name.."Attachment") or part0:FindFirstChild(joint_name.."RigAttachment") if attachment0 and attachment1 then socket.Attachment0, socket.Attachment1 = attachment0, attachment1 socket.Parent = desc.Parent desc:Destroy() end end end end end) end) end)
The ragdoll works but, it sends me flying up in the air and glitching me, why? tell me if it doesn't glitch for u