For those who enjoy Counter-Strike community servers, the situation in Counter-Strike 2 is rather dire.
An avalanche of spam has rendered the server browser unusable. The transition from Global Offensive killed multiple small communities. And large server providers have taken advantage of these problems to monopolise the market.
Trying to find a server either involves capitulating to these big vendors, or trawling through a trench of spam.
Scraping the server browser allows us to have some insight into the state of the market.
Getting the servers
The first task was extracting servers from Valve’s master list.
This is not a trivial matter: Valve provide a REST endpoint for doing so, but the endpoint is restricted to ~10-50k results per query, and does not provide any pagination support. This is because the data is extremely volatile, changing on every single query.
You can provide query parameters to change what servers are returned. By performing multiple segmented queries (i.e. by polling for maps individually, querying by different regions), and polling over a long period of time, we can gather a lot more servers.
The best way to approach this technique would have been to replicate Steam’s server browser. However, this would still require segmentation (due to the volume of servers), and has a messier authentication story. ] After pulling this data, I threw it into a DuckDB database to analyse.
The spam problem
Across an hour period with ~1.1m active players, we pulled ~92,000 community servers with ~500,000 players. We pulled ~144,000 Valve servers, with ~910,000 players.
There is already a problem here: there are nearly 400,000 unexpected players.
While our method of sampling players has double-counting issues (if a player moves severs), this discrepancy is mostly explained by fake servers.
Changing the query for community servers to only count servers with less than 32 players, we drop down to ~300,000 players.
Even doing this, we have multiple fake servers:
This is a slightly stricter query, but we couldn’t use this because a legitimate server provider has a cap set to 64.
Many servers are entirely fictitious. You create 100 servers filled with 256 players (which is not possible in CS2), and then have them all link to one real server under the hood.
For a regular user, this is the experience of trying to find a community server.
There are two forms of spam: by spamming the server with a lot of real servers, or by creating fake servers with misleading data.
To give a sampling of what this looks like,
1290 servers with the name 'Registre-se e jogue @ gamersclub.com.br' These are legitimate but inaccessible servers for the third party matchmaking service GamersClub. FACEIT, the biggest third party service, used to engage in this practice, but appear to have stopped doing so.
650 servers with the name MIRAGE | ЧИЛОВЫЙ СЕРВЕР #3 , and another 650 servers with the name MIRAGE | ЧИЛОВЫЙ СЕРВЕР #1 . These servers are fake. Joining one of them will connect you to a server within their network, but not the one you clicked on.
, and another 650 servers with the name . ~2000 servers with the prefix stalnoy , with a total of 0 players.
, with a total of 0 players. Servers with the name “GPT*” had a combined total of 1238 players across 18 servers, for an average of 69 players per server. The servers had a max player limit of 64. All the servers were running Dust 2 and Mirage, maps designed for 10 players.
The big fish
To identify server providers, the server name was broken down per word (and cleaned up), common words (like “mirage”) were removed, and then for each word, a cumulative total of various statistics was gathered.
Rank Keyword Total Players Server Count Avg Players per Server 1 fb-csru 58,755 1654 35.5 2 cybershokenet 15,233 2177 7 3 napas 13,528 303 44.6 4 csbullnet 8,615 239 36 5 cybersm9s 6,033 159 37.9
From the get-go, we can spot some problems. If the average number of players per server is above ~30, the likelihood of it being spam is high.
“fb-cs.ru” report ~300 active players on their own website, a vast discrepancy from what we see in the server browser. That is nearly 58,000 fake players within our data set.
When removing all servers over 32 players, you get this slightly better list.
Rank Keyword Total Players Server Count Avg Players per Server 1 cybershokenet 15,162 2175 7 2 fb-csru 11,354 862 13.2 3 napas 4,349 153 28.4 4 legcs2ru 4,335 4144 1 5 xplaygg 3,462 905 3.8 6 tverpubspace 2,729 172 15.9 7 r0对战平台天梯服务器 2,097 500 4.2 8 csbullnet 1,678 129 13 9 r0对战平台天梯服 1,616 164 9.9 10 fastcupnet 1,549 328 4.7 11 cybersm9s 1,298 67 19.4 12 m9snoi 1,128 73 15.5 13 discordggcolateam 1,010 42 24 14 pracccom 961 457 2.1 15 hollycs 919 45 20.4 16 refraggg 908 937 1 17 gamersclubcombr 863 1293 0.7 18 registre-se 857 1292 0.7
We still have a lot of fakes. “napas” is a fake provider, and anything averaging near 20 players with over 30 servers should elicit suspicion.
CYBERSHOKE is the primary English speaking provider, and dwarf their competition in xplay.gg.
Whereas server providers used to target a small smattering of game modes, they have a smorgasbord of options:
Spam benefits these big providers
These big providers have every single popular game mode, a large user base, and an attractive website with all of their servers. As the server browser becomes less and less useful, users will gravitate towards one-stop shops.
While server groups have existed before, this is a whole new level in size and scope.
When you become this big, you no longer need to rely on volunteer work to maintain servers: you can hire full-time developers and administrators.
A translated screenshot of an advert from Cybershoke, searching for a C++ developer.
Job vacancy for a marketing employee on a Russian job board.
Small providers will have a harder time
If you invent a novel game mode, you had a first movers advantage. But if you are a small provider, this is no longer the case.
Advertising your game mode is harder, because the server list is broken, and the market is top heavy,
If your game mode proves successful, the top servers will have it cloned quickly, because they have the developers to do so,
As a smaller provider, you will be outdeveloped because the bigger providers have the resources,
The CS:GO to CS2 transition is a large part of the problem. Previously, these game modes and server communities developed naturally, leading to many small minnows.
But as the transition required a total re-write, these big providers could quickly establish first movers’ advantage by hiring full-time employees to replicate everything.
I was personally fond of a group called XGC, who had these wonderful execute servers (from what I understand, they mostly pioneered the format). The transition to CS2 killed them: first because they struggled to port over the game mode, and then they were outcompeted by these mega groups.
The two groups offering executes now are CYBERSHOKE and hjemezez. hjemezez operates similarly to CYBERSHOKE.
Economics
Historically, server networks were paid for in the following ways:
The generosity of the owners,
Advertising, either via the Message of the Day, or chat messages,
A small group of generous donators.
An example of a MOTD loading a HTML page. Pinion was an infamous group for using this vector to serve adverts.
In the modern meta, big server networks have “premium” subscriptions, and have advertising from gambling providers directly in-game.
Alternative server browsers
In the wake of the spam, people began creating their own wrappers around the server browser.
One prominent one was cs2browser.com . This was lauded by the community as their savior. Alas, good things don’t last, and they were acquired and integrated by a gambling provider.
In Clash news, We have purchased cs2browser.com , we will be adding this tool to stash and make it the largest map/server database for all of CS2. More big updates coming to Clash, RustClash and CasesGG soon! Twitter
Saido was a competitor launched around the same time, but never gained any traction and now lays dead.
From what I can see, CS2ServerList is a decent competitor. FindServers is a niche project attempting the same thing (and was valuable in figuring out how to do this!), but from replicating their algorithm, they’re probably only pulling a small segment of the servers.
Conclusion
When people yearn for the days of community servers, this is not what they’re expecting to see. Small groups, with admins so readily available, they could be your friends.
The biggest names in the space aren’t communities. They’re faceless corporations.
For communities to grow, the environment has to be acceptable to it. The old environment, with a usable server browser, keeping the costs of advertisement low, no longer exists. To compete in this space, you have to reach your users somehow, and the big providers have all of the weapons to pummel you before you even start.
Evidently, Valve should do something, at least about the spam. But they’ve been asleep at the wheel for years now.
This should be a warning sign to any game wanting to have community servers. This is not a feature you leave running in the background. It requires maintenance. When your game becomes big, bad actors will emerge into your space.
Leave it too long, and community servers cease to be a community at all.
Post-script
Skin changers: !ws
!ws is a command that allows players to change the skins on their guns. This was a standard plugin for many years, until Valve banned it in 2015.
However, looking at the server list, you wouldn’t realise this. CYBERSHOKE actively advertises it as a feature of their Premium subscription.
Valve never actually enforced this in any meaningful way. Outside of a wave of bans in 2015 and 2016, this has mostly been ignored.
There are two main ways server providers avoid this restriction,
Creating plugins that Valve do not have detections for,
Using massive numbers of Steam accounts to generate tokens on. Using a script, if a server happened to get banned, you pull a new Steam account from your bank, generate a new Game Server Login Token, and move on with your day.
Once again, these are things bigger providers are more capable of doing, giving them yet another leg up.