Calculating the end of the bullet trajectory is not a good way to do it. What if I calculate the end, but then that part moves by the time the actual rendered bullet goes there? Then the bullet wouldn’t recieve a hit and would keep going with an incorrect angle which is not what I want. Also, my game won’t be about only bullets, there will be other projectiles like looping shots, homing projectiles, which will be difficult to calculate.
I mean, that’s what the time syncing is for. You render some parts and some projectiles in advance relative to the time received, to be accurate with the endpoints because you prioritize the accuracy of the end result over the rendering of the bullet trails and whatnot, but I guess that doesn’t really suit your game.
I think by this point it would be better to figure out a way of aligning your viewmodel with the character to avoid all that complexity, seeing that your game has different kinds of projectiles. It’s a little complicated for me since I’m not an expert on CFrames, but I know there are a lot of tutorials about it already…
Like that one about making FPS games, where you use an AimPart that gets aligned to the camera. You could apply the same logic to your ViewModel’s ShootPart and your Character’s GunShootPart.