How to smoothen out the hitbox delay?

NetworkPing is incorrect advice… the position buffer exists to account for packet LOSS not any DELAY

20hz? As in every 20 frames right?

yes. BetterReplication has the set-up for that that the other guy linked to. But beware that it also includes stuff that you should not use in your game. You’ll have to use UptodatePositionHandler script

I’m not going to use BetterReplication as I don’t even really get it, and so I won’t be able to change/update the code if it starts messing with my code

How would the server know which Position to look at from the Character? Also where would I store the Positions? Lastly would I remove some of the positions after a while?

The client sends updates about their assembly rootpart CFrame (through an unreliable remote event (the best approach would be using ByteNet but thats out of the scope for now)). The server receives this data and stores it in a table that can be accessed by any serverscript/module (by making this listener and position table inside one module script).