JoinGG.cc
Analysis

What a server knows about its players

An ordinary game server records far more than players assume: the IP address and account ID behind every connection, every chat line including team chat, commands such as private messages, and past names, with plugins, ban tools and stats pages adding more. Much of it stays until someone deletes it, and any admin with access can read it. Careful owners set retention periods, limit who sees what, and tell players what is logged.

By SweetMask · · 4 min read

Players tend to assume a server knows a name, a ping and a score, and forgets them at disconnect. An ordinary setup keeps much more: the IP address behind every connection, an account ID tying every session together, each chat line including team chat, and the names someone used before. Much of it stays until somebody deletes it, and any admin with access can read it.

What an ordinary setup writes down

Take a Source or GoldSrc server with logging switched on. Every connection writes a line that pairs the player's name and Steam ID with the IP address and port they came from. Every chat message is logged, and so is every say_team message, which the other team never saw but the person reading the log file does. Name changes get a line of their own.

Minecraft servers tend to add plugins for the same job. CoreProtect, a logging plugin used for rolling back griefing, keeps block changes and chest access, and also chat, commands, sign text, logins and logouts, and username changes, all searchable by player and time. A private message sent with /msg is a command like any other.

FiveM goes further by design. Its scripting API gives every server a list of identifiers per player that can include a Rockstar licence, a Cfx account, Steam and Discord IDs, and the IP address. It also offers per-player tokens, which its own documentation suggests for strengthening ban logic, and ban scripts use them for exactly that.

Then come the tools around the game. A ban database shared across a network keeps the Steam IDs, and often the IP addresses, behind every ban it has issued. A Discord linking plugin ties a game account to a Discord account, and with it to everything that person posts in the community's channels.

The stats page that told everyone

Older stats packages published more than most players realised. HLstatsX: Community Edition, still maintained in forks and still run on Source servers, ships with chat logging switched on and includes a public chat history page. It keeps every name a player has used, and its default greeting announces each arrival to the whole server with their rank and the country their IP address resolves to. Its player records hold the last IP address too, along with a city and map coordinates wherever GeoIP lookup is set up. Few regulars thought of a stats site as a record of what they had said, or of roughly where they lived.

Why players underestimate it

A player sees the game: a scoreboard and a chat box. Nothing in the client mentions that team chat went to a file, or that a whisper now sits in a database beside the coordinates of every block placed that evening. Admins see the other side every day, and after a while it stops feeling like information about people.

That gap explains a familiar surprise. A player who changes their name or connects through a VPN is often recognised quickly, because the account identifiers underneath did not change. The guides on whether to block VPN players and on detecting alt accounts without false positives are, read from the player's side, a description of how little a new name hides.

Who can read it

More people than the owner usually thinks. Anyone with console or file access can open the logs, and web panels hand moderators a search box. Ban lists with IP addresses get pasted into staff channels and backups end up on someone's laptop. A former admin whose access was never revoked can still read everything, and the hosting company's staff can reach the files as well.

Every one of those copies is a place a leak can start, which is why logs belong in any honest look at what actually gets servers compromised, next to the passwords and the panel.

How long it stays

Defaults rarely expire anything that matters. CoreProtect keeps its history until an admin runs a purge, and a purge run from inside the game can only remove data older than 30 days. The Community Edition of HLstatsX deletes its event history after 28 days by default, but the player records, with their names and last addresses, stay for as long as the database does. Plain log folders mostly just grow.

For players in the EU, much of this is personal data under the GDPR. The European Commission lists an IP address as an example, and notes that pseudonymised data, such as an ID that can be linked back to a person, still counts. That brings legal obligations, and working them out for a particular server is a job for proper advice, not for this article.

Before the next log rotation

Careful owners make a handful of decisions on purpose instead of inheriting them from defaults.

  1. Set a retention period for each kind of record and let the machine enforce it: rotate and delete logs on a schedule, and purge rollback data older than any griefing case you would still investigate.
  2. Separate what staff need from what they can reach. A moderator handling chat needs names and history; very few people on a team need IP addresses.
  3. Switch off what publishes by default, starting with country announcements on join and public chat history.
  4. Tell players what is logged, in the rules they read before joining, including that team chat and private messages are recorded.
  5. Collect less where children play, which is part of taking responsibility for minors on your server.

When you do open the logs, read them for a reason, and when the reason is a complaint about a named player, write down who looked and why. That note is the first thing anyone will ask for if the decision is disputed later.

Sources

  1. GetPlayerIdentifiers - Cfx Documentation — Cfx.re
  2. Commands - CoreProtect Documentation — CoreProtect
  3. hlstatsx-community-edition/scripts/HLstats_EventHandlers.plib at master · NomisCZ/hlstatsx-community-edition · GitHub — HLstatsX: Community Edition (GitHub)
  4. Data protection explained - European Commission — European Commission

privacylogsserver administrationplayers

More

Analysis

Why Minecraft 1.8 PvP never died

The 1.9 Combat Update split Minecraft PvP in 2016, and the side that stayed on 1.8 never had to move, because plugins let servers keep the old fighting for newer clients.

SweetMask · · 4 min