so i have a throwing system, and the box is going slightly to the sides, i think it is because the mouse hit position is on the box
(mouse is mouse.Hit.Position)
local box = target
local speed = -100
box.CFrame = CFrame.new(box.Position, mouse)
box.Velocity = box.CFrame.LookVector * speed
If you save these properties as variables, they will not change as it will only hold the first value assigned to it unless changed. I also recommend using user input service for things that have to do with mouse, as the player get mouse method is deprecated.