Inside update function which updates player rotation I check if last player Y position was greater than current and vice versa for sliding upward, if delta position y is equal to 0 means position Y is the same then we know player is sliding forward
@@aghnadevyt ```lua local lastY RunService.PreRender:Connect(function() local y = hrp.CFrame.Position.Y local deltaY = y - lastY lastY = y print(deltaY == 0 and "SlidingForward" or deltaY > 0 and "SlidingUpward" or "SlidingDownward") end) ```