Hello, I have a rough idea of how this would work, but I would like some suggestions on what else I could do.
My idea is to create a CFrame value with a local script that fires a remote telling the server-side where the client is. I’ve tried this, and it is slighly accurate, but the hitbox goes to one side when turning the character in shift-lock.
No, this wouldn’t work. The problem with your model versus the client-server model is that there is always going to be a difference between where the server thinks you are, and where you are. It’s always going to be behind by your latency.
Telling the server where you are won’t work, you’re already telling the server where you are just by playing.
One method you could try is using prediction. Based on the characters velocity and movevector, predict where the character is. You could even take into account ping for it.
Prediction mechanism without correction abilities are easy to trick and abuse, your best bet is just to keep client sided hitboxes and to inform the server of any hits you register, then doing santy checks on the server
Client-sided hitboxes are even worse. The last thing you should handle on the client is hitboxes. It’s quite literally, THE GAME. I would definitely not do this.
When it comes to latency problems, everything is bad. It’s all about making it less bad.
Client sided hit detection lets you keep visual accuracy for the controlling player and also lets you take care of some on-hit visual straight away for player feedback, with proper sanity checks on the server you keep it relatively fair too