I’m working on a climbing system that utilizes humanoid.MoveDirection to make the player climb in a certain direction
The issue is that climbing will lock the players model into one direction, which seems to affect Humanoid.MoveDirection (I want to keep players facing the wall preferably)
(For example, going forwards would normally climb the player upwards, but if the player looks to their right or left, they will climb significantly slower)
local PlayerCameraDot = (script.Parent.HumanoidRootPart.CFrame.LookVector:Dot(workspace.CurrentCamera.CFrame.LookVector)) --Gets the difference between the character lookvector and the camera lookvector
local negator = 1
if PlayerCameraDot >= 0 then
negator = -1
elseif PlayerCameraDot < 0 then
negator = 1
end
local ClimbDirection = (Vector3.new(Humanoid.MoveDirection.X, Humanoid.MoveDirection.Z * negator , 0))
print(ClimbDirection)
Holder.VectorVelocity = (ClimbDirection * Vector3.new(Humanoid.WalkSpeed, Humanoid.WalkSpeed, Humanoid.WalkSpeed))
Is there division involved? Divisions are sometimes kinda broken. Also are you sure you used the correct set of data? There was some weird bug when I tried to find the CFrame.Rotation. Also errors also exists within rotation coordinates.
If I haven’t remembered incorrectly the first three were junk data. The other three was that real direction the player was facing.