https://gyazo.com/293d0654f45186e22fb648f471895fa1
This is what it looks like when I play single player, it looks decent, not too smooth but pretty decent; but when people start to join, the bullets start lagging pretty hard.
Is there a solution to fix this lag that affects my bullets? Thanks.
That little 'hop' where the bullets seem to freeze is almost definitely the network ownership of the bullets switching from the client to the server. You can read more about network ownership on the Wiki, but as the bullet moves far away enough from the player, the game automatically changes its ownership from client -> server (in fact I think it has this exact example because it's a common problem). The solution is to set the network ownership (to the server) yourself before moving the bullet. That's as simple as:
bulletPart:SetNetworkOwner(nil)
This will stop the network ownership changing, hopefully preventing that pause in its flight