When I do this, the bullet travels in the right direction then pauses for like 0.1 seconds then continues traveling, so if you are close to someone then your shots will not hit because of that slight delay.
The way you’re handling parenting, network ownership aside, also plays a part in this. The way you’re doing it is pretty bad for performance. Specifically how you set properties before the parent.
Therefore, I suggest you combine network ownership with appropriate instancing. Set properties, then the parent. After everything’s done, put the bullet in the workspace.