Disabling/Destroying NPC's Motor6Ds Stops All Current Velocity

As the title say, when I disable or destroy a NPC’s Motor6Ds, it stops all current velocity the NPC has and the NPC’s body just stops completely. I’m disabling the Motor6Ds because I’m making the NPC turn into a ragdoll, but I’m also making the NPC kind of going into a certain direction by setting their velocity via their root part. I’m basically just trying to make a mechanic where the NPC gets thrown, but as soon as they are thrown, they turn into a ragdoll.

Are you destroying the Motor6Ds first and then applying the Velocity, or the other way around?
Have you tried a VectorForce in the RootPart instead of just a Velocity?

1 Like

As for the first question, I have tried both yet the result stayed the same. I have not tried a VectorForce and will definitely give it a shot!

I just can’t seem to get VectorForce to work for me, here’s my code:

local vel = Instance.new(‘VectorForce’, target.Parent.HumanoidRootPart)
vel.Attachment0 = target.Parent.HumanoidRootPart.RootRigAttachment
vel.ApplyAtCenterOfMass = true
vel.Force = root.CFrame.LookVector * Vector3.new(40, 20, 40)

I also tried AssemblyLinearVelocity since Velocity is deprecated and I still can’t get nowhere with the ragdoll script enabled. I known that VectorForce replaced BodyThrust, but I tried using it anyways and it gives me the same result. I disabled the ragdoll script and both the VectorForce and the BodyThrust still literally goes nowhere while when disabling the ragdoll script for the Velocity and AssemblyLinearVelocity at least made it where both were actually able to move the NPC like desired.

Nvm I did get it to work, thank you so much! (I just needed to adjust the force and make it much higher. It’s not going in the right direction, but I’m sure I can fix it)

To those who have this problem, here’s how I fixed it. I know i previously stated that VectorForce worked for me, but I ultimately decided to use BodyVelocity as VectorForce didn’t really give me the result I wanted. Here’s the code:

local vel = Instance.new(‘BodyVelocity’, target.Parent.HumanoidRootPart)
vel.Velocity = root.CFrame.LookVector * Vector3.new(40, 20, 40)

local veltween = ts:Create(vel, TweenInfo.new(1.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {Velocity = Vector3.new(0, -5, 0)})
veltween:Play()

veltween.Completed:Connect(function()
vel:Destroy()
end)

(ts is TweenService)