NoCollisionConstraints are broken when i use it on a character

For some reason NoCollisionConstraints will not prevent double jumps from the small stick.


How do i prevent this without needing to cancollide false the stick?

1 Like

You can create two collision groups, and have the bar in one, and the players in another.

More info on that here:
https://developer.roblox.com/en-us/articles/Collision-Filtering

1 Like

I’d rather not use collision groups… I need to use as much collision groups as i can for something else.

1 Like

What are you adding the constraint to? If it’s just the HRP, the other limbs will collide with the rod.

Only HRP and Part:
21%20PM
All limbs and Part:
44%20PM

1 Like
for i,part in pairs(Player.Character:GetChildren()) do
			if part:IsA("BasePart") then
				local constraint = Instance.new("NoCollisionConstraint")
				constraint.Parent = Parachute
				constraint.Part0 = part
				constraint.Part1 = Parachute.Part3
				constraint.Enabled = true
			end
		end
``` This is what i use.

Try using GetDescendants() instead of using GetChildren()

I tried it, but it did not work sadly.

You sure you did a thorough test of that? The limbs of any rig type don’t have collisions enabled: it’s only the head, torso (for R15, upper and lower torso) and the root of a rig. I ran the exact same test as you but only applied NoCollisionConstraints to the aforementioned parts. I was able to pass a brick.

That being said, I think this issue just has to do with the way collisions are detected in general by the humanoid. I don’t know whether it’s a bug or a feature though, so besides CanCollide or CollisionGroups, there’s no escape around this behaviour. (cc OP, @rickje139)

Humanoids perform a downcast to be on top of objects. As far as physics are concerned, both parts still have CanCollide on. Therefore, when a Humanoid performs its downcast, it registers the part as a valid object to be stood on and thus pushes the humanoid on top of that brick. Observe as such:

NoCollisionConstraint should be voiding that, if I recall correctly. Doesn’t seem like that’s the case.

3 Likes

Sorry for lack of communication here but I’ve just enabled a fix for this. Using a NoCollisionConstraint from the humanoid root part to some other part should now prevent standing/climbing on that part.
Let me know if you still experience issues!

(cc @Quenty, @Wheatlies)

6 Likes

@kleptonaut If I want the humanoid to ignore an item when raycasting on whether to stand on something, I just need to put a NoCollisionConstraint between the root part and the other part, right?

That’s what my experiments are showing.

1 Like

Yes that’s the current expected behavior. If you want to further prevent collisions with the player and some other part you might need more NoCollisionConstraints or some other collision filtering.
Using with just the HRP will prevent the humanoid standing raycast, but the other part could still collide with the player’s hand part for example.

2 Likes

Excellent. That’s exactly what I want!