Rockets tumble sporadically

The rockets are 1x1x4 parts with thrust and a BodyGyro that keeps the rocket pointed forward (adjusted every frame to keep up with the rocket’s velocity)
The rockets tend to tumble for between 0.5 and 2 seconds before the BodyGyro makes the rocket point forward again.
This tumbling can occur at any point in the rocket’s trajectory, any number of times.

PGS is enabled.

1 Like

I see nothing

It can take a few tries.
It should happen, whether you’re online or offline.

I just spammed the heck out of the rocket… nothing

This is cool, Nice job :3

It does tumble when you spam it, but nice job anyways :+1:

Looks good to me.

I feel like the alleged tumble is happening when the rocket’s physics get handed off to the server
Use Part:SetNetworkOwner(Player) see if that does anything

1 Like

The physics aren’t handed off to the server, it’s a clientside rocket in a filteringenabled game.
The server has a different rocket to what the client sees, which it is the network owner of.

Could you switch to using AlignOrientation instead of BodyGyro and VectorForce instead of BodyThrust? BodyGyro has buggy legacy behaviors. The new constraints are much more stable.

If you do it smoothly enough linear interpolation and proper looping can work. If you want it to intersect with something you can also apply a Region3 around the rocket to detect if any parts are intersecting it, as for Region3 being unrotated, it doesn’t matter much as it often times won’t be that notice-able if the rocket is a small enough(I.E an average rocket). This will also have a far more accurate detection system than the physics touched event, and be less demanding on physics.

I can’t see your place right now due to me not being on a good computer.

I could, but it would be a bit of a messy solution since I’d be creating two attachments as well as two bodyforces, and updating both the AlignOrientation strength and the angle of its attachment.

I wish there were BodyForces which simulated drag (both linear and angular), and BodyForces which simulated the way an arrow points towards its movement vector.

You can definitely use AlignOrientation to point your body in the direction it is moving. You’ll just need to update the attachment direction in a script. For drag, just use a VectorForce which is opposite to your current motion and scales with v^2. For thrust use a VectorForce in the direction of your rocket.

Obviously, but my point wasn’t that I couldn’t do that, it’s that it’s undesirable to do that.
For each of those workarounds, the number of property changes streamed to the client per second is increased by 60, which really starts to be a problem when you multiply this inefficiency by 100 rockets.

Really, the biggest limiter of firepower in the game I’m making is the lack of a BodyForce that orients parts with a forcefulness and orientation dependent on velocity, since the constant manual BodyGyro or AlignOrientation updates give the server way too much data to replicate.
And that’s a big problem, since the entire point of the game I’m making is to have a bigger excess of firepower than any game in Roblox history.

Try making the rockets non collide-able or set up collisions. I noticed it happens when your character switches their position and also the rocket collides with the launcher it self.

That’s not the problem.
The problem is that the rocket will travel through the air and then spontaneously start to tumble.

Don’t use Roblox physics. Just send Position and lookVector to other clients and all clients simulate it on their computers. You solve multiple problems like this.

https://devforum.roblox.com/t/flying-projectile/50547/16

And here all of your problems about efficiency, latency and drag are solved.

Most of the time if you’re doing small projectiles, it’s better to write the physics yourself.