part.Velocity being 0,0,0

I’m trying to make object throwing in VR and when releasing the object I’m trying to throw, I apply its client velocity to the real thing existing on the server, issue being is that despite the client cube being welded to the hand it doesnt seem to generate any velocity.
https://gyazo.com/d960a701c569516aa237a04815ad9015
CLIENT

if #rightHand.Grabbed:GetChildren() >= 1 then
			print(rightHand.Grabbed:GetChildren()[1].PrimaryPart.Velocity,rightHand.Grabbed:GetChildren()[1].PrimaryPart)
			update:FireServer("Grabbing",{
				objCFrame = rightHand.Grabbed:GetChildren()[1].PrimaryPart.CFrame,
				ServObj = grabRServ,
				objVelocity = rightHand.Grabbed:GetChildren()[1].PrimaryPart.Velocity,
				Arm = "RightGrab"
			})
		end

SERVER

item.ServObj.PrimaryPart:SetNetworkOwner(player)

item.ServObj.PrimaryPart.CFrame = item.objCFrame
item.ServObj.PrimaryPart.Velocity = item.objVelocity
item.ServObj.PrimaryPart:SetAttribute(Grabbable,false)

Setting the network owner to the player did help it a little bit but the velocity property is still 0,0,0

instead of changing the velocity you should apply an impulse in the direction you wish to throw

https://developer.roblox.com/en-us/api-reference/function/BasePart/ApplyImpulse

“Velocity” no longer exists on roblox, it’s been replaced with “AssemblyLinearVelocity”

Edit: For clarification, this change has been made since they’ve also added angular velocity, which seems like something you should check out for VR hands

Actually, this is technically incorrect. Velocity was replaced by BasePart:GetVelocityAtPosition(). AssemblyLinearVelocity is the Velocity at the center of the whole assembly, not just one part.

And no, it does exist. It was just deprecated and hidden.

if it wouldnt exist i dont think u could set the velocity of a part to vector3.new(0,50,0) and see it fly up, but i mightve found a solution to my issue so ill close the thread

You could but it’s not recommended. Use a different way of doing this for a futureproof solution.