These kids have been coming in my server and spoofing their Steam IDs to show up in status as the same as others. Any ideas on how I should be making an anti-spoofer? Would making a table with all connected Steam IDs, then checking for duplicates each time someone joins work?
FlapJack or someone really smart, please see this thread :D:D:D:D
I think your idea would be best, just to kick an ID if it’s already on the server. I think this would work…
hook.Add(“PlayerInitialSpawn”, “CheckSteamIDs”, function( ply )
–local connectingPlayer = ply:SteamID()
for _, v in ipairs ( player.GetAll() ) do
if (ply:SteamID() == v:SteamID() && ply:Nick() != v:Nick()) then
–Kick their asses, ban them, put them in a cage… Don’t kick by SteamID, kick the actual spawning player
The theory here is when they first spawn (Not when they connect, as their ID may be wrong or PENDING there), check against all the other players. If they match (Which I think it will, as they’ll be part of player.GetAll(), make sure their name isn’t the same, so they’re not finding themselves.
Not an ideal solution, just rushed this out. It’s psuedo code. Try UniqueID instead of Nick.
I’ve always been using [lua]for _, v in ipairs ( player.GetAll() ) do[/lua] and I completely forgot that it could be used for something like this. Thank you. I’m stupid. I’ll wait for a few more responses and ideas before I start with this, though.
[editline]11th December 2010[/editline]
It definitely is possible. Unless someone’s delayed ban hasn’t kicked in yet. I had someone with a spoofed ID on my server today.