https://streamable.com/5ss4w
local hrp=game:GetService'Players'.LocalPlayer
hrp=(hrp.Character or hrp.CharacterAdded:Wait()):WaitForChild'HumanoidRootPart'
function _G.first()
hrp.Velocity=Vector3.new(0,35,0)
print'did first'
end
function _G.second()
local force=Instance.new'VectorForce'
force.Attachment0=hrp:FindFirstChildWhichIsA'Attachment'
force.Force=Vector3.new()
force.Parent=hrp
hrp.Velocity=Vector3.new(0,35,0)
game:GetService'RunService'.Stepped:Wait()
force:Destroy()
print'did second'
end
function _G.third()
local force=Instance.new'VectorForce'
force.Attachment0=hrp:FindFirstChildWhichIsA'Attachment'
force.Force=Vector3.new()
force.Parent=hrp
hrp.Velocity=Vector3.new(0,35,0)
wait(5)
game:GetService'RunService'.Stepped:Wait()
force:Destroy()
print'did <strike>second</strike>third'
end
Only as long as the constraint exists the velocity is applied (well this is not exactly true, but the third results in a bigger jump than the second)