directional backflip (visual)
Key RequiredUniversal

directional backflip (visual)

Universal Scriptindistiputedindistiputed 5 views 1 executesUpdated Oct 4, 2026
Unrated
00
Lua Script•72 lines (2031 chars)
local plr = game:GetService("Players").LocalPlayer
local rs = game:GetService("RunService")
local jb = 14

local function setup(char)
	local hum = char:WaitForChild("Humanoid")
	local root = char:WaitForChild("HumanoidRootPart")
	local joint = root:WaitForChild("RootJoint")
	local c0 = joint.C0
	local on = false

	local function stop()
		if on then
			rs:UnbindFromRenderStep("backflip")
			on = false
		end
		if joint.Parent then
			joint.C0 = c0
		end
	end

	hum.StateChanged:Connect(function(_, new)
		if new == Enum.HumanoidStateType.Landed or new == Enum.HumanoidStateType.Running then
			if on then
				stop()
			end
			return
		end
		if new ~= Enum.HumanoidStateType.Jumping then return end
		stop()
		on = true
		local md0 = hum.MoveDirection
		local cam = workspace.CurrentCamera.CFrame
		local look = Vector3.new(cam.LookVector.X, 0, cam.LookVector.Z).Unit
		local right = Vector3.new(cam.RightVector.X, 0, cam.RightVector.Z).Unit
		local dir
		if md0.Magnitude < 0.1 then
			dir = -Vector3.new(root.CFrame.LookVector.X, 0, root.CFrame.LookVector.Z).Unit
		else
			local f = md0:Dot(look)
			local r = md0:Dot(right)
			if math.abs(f) >= math.abs(r) then
				dir = f > 0 and look or -look
			else
				dir = r > 0 and right or -right
			end
		end
		local axis = root.CFrame:VectorToObjectSpace(Vector3.yAxis:Cross(dir)).Unit
		local g = workspace.Gravity
		local v = (hum.UseJumpPower and hum.JumpPower or math.sqrt(2 * g * hum.JumpHeight)) + jb
		local dur = math.max(2 * v / g * 0.95, 0.35)
		local t0 = os.clock()
		local boosted = false
		rs:BindToRenderStep("backflip", Enum.RenderPriority.Last.Value, function()
			local a = (os.clock() - t0) / dur
			if a >= 1 or hum.Health <= 0 or not root.Parent then
				stop()
				return
			end
			if not boosted then
				boosted = true
				root.AssemblyLinearVelocity += Vector3.new(0, jb, 0)
			end
			joint.C0 = CFrame.fromAxisAngle(axis, a * math.pi * 2) * c0
		end)
	end)
end

if plr.Character then
	task.spawn(setup, plr.Character)
end
plr.CharacterAdded:Connect(setup)

Features & Information

self explanatory, you can also backflip in different directions based on the direction your going. use shiftlock for better angling.
#flip#backflip#universal#FE#r

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts