A Way to Save IP Addresses

Hi, I would like to have a way to show the IPs of users that connect to my server in a little TXT file, but I couldn’t find any on the interwebs.

There’s a lot of ways. However unless you try yourself no one’s going to spoon feed it to you.

Make a folder in your data folder called logger

Then use

local function dologger(ply)

    local stidsanitized = string.sub( ply:SteamID(), 11, #ply:SteamID() )

    if (!file.Exists("logger/"..stidsanitized..".txt", "DATA")) then

        local playerinfo = {
        ["uniqueid"] = ply:UniqueID(),
        ["steamid"] = ply:SteamID(),
        ["name"] = ply:Name(),
        ["ip"] = ply:IPAddress(),
        ["steamid64"] = ply:SteamID64()
        local plyinfostr = util.TableToJSON(playerinfo)
        file.Write("logger/"..stidsanitized..".txt", plyinfostr )

hook.Add("PlayerInitialSpawn", "logging", dologger)

Be aware though that this will get VERY large, VERY quickly.

You clearly underestimate the size of my spoon.

Thank you Lolcats.

local function logIP(ply)

local id = ply:UniqueID()
local path = "logger/"..id..".txt"
local exists = file.Exists(path,"DATA")
local method = (exists and file.Append) or file.Write
local text = ply:IPAddress() .. ' - ' .. ply:Nick() .. ' - ' .. ply:SteamID()

if exists then
	local ips = string.Explode('

if #ips > 1 and ips[#ips-1] == text then


hook.Add(“PlayerInitialSpawn”, “logging”, logIP)
If anything changes then it writes, helps you keep track of which ip belongs to what name and steamid and if any of those change.
edit: late