When setting MaxVelocity on AlignPosition it breaks

The tittle explains it all but for little more context:

I was trying to make a wall climb / ledge grab but when i set the AlignPositions for MaxVelocitiy the character just stays mid climb and doesn’t move

Heres the climb function:

local function Climb(PlayerPos, PartTopY, HitPos)
	Anims["Climb"]:Play()
	
	local Pos = Vector3.new(HitPos.X, PartTopY - 2.5, HitPos.Z)
	
	local Attachment = Instance.new("Attachment", HumRoot)
	
	local BodyVel = Instance.new("AlignPosition", HumRoot)
	BodyVel.Mode = Enum.PositionAlignmentMode.OneAttachment
	BodyVel.Attachment0 = Attachment
	BodyVel.Position = Pos
	BodyVel.MaxVelocity = Vector3.new(0, 50000, 0) -- !!! here's the problem
	
	for i,v in pairs(Character:GetChildren()) do
		if v:IsA("Part") then
			v.Massless = true
		end
	end
	
	local Player = game.Players:GetPlayerFromCharacter(Character)
	
	local StartTime = tick()
	local EndTime = Player.Skills.WallClimb.Value
	
	local NewPlayerPos = game.ReplicatedStorage.Events.GetPos:InvokeClient(Player)
	
	repeat
		wait() 
		NewPlayerPos = game.ReplicatedStorage.Events.GetPos:InvokeClient(Player)
	until math.abs(NewPlayerPos.Position.Y - Pos.Y) < SafeSpot + .1 or tick() - StartTime >= EndTime
	
	for i,v in pairs(Character:GetChildren()) do
		if v:IsA("Part") then
			v.Massless = false
		end
	end
	
	Attachment:Destroy()
	BodyVel:Destroy()
	Anims["Climb"]:Stop()
	
	if math.abs(NewPlayerPos.Position.Y - Pos.Y) < SafeSpot + .1 then
		Grab(NewPlayerPos, PartTopY, HitPos)	
	end
	
	wait(Cooldown)
end

Ok i might be stupid actually

SOOOO turns out i used Vector3 instead of a float value -_-