How to achieve character rolls mid air?


I’m trying to make something similiar, everything works except for I don’t know how to achieve this:
While in air and moving it rolls the character around itself

I tried to mess with AlignOrientation and AngularVelocity and AssemblyAngularVelocity but nothing seems to work and there’s probably a trick to achieve this.

local runService = game:GetService("RunService")

local ball = script.Parent
local humanoid = ball:WaitForChild("Humanoid")
local head = ball:WaitForChild("Head")
local angularVelocity = head:FindFirstChildOfClass("AngularVelocity")

local function onRenderStep()
	local moveDirection = humanoid.MoveDirection
	if moveDirection.Magnitude > 0 then
		local angularVelocityVector =, 0, -moveDirection.X) * 10
		angularVelocity.AngularVelocity = angularVelocityVector
		angularVelocity.AngularVelocity =


Any help is appreciated!


It may be done with a TorqueConstraint. The scripting would have to spin the forces in the correct direction according to the control input.

You may want to change your title too to be more descriptive. There are too many titles like yours that don’t tell readers what the actual problem is.

Please copy paste the script you are using so other people can try to figure out the best way to help you.
Put 3 backticks (```) before and after it so it formats properly.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.