local Players = game:GetService("Players")
local function PlayerCharacterAdded(Character: Model)
local Humanoid: Humanoid = Character:FindFirstChild("Humanoid")
if not Humanoid then return end
Humanoid.BreakJointsOnDeath = false
Humanoid.Died:Connect(function()
local Joints = {}
for _, Descendant in Character:GetDescendants() do
if Descendant:IsA("Motor6D") then
table.insert(Joints, Descendant)
end
end
for _, Joint in ipairs(Joints) do
local Attachment0 = Instance.new("Attachment", Joint.Part0)
local Attachment1 = Instance.new("Attachment", Joint.Part1)
Attachment0.CFrame = Joint.C0
Attachment1.CFrame = Joint.C1
local BallSocket = Instance.new("BallSocketConstraint")
BallSocket.Attachment0 = Attachment0
BallSocket.Attachment1 = Attachment1
BallSocket.Parent = Joint.Part0
Joint:Destroy()
end
local Root = Character:FindFirstChild("HumanoidRootPart")
if Root then
Root.CanCollide = false
end
end)
end
Players.PlayerAdded:Connect(function(Player: Player)
Player.CharacterAdded:Connect(function(Character: Model)
PlayerCharacterAdded(Character)
end)
end)