The character can gets stuck inside the ground if you jumps at the floor from a specific angle.
Has anyone else had a similar experience?
Know of any good way to prevent this from happening?
The current solution I have is to check the Humanoid’s state change to see if it’s on Enum.HumanoidStateType.Freefall for too long. This isn’t a good prevention method though.
Changing Hiphight doesn’t seem to be doing anything.
Also, this isn’t something that happens as soon as the character spawns, it happens when you run into the side/tip of the floor-part at a specific angle
I recommend you to post this in Game Design Support or perhaps Building Support, they know more than us about these stuff since your problem doesn’t involve any coding issues.
You won’t get good answers here so just move it into one of these categories since they specialize in creating custom characters and how building works and how you can glitch into it.
So that’s most likely the cause. I’m not entirely sure how I’d fix that directly, but you can code a patch that pushes the player out of an object that it’s intersecting with. GetTouchingParts will conveniently get any intersecting parts (even when anchored and no physics are used). This does not include touching parts, only parts that are actually inside and intersecting. With that, you can work out some maths to figure out how you want to push the player out of the object.
@MightyDantheman
I checked to see if it was the custom shiftlock by disabling it and using the default Roblox shiftlock.
I also tried disabling shiftlock altogether.
The glitch still occurred during both tests.
I might settle with using GetTouchingParts, though then I would have to attach Touched events to a lot of stuff and that might not be super efficient.
@jcnruad900
The root part is just a default Roblox R15 root part.
You don’t actually need to add events to anything. You can call GetTouchingParts and it will do its job. I suppose you could put a touch event in the HumanoidRootPart to check for said intersections though.
Oh yea, that’s only if CanCollide is set to false.
Alright, maybe I could have a tiny part inside the HumanoidRootPart and check if anything touches that.
Player = game.Players.LocalPlayer
Char = Player.Character
Humanoid = Char:WaitForChild('Humanoid')
HRP = Char:WaitForChild('LowerTorso')
HRP.Touched:connect(function(hit)
if hit.Parent ~= Char then
local parts = HRP:GetTouchingParts()
for i,v in pairs(parts) do
if v.Parent ~= Char then
--print(v)
HRP.CFrame = HRP.CFrame*CFrame.new(0,1,0)
end
end
end
end)
Except I had to use LowerTorso instead of HumanoidRootPart
@jcnruad900
I dont think it did this with my previous rig but I could be wrong.
Yes I did actually, I made the character a little skinnier.
The BodyWidthScale is set to 0.8