I am making a module to lerp a brick's position to a new one. For some reason it goes past the spot, never actually hitting the correct position. I can't solve the problem, probably something with my math, or setup, but other than that it should be fine. Thanks in advance!
local module = {} module.lerpBrickPosition = function(brick, position, lerpTime, bodyPos, stepAmount) --[[ "brick" ........ The brick to lerp "position" ..... The position to move it to "lerpTime" ..... The total time to move it "stepAmount" ... (OPTIONAL) The amount of steps to make to lerp --]] local xDistance = -(brick.Position.X - position.X) local yDistance = -(brick.Position.Y - position.Y) local zDistance = -(brick.Position.Z - position.Z) local distance = dLAD(brick.Position, position) local steps = stepAmount or (100) repeat local newPos = Vector3.new(xDistance/steps + brick.Position.X, yDistance/steps + brick.Position.y, zDistance/steps + brick.Position.z) brick.Position = newPos if bodyPos ~= nil then bodyPos.position = newPos end wait(lerpTime/steps) until brick.Position == position end function dLAD(position, position2) -- Returns the largest axis difference (Determine Largest Axis Difference) local x = math.abs(position.X - position2.X) local y = math.abs(position.Y - position2.Y) local z = math.abs(position.Z - position2.Z) if x >= y and x >= z then return x elseif y >= z then return y else return x end end return module