Just commenting to say you should avoid repeat wait() until player.Character because you can use player.CharacterAdded:Wait() which is much more performant, efficient and faster, but does the same thing. Though I wouldn’t use ping or fps as a sufficient method of anti-reach. I have 250Mb internet, but my ping to roblox games is almost always 110+:
Anti reach can be done more effectively by measuring the distance between the two players on hit and do server side hit reg. Also, you shouldn’t kick players for these reasons, just reject their hit and maybe log it somewhere, but over aggressive anti cheats are worse for players than no anti-cheat at all.
Thank you for your feedback! I plan on adding kill logs, so if a player kills another player and the distance between that is over 10, It’ll kick them.