Limb Collision - Solved

they just get instantly removed or fall through the baseplate whenever character is lifted?

module code

local module = {}

-- //Tables
local ObjTable = {
	Position = script:FindFirstChild("AlignPosition"),
	Orientation = script:FindFirstChild("AlignOrientation")
}


function module:Joints(player, character)
	
	-- //Humanoid
	local Humanoid = character:FindFirstChild("Humanoid")

	-- //
	Humanoid.RequiresNeck = false
	--Humanoid.HipHeight = 2

	-- //for loop
	for _, Motor6D in ipairs(character:GetDescendants()) do
		if Motor6D:IsA("Motor6D") and (string.match(Motor6D.Name, "Shoulder") or string.match(Motor6D.Name, "Neck") or string.match(Motor6D.Name, "Hip")) then

			Motor6D:Remove()
			
		end
	end	
	
	-- //for loop
	for _, part in ipairs(character:GetChildren()) do
		if part:IsA("BasePart") then


			part.CanCollide = true
			part.CollisionGroup = "Virtual"

			-- //SetNetworkOwner
			part:SetNetworkOwner(player)
			
		end
	end

	-- //
end

return module

can someone pls helpp me idk why this is happening

hmm i wonder
image

re read the code and topic. this doesnt help.

you’re disabling the arms and head and wondering why it disables them?

wait nevermind i see what your issue is

limbs update collision on every frame or something like that

im disabling the shoulders and neck, they are set to can collide and shouldnt fall as shown in the video - when i jump or get lifted they get set to nil?

the head is the only part that doesnt get set to nil, yet its applied the same way to the arms.

What does printing the arms’ parent say?

nil, its happening on state change. Humanoid Part Collision Changing - 'Only On State Change' - #39 by BIGHEAD_RIPOFF

you’re correct but i need a solution

Somewhat what I am thinking is happening is that your arms are trying to jump, and setting back the Collission to False,

Try using :PropertySignalChanged, and check for prints happening.
when the Collission gets turned off, Change it back to true using SignalChanged.

1 Like

i dont think its that, all im getting is “nil” from it being parented to nil

nvm it was this, and the other person was correct - u have to render it each time

otherwise the humanoid acts upon it as a “useless limb” :joy:

thanks guys!

Solution
RunService.Heartbeat or Humanoid.StateChanged

local module = {}

-- //Services
local RunService = game:GetService("RunService")

-- //Tables
local ObjTable = {
	Position = script:FindFirstChild("AlignPosition"),
	Orientation = script:FindFirstChild("AlignOrientation")
}



function module:Joints(player, character)
	
	-- //Humanoid
	local Humanoid = character:FindFirstChild("Humanoid")

	-- //
	Humanoid.RequiresNeck = false
	--Humanoid.HipHeight = 2


	-- //for loop
	for _, Motor6D in ipairs(character:GetDescendants()) do
		if Motor6D:IsA("Motor6D") and (string.match(Motor6D.Name, "Shoulder") or string.match(Motor6D.Name, "Neck") or string.match(Motor6D.Name, "Hip")) then

			Motor6D:Remove()
			
		end
	end	
	
	-- //for loop
	for _, part in ipairs(character:GetChildren()) do
		if part:IsA("BasePart") then


			RunService.Heartbeat:Connect(function(deltaTime: number) 
			
				part.CanCollide = true
			
			end)
		
			part.CollisionGroup = "Virtual"

			-- //SetNetworkOwner
			part:SetNetworkOwner(player)
		
			
		end
	end

	-- //
end

return module

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