Yes, handling visuals should be on the client while handling hit detection and such should be on the server for the most secure and user-friendly gun system
Not handling hit detection on the server is like saying
“hey exploiters free game to cheat on xDexD”
There are many ways to deal with latency and “bad hitboxes” I actually made a project of my own and was able to accomplish all of those things. It’s possible but you have to know what you’re doing