Like think about a stability ball those big ones where you can sit on it and then hop around in a direction and the ball would kind of bounce under you then come to a stop in the direction you moved in?
Couldn’t find a clear enough picture but something like this
Unless you’re trying to add a lot of unpredictability to movement, I wouldn’t use physics at all and just stick to animations. Otherwise, I’d consider using an align rotation constraint to keep the person from falling backwards. For moving forward, I’d consider using a method like ApplyImpulse on the ball, just angled upward towards the direction the player wants to move in.
You could use physics constraints like a BallSocketConstraint or a BodyPosition to keep the player on top of the ball while allowing movement. Then, apply a force or BodyVelocity to move the ball in the direction the player moves (WASD). For bouncing, detect when the ball touches the ground and apply an upward impulse.
Step by step:
Weld the player’s HumanoidRootPart to the ball.
Use BodyVelocity to move the ball based on input.
Add a bounce effect by applying an impulse when the ball touches the ground.