Projectile system

I have made a projectile system in the past that was too unexploitable, but this came at a cost of accuracy of the projectile, let me explain:

The way I made it unexploitable was to have 2 bullets, one would be on the client side simply for cosmetics and realism and the other bullet would be on the server side which would handle the damage, the server side bullet always lags behind the client side bullet due to the delay in server to client replication (this is with every projectile system due to Roblox)

But this creates a problem, because the client bullet and server bullet wouldn’t hit in the exact same place, so if a player was hit by the client bullet but not the server bullet then they wouldn’t take damage, and vice versa, if they were hit by the server bullet but not by the client bullet, then they would take damage but on the client side it would show they were not hit.

(Just btw most of the time it was accurate)

While this method was unexploitable, as you can see it would create accuracy problems, which was felt hardest when it came to exploding projectiles, the explosions would end up being in all the wrong places.

I want to start fresh and make a projectile system with good accuracy but also exploit proof as much as possible, any ideas on how to go about it?

Any ideas appreciated!

Sorry if this was long-winded :face_with_peeking_eye: