Players can walk through walls if everything above the legs is CanCollide = false

Move the HumanoidRootPart up by the hipheight you set. That will make sure that the bottom of the visual model touches the ground but the humanoid can still stand.

What do you mean move the HRP up by the hipheight I set? Everything is welded to the HRP so itā€™ll still floating above.

I fixed the bobbing but that doesnā€™t fix the problem where the custom character slides around when on parts.

What I mean is weld the parts to the HRP offset to the HRP so that the HRP has room to stand on the ground. When I mean move the HRP I mean move the HRP relative to the other parts in the character.

Sorry, still not understanding what you mean.

Also, my Custom Characters Head, Torso and HRP were all the same mesh / size so I donā€™t need to change the HipHeight.

I think youā€™re getting confused between me talking about the time I tried using a Custom Character and me trying to use HRP.

HipHeight being 0 causes the sliding issue if the HRP is contacting with the ground. You need the HRP to not touch the ground. Move the HRP upwards by the HipHeight BEFORE welding your parts.

Also I am talking about the sliding issue with the custom character. The custom character should be invisible and the parts of your prop should be welded to the HRP

Iā€™d try that if I kept the Custom Character.

Even if that did fix it, I donā€™t want to go with the Custom Character as there is a small delay from when you change the Character of the Player to the Prop Character.

Yo Iā€™ve been searching for this script since forever
Thanks :pray:

Here the CollisionGroups for my obby.

You can see here that there are 3 groups that the player cannot collide with. Thereā€™s a group for parts that wonā€™t collide with players. Npcs (pest) canā€™t collide with players. There another group for parts that can collide with players, but not anything else. Players cannot collide with each other. You can make multiple groups and just untick where you donā€™t want them to collide with each other. Make sure all parts are CanCollide = true for it to work.

Put a script inside StarterPlayer > StarterCharacterScripts to set all parts inside the player to the collision group you want:

for _,part in script.Parent:GetDescendants() do
	if part:IsA("BasePart") then
		part.CollisionGroup = "players"
	end
end

ETA: I just noticed after I posted the respond that the original post was in 2019. Someone must have bumped it up. I hope my response can help others needing a solution to collision parts.

Hello!
Perhaps try to set only the walls to ā€œcannot collideā€ , in ā€œCollisionā€, under ā€œPart properties?ā€. I hope I understood your question correctly, and helped you!