Anyone know why this happened?

So I had group random ghosters on my server they kept ghosting rdming and breaking most rules on TTT
either way whenever I banned either of them they kept rejoining
this is first time I saw some1 rejoin after getting banned
They had different steamID each time I could swear that I got 1 of them banned 4 times
Is it possible to somehow overcome a ban or was he just using multiple accounts?

Probably using Steam Family Sharing.

Have you tried IP ban?

If it’s a different SteamID, then it’s a different steam account.

You could apply both IP bans and Steam Family Sharing bans (if the game owner is banned), to overcome most of the ban evasions.

Yeah Family sharing would do the trick.

Family sharing is not working for Garrys Mod if i know, and even if you family share it, the steam ID will be the same as the guy who shared it

It does.

[lua]local APIKey = “my steam api key lOL” – See http://steamcommunity.com/dev/apikey (DONT ABUSE PLS)
local function MingeCheck(ply)
local i_id = ply:SteamID()
CheckThem(i_id, ply, false)

http.Fetch(
    string.format("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key=%s&format=json&steamid=%s&appid_playing=4000",
        APIKey,
        ply:SteamID64()
    ),
	
    function(body)
	
        body = util.JSONToTable(body)
        if not body or not body.response or not body.response.lender_steamid then
            error(string.format("FamilySharing: Invalid Steam API response for %s | %s

", ply:Nick(), ply:SteamID()))
end

        local lender = body.response.lender_steamid
        if lender ~= "0" then
		--	FUNCTION TO COMPARE TO OTHER STEAMIDS
        end
    end,
   
    function(code)
        error(string.format("FamilySharing: Failed API call for %s | %s (Error: %s)

", ply:Nick(), ply:SteamID(), code))
end
)
end
hook.Add(“PlayerInitialSpawn”, “CheckMinge”, MingeCheck)[/lua]

credits to whoever