The concept of rocket launcher

There’s a lot of things that can make rocket launcher possible to be made in Roblox studio. In this post, I would like to share my concept of it and ask some question of it. So correct me if I did anything wrong.

So, I would start making the model and use WeldConstraints to weld each of the part. Then, I would start to build the rocket bullet, then parent it to ServerStorage.

Then, this is where I have a hard time understanding how the rocket bullet flies. I heard someone uses BodyVelocity. It looks something like:

local BV = Instance.new(“BodyVelocity”)
BV.MaxForce = Vector3.new(math.huge,math.huge.math.huge)
BV.Velocity = Vector3.new(0,0,0)
BV.Parent = RocketBullet

Now here’s can my question.

  1. What’s with the MaxForce?
  2. What’s the difference between BasePart.Velocity and BodyVelocity.Velocity.
  3. I believe this would not make the rocket bullet part go to Mouse.Hit.P, so is there something wrong with the BV.Velocity and should be changed into something like this?
BV.Velocity = (Mouse.Hit.P - rocket.ShootPart.Position).Unit * 50

If anyone can help me answer all these questions, it would be a big contribution.

  1. MaxForce when given velocity, determines how long it will take to reach the specified velocity. Setting it to math.huge, basically means the amount of force applied on each axis is going to a very large number (or I believe Infinity).

  2. The difference between those terms, is that BasePart.Velocity is the velocity applied to a part and represents how the part’s position is currently changing. If you anchor it, the velocity is stable (mean’s the part position is not moving), and anything that touches it, will move in accordance to its velocity. On the other hand, BodyVelocity.Velocity is the Velocity applied to a part, relative to the world. It has the properties, X, Y and Z which is self-explanatory.

  3. And yes, that code would make it go to the Mouse’s position. Though P should be lowercase.

Much of these definitions/ information on the above terms can be found on developer API reference. I guess if you want to investigate further, you should look to test it out :slightly_smiling_face:

1 Like

So this means the rocket bullet goes faster?

I don’t quite get well with this. Does BasePart.Velocity is like a temporary one and BodyVelocity.Velocity is like permanent?

Not really. A larger number just means that the change in velocity happens instantly, or quicker. If you set the MaxForce to (1, 1, 1), the bullet may drop and a bit later move due to velocity, however if you set the MaxForce to math.huge, the bullet instantly or smoothly transitions from the current velocity to your desired velocity. You wouldn’t see dropping, delay or etc.

It’s slightly tricky to explain, you best bet is probably looking into the API reference, sorry.