Moving a part while accounting for collisions

Hello, so recently I’ve been trying to make a custom character controller. I looked into the possibilities and using BodyForces or Constraints seems just a limitation, as the numbers can be confusing.

Then I remembered that while developing in Unity3D I had access to a component called Character Controller. What this component would do is allow an object to be moved around while accounting for collisions, meaning that the object would not go through the wall, but get instantly stopped / slide on it.

Looking at the Humanoid in Roblox, that’s exactly how it works, it moves around, and when it meets a wall, it gets stopped / slides on it. The only problem is that the humanoid does not have free movement, you can only set its movement direction.

Is there a Roblox API method to do what I want? I mean, Roblox has to do it in order to move the base character, it would seem pretty natural for the method to be public.

Really confused about what you’re asking for.

Can you clarify?

Sorry for not explaining myself correctly.


As you can see in this video (Taken from Unity3D) the sphere does not go through the wall, it detects the collision even if it’s not a physic object. In the code, this is moved using a vector:
Immagine 2020-10-07 185203

I wanted to archive something similar without the use of BodyMovers, since they are limited and complicated (Moving stuff using forces creates too much entropy with drag and gravity, and using velocity can only allow you to move objects over time, unlike the unity CharacterController, which allows you to do an instant movement without having the object go inside a wall).
I was wondering if Roblox implemented something similar to this CharacterController or if it were possible to archive a similar result through other means.

Have you tried egomooses Gravity controller?

Can’t you just raycast to the point the object moves to, and if it get’s hit make it ‘collide’ based on the RayCastResults.