Best way to make accurate projectiles

I’m building a projectile system and want to know the best way to move projectiles. Should I use ApplyImpulse, LinearVelocity, BodyPosition, or something else?

I need the projectile to move at a constant speed toward a point (like the mouse position). What’s the most accurate and efficient method?

Use none of those, instead opt for raycasting. Much safer, smoother and basically the best way. Then create a part and move it towards the raycast end; starting from the gun muzzle.

More into raycasting and TweenService:

1 Like

I made projectiles in my game, and the way i did it was had my projectile in replicated storage, then when the pkayer clicked, send a remote event to the server with parameters of the players mousePos, using :GetMouse.Hit.Position or without the position, im not completely sure, then on the server i copied the projectile, parenting it to workspace, then tweening it to the mouse position. There is a way of making constant speed, but i cant find out how i did it previously.

Works fine, although for an optimization i recommend using a part cache like ObjectCache - a modern, blazing-fast model and part cache!, or just writing your own (it’s extremely simple), instead of creating new instances every time, it just creates them once, positions them very far away and when you need the instance, it just grabs you one of them, and returns it, then when you are done with using it (when you would :Destroy() the bullet), you just give it back to the module, which cframes it very far away again, basically reusing the same parts over and over

1 Like