Custom character collision stuff

Hello! My custom character uses BallInSocketConstraints for every limb and is a very wobbly guy.

I have put them into a CollisionGroup so the limbs do not collide with eachother, but I would still like for each player to collide with eachother.
What should I do?

Screen Recording 2025-08-28 170929

2 Likes

Pretty sure you can just use NoCollisionConstraints
Or give every player their own collision group (which idk how)

1 Like

Create another part for collision, unless you need collision on each limb.
Kinda like how R6/R15 uses HumanoidRootPart instead of Torso.

Collision on each limb is the desired outcome, yes.

1 Like


Am I gonna have to put this in every limb :sob:

Oh, lol. I didnt know you had that many limbs, and making each limb have a no collision constraint to the next limb is probably hard and time consuming, so maybe you can do my second option (which as i said idk how)

here’s a command line script to speed up that process if you’d like, just select the character in the explorer and run it

local function getAllParts(x : Instance) : {BasePart}
	local parts = {}
	
	for _, v in x:GetDescendants() do
		if v:IsA("BasePart") then
			table.insert(parts, v)
		end
	end
	
	return parts
end

local function disableLimbCollision(character : Model) : ()
	local bodyParts = getAllParts(character)
	
	local constraintsFolder = Instance.new("Folder")
	constraintsFolder.Name = "NoCollisionConstraints"
	constraintsFolder.Parent = character
	
	for _, bodyPart in bodyParts do
		for _, otherBodyPart in bodyParts do
			if otherBodyPart == bodyPart then
				continue
			end
			
			local constraint = Instance.new("NoCollisionConstraint")
			constraint.Part0 = bodyPart
			constraint.Part1 = otherBodyPart
			constraint.Parent = constraintsFolder
		end
	end
end
disableLimbCollision(game.Selection:Get()[1])
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.