Have you checked the relevant part of the documentation? If you want to use the bullets own collisions you’ll have to configure its collisions and then rely on that, whatever it hits is whatever it hits.
Then again, “projectile” ususally means projecting the bullets path, i.e. casting a straight ray (or shape) snd seeing what it intersects with. This too can be configured.
Models are irrelevant, they are just a way to group parts together. It is shapes you are launching, those have a physical body that can partake in collisions and the corresponding properties. Then again, it should be enough trowing a simple ball as the bullet’s physical body, I doubt every part of an actual bullet model needs to be involved in collisions.
So here’s the basics of what you need for a bullet projectile:
First, operate on the client. The server will have an immense strain if it needs to keep track of dozens to hundreds of projectiles each second (roughly the average of an FPS game). When the client shoots, create a bullet part via localscript and then create a loop connected to RenderStepped. Preferably each bullet is contained in a table and ran under a single loop for performance’s sake, but I digress.
Each time the loop iterates, reposition the bullet forward by however fast you want it to go times the delta (time since last renderstepped). This makes it as smooth as possible on the client, while not inherently changing the bullet speed if the client has high or low FPS. There is more stuff you can add like add gravity and drag, I reccomend you get the basics done first though.
Now then there’s hit detection. Use a raycast that is shot from the bullet’s position from the last iteration and aimed at where the bullet currently is. If the raycast hits something, stop the bullet and fire to server. You can also use multiple raycasts for larger projectiles or ones with bizarre shapes.
Lastly the server’s role is to sanity check and tell other clients to replicate bullets. Make sure the client has enough ammo in their gun, they could reasonably have hit the target, and send the basic data of the projectile to other clients so they may create a visual-only version of it.