How we count SoF2 players
Where the numbers come from, how bots are filtered out, and their limits.
SOF2MP.COM counts the people playing Soldier of Fortune II: Double Helix online by asking every public game server who is on it, every few minutes, around the clock. We have done this since October 9, 2026 and recorded 13,842 hours of real play. This page explains exactly how, and where the numbers can be wrong.
1. Finding the servers
The list of servers comes from the community master server list (1fxmod.org), the same list the in-game server browser uses since the official one closed. Servers added by hand are included too, and a server stays on our list for 3 days after it drops off the master list, so a restart doesn't make it vanish.
2. Asking every server, every few minutes
Every 2 minutes we send each server the standard "getstatus" query — the same question the game asks when you refresh the server list. The reply has the server's settings, the map and game type, and every player's name, score, ping and team. All servers are asked at once, and a server that doesn't answer within 2 seconds counts as offline for that round.
3. Telling humans from bots
Servers don't say who is a bot, but bots always report a ping of 0. Anyone with a higher ping is counted as a real player. Spectators are real players too: they count as online, but not as playing, so they don't add play time or match results.
4. Counting each player once
Many servers run two ports, one for version 1.00 and one for 1.03 of the game. When two ports report the same game, they are merged so nobody is counted twice. A full server's reply can be too big to arrive; then we use the short "getinfo" reply, which has the player count but no names, and assume its bots haven't changed.
5. What a "player" is
SoF2 has no accounts, so a player is a name: colour codes are ignored, and upper and lower case count as the same. If someone changes name they show up as a new player — unless they verify their names on SOF2MP.COM, which links them together and counts them once. "Different players" in a period means names with any play time in it.
Default names that thousands of people share are not tracked as players: Player, UnnamedPlayer, Padawan, Unnamed.
6. Play time and peaks
Each round of queries adds 2 minutes of play time to everyone playing on a team. "Most online at once" is the highest number of real players in a single round, so short spikes between rounds can be missed. Times are shown in UK time.
7. Matches, MVPs and ratings
A match starts when real players are on a team and ends when the map or game type changes, the team scores reset, or the server goes quiet for 10 minutes. The MVP is the top scorer. Ratings use the Elo system: everyone starts at 1000, and after a team game with a winner and real players on both sides, ratings move by up to 32 points depending on the result, the other team's rating, and how much of the match you played (at least 2 minutes).
8. Server locations
A server's country comes from its IP address (looked up with ip-api.com, refreshed monthly), with manual corrections where a hosting company's addresses are listed in the wrong country. It is where the server is hosted, not where its players live.
9. What we keep, and for how long
Totals per hour and per day for the whole game are kept for good, so the history stays complete. Per-server hourly detail is kept for 180 days, play sessions for a year, the live activity feed for 90 days and raw snapshots for 2 days. We only store what servers publish to anyone who asks: names, scores, pings and teams — never players' IP addresses, which servers don't share.
10. Where the numbers can be wrong
- Servers that are private, LAN-only or block queries are not counted.
- A bot that fakes a ping above 0 would be counted as a human (we haven't seen one yet).
- Two people using the same name count as one player; one person using several names counts as several, unless they verify them.
- If our tracker is down for a while, that time is missing from the history rather than estimated.
11. Using the data
The numbers are free to use. Please credit "SOF2MP.COM" with a link. For live use there is a JSON API:
- Live totals:
https://www.sof2mp.com/wp-json/sof2/v1/live - Every server, live:
https://www.sof2mp.com/wp-json/sof2/v1/servers - Population history:
https://www.sof2mp.com/wp-json/sof2/v1/population
Method last updated October 30, 2026. See the player count
