Multiple BodyVelocity Dilemma

I have been searching everywhere around the devforum yet I couldn’t find much. My problem involves multiple body velocities. When there’s more than one bodyvelocity in a part, only one bodyvelocity acts.

For example, if there was a bodyvelocity for a dash in a character’s root part and there’s another bodyvelocity that sent a character’s root part up, only the bodyvelocity for dashing would be affecting the character’s root part, the bodyvelocity that sent the character up wouldn’t work at all.

I was thinking of using a VectorForce but I am not even sure if that will work. Do any of you have ways to circumvent this problem?

3 Likes

You could check if there is already a body velocity in the character. If there already is one, then you can just add the new velocity to the current body velocity. If one doesn’t exist then you can create a new one. For example:

local function Dash(character)
      local BV = character.HumanoidRootPart:FindFirstChildWhichIsA("BodyVelocity")
      if BV then 
         BV.Velocity += character.HumanoidRootPart.CFrame.LookVector * 10
      else
         BV = Instance.new("BodyVelocity")
         BV.Velocity += character.HumanoidRootPart.CFrame.LookVector * 10
     end
end

The two problems with this method are the fact that my bodyvelocities destroy after a certain time using Debris (so like if someone dashes and they get shot up using a body velocity, this wouldn’t work), and if there were more than two bodyvelocities this would not work correctly.

1 Like

I still can’t find a good workaround for this situation as of now, sadly.

1 Like

I’m encountering hte same problem right now, if anyone has a solution, please.

What if you just made the removed the extra velocity from the BodyVelocity.Velocity instead of destroying it? Does it stop character movement if the BodyVelocity is 0,0,0?