Custom Creatures Issues

Hello, I am creating a horse mount and I am now faced with an issue where this horse can not walk up sloped terrain properly. The horse has a Humanoid with BodyVelocity & BodyAngularVelocity to control the movement of the horse. I currently have no ideas on how to try and correct the way the horse can climb terrain. If any other information is needed please ask!

Your BodyVelocity.Velocity probably is limited to the horizontal plane. Try translating the vector to the plane of whatever it’s standing on. Raycast downward a short distance to determine what part it might be standing on, then determine which face of the part it’s standing on. Use this face to create a CFrame which represents the plane, and translate the movement vector (which is local to the plane) with CFrame:vectorToWorldSpace(moveVector).

Another option is using an standing-upward pill shape as the character collider, but that’s more of a strategy for other platforms than Roblox. Please enjoy this MS Paint art which might better explain this approach:


Thanks for the suggestion! Would this be feasible for Roblox’s Terrain? If so I’m not quite understanding how to achieve such a thing.

Yes, given that the raycasting functions will return a normal vector of the contact point, you can use that to define the plane! Works for MeshParts and Terrain.

1 Like