You can write your topic however you want, but you need to answer these questions:
What do you want to achieve?
A r6 ragdoll with knees
What solutions have you tried so far?
I tried searching on devforum, youtube, reddit and etc.
this Is what I want:
and this Is what I have:
If you think It’s identical It’s not true. Because in the first image knees are changing their position, but mine don’t
I want It to be like this:
this Is my module script:
local RagdollModule = {}
RagdollModule.__index = RagdollModule
local Players = game:GetService("Players")
local function SetCollions(Character)
for i, part : Part in pairs(Character:GetChildren()) do
if part:IsA("Part") then
part:SetNetworkOwner(nil)
part.CanCollide = false
part.Massless = true
end
end
end
local function CreateCollisionParts(Character)
for _, v in pairs(Character:GetChildren()) do
if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then
local ColliderPart : Part = v:Clone()
ColliderPart.Parent = v
ColliderPart.CanCollide = true
ColliderPart:ClearAllChildren()
ColliderPart.Transparency = 1
ColliderPart.Name = "Collider"
--ColliderPart.Shape = Enum.PartType.Ball
if v.Name == "Torso" then
ColliderPart.Size = v.Size
else
ColliderPart.Size = Vector3.new(.5, v.Size.Y, .5)
end
local Weld = Instance.new("Weld", ColliderPart)
Weld.Part0 = v
Weld.Part1 = ColliderPart
for _, i in pairs(Character:GetDescendants()) do
if i:IsA("Part") and i.Name == "Collider" then
local NoColl = Instance.new("NoCollisionConstraint", ColliderPart)
NoColl.Part0 = ColliderPart
NoColl.Part1 = i
end
end
end
end
end
local function SetUpHumanoid(char)
local Humanoid : Humanoid = char:FindFirstChild("Humanoid")
Humanoid.RequiresNeck = false
Humanoid.PlatformStand = true
end
function RagdollModule.New(Character : Model)
local self = setmetatable({}, RagdollModule)
self.Character = Character
return self
end
function RagdollModule:Ragdoll()
for i, joint in pairs(self.Character:GetDescendants()) do
if joint:IsA("Motor6D") then
local socket = Instance.new("BallSocketConstraint")
local a0 = Instance.new("Attachment")
local a1 = Instance.new("Attachment")
a0.Parent = joint.Part0
a1.Parent = joint.Part1
socket.Parent = joint.Parent
socket.Attachment0 = a0
socket.Attachment1 = a1
a0.CFrame = joint.C0
a1.CFrame = joint.C1
a1.Name = a0.Parent.Name
a0.Name = a1.Parent.Name
if joint.Name == "Left Hip" then
a0.CFrame = joint.C0 + Vector3.new(.5,.5,-.5)
a1.CFrame = joint.C1 + Vector3.new(.5,0,0)
--[[spawn(function()
wait(1.5)
a0.CFrame = joint.C0
a1.CFrame = joint.C1
end)]]
elseif joint.Name == "Right Hip" then
a0.CFrame = joint.C0 - Vector3.new(.5,-.5,.5)
a1.CFrame = joint.C1 - Vector3.new(.5,0,0)
--[[spawn(function()
wait(1.5)
a0.CFrame = joint.C0
a1.CFrame = joint.C1
end)]]
end
socket.LimitsEnabled = true
socket.TwistLimitsEnabled = true
joint:Destroy()
end
end
SetCollions(self.Character)
CreateCollisionParts(self.Character)
SetUpHumanoid(self.Character)
end
return RagdollModule





