
For the past two decades of professional Counter-Strike, every match has featured two teams of exactly five players. This is also true for other esports, like League of Legends and Dota 2. These MOBA titles feature five distinct roles, characterised by resource priority and the positions the players work in. They share role archetypes, like primary damage dealer (carry), supportive utility player (often a healer), and resource collectors (junglers, top laners, etc.) Though not identical in implementation, it's very easy for any professional team to have its players sorted into unique responsibilities.
Counter-Strike, conversely, does not make it obvious how the players are supposed to be categorised. Many attempts have been made to come up with five non-overlapping roles that can consistently be applied to all teams in the tier one scene without creating obvious outliers. These have been predicated on different observable patterns and traits, such as each player's responsibilities, the public expectation of them, the positions they play, and so on. Keep the following criteria in mind as we tour how the different player grouping methods have changed over time:
| Criterion | Guiding Question |
|---|---|
| Role exclusivity | Can each player be assigned exactly one role without overlap or ambiguity? |
| Cross-team consistency | Do players with the same role on different teams perform comparable functions and behaviours? |
| Playstyle insight | How well does the role explain or predict a player’s in-game tendencies? (Aggression, lurking, weapon / utility usage.) |
| Impact clarity | How effectively does the role describe a player’s influence on round and match outcomes? |
| System context | How well does the role capture a player’s place within team structure, average positions on maps, and resource distribution? |
The primitive model of roles (job-based)
During the humble beginnings of Counter-Strike: Global Offensive, professional teams were challenged with blending concepts and skill sets from two rivaling scenes: CS: 1.6 and CS: Source. The most successful among these was the now-infamous Ninjas in Pyjamas squad, whose duo of GeT_RiGhT and f0rest joined forces with Fifflaren and friberg to dominate early LAN events. This team epitomised the most primitive model of roles in Counter-Strike:
| Role | Player |
|---|---|
| IGL | Xizt |
| Entry Fragger | friberg |
| Lurker | GeT_RiGhT |
| AWPer | Fifflaren |
| Trade Fragger | f0rest |
It was extremely common to see "entry fraggers" like friberg and apEX hitting 30% or higher opening duel attempts on the T-side and being the first player into a site on every site execute. It was also extremely common to see "lurkers" like GeT_RiGhT and Happy spend most of their T rounds slowly creeping on the opposite side of the map to the rest of their team. Their jobs were clear.
For that reason, this carried a lot of signal (at the time), quickly informing you about each player's responsibilities at a glance. IGLs are calling the shots, entry fraggers are going in first, support players are throwing the smokes and flashes, AWPers are providing long-range cover with the big green sniper, and lurkers are creeping around the back. It was typically always the case that your AWPer and lurker were getting the most resources, while your support player and IGL did the grunt work, and the entry fragger's mileage varied.
This model wasn't without growing pains, however. In the NIP example, Xizt was not a pure in-game leader and often delegated calling responsibilities to his teammates. Fifflaren especially was taking on a lot of supportive duties compared to more "star" AWPers like kennyS and Nico, which is precisely why we've had to label f0rest a "trade fragger" instead of a "support" player. It also doesn't care at all about CT roles, electing only to describe how players organise themselves when the ball is in their court, instead of whether you're rotating or anchoring for the other half.
The star model of roles (expectation-based)
As the game evolved, the job-based model started to show cracks. A great example is with the major-winning Luminosity / SK team, whose Brazillian super stars refused to sort themselves into neat boxes. FalleN was AWPing and IGLing, which wasn't unprecedented at the time, but it was unusual how his calling served to set himself up for plays and opening picks, unlike the MSL breed of AWP/IGL who were far from primary fraggers on their squads. fer was nominally the entry fragger, but his opening kills were on his own terms, and rarely was he sent in sacrificially during T-side executes. Coldzera was the closest thing to a lurker, but he spent much more time at the back of the pack throwing utility and getting trade kills than roaming solo, so the primitive model might consider him a support player.
Coldzera. A support player. Something is very wrong here.
The answer to this traces back to Duncan "Thorin" Shields, who started labelling players based on the fragging expectation placed upon them, not just their in-game habits. Just because you use the AWP, doesn't mean you are a star (even if you probably should be.) You can be an aggressive star, a passive star, or even a star IGL (think: old blameF)—what matters is the fragging output you are capable of and how impactful your performance is on your team's chances of winning. A supportive player getting a few more kills will rarely flip the outcome of a map, but an "X-Factor" player definitely can.
This model, applied to the Brazillians, looks like this:
| Primitive Role | Star Role | Player |
|---|---|---|
| Support? | Star Player | coldzera |
| Entry Fragger? | Second Star | fer |
| AWPer | AWPer | FalleN |
| Lurker? | X-Factor | fnx |
| IGL? | Support | TACO |
He provides his own example with NAVI, where b1t is a clear "X-Factor" upgrade over flamie, complementing the star AWPer s1mple and second star electroNic. Note that this model does not attempt to convey any information about the player's playstyle, but rather their expected impact on the game.
The HLTV model of roles (a modern approach)
Mostly owing to the work of Harry "NER0" Richards in 2022, the HLTV model of roles started with a content piece they called the "Big Five" (and are now calling "All Stars"). It employed the following premise: how can you construct a team using the best players from an event where the team structure makes functional sense?
By modernising the primitive roles into more flexible alternatives (e.g. entry fragger: opener, lurker: closer), adding a necessary positional role (anchor), and selecting for high performance (stars), this blended method yields a neat way of producing strong squads that would probably work in practice as well as on paper. Language barriers and role-hybrids (e.g. AWP/IGLs) aside, this method is applicable to a lot of top modern teams. It also does a remarkable job of conveying the types of playstyles that players exhibit: openers are very aggressive and typically pack players, while closers are very passive and typically lurkers or trade fraggers. Anchors tend to be supportive, but don't have to be. There is decent explanatory power here.
However, there are two notable drawbacks to this model. First, by using much looser terminology, you lose some mutual exclusivity. Consider ropz in the year 2022—was he an anchor, or a closer? The answer, of course, is both. Similarly, consider FalleN in 2016—was he an IGL, or an AWPer? Both, of course. Finally, consider flameZ in 2024—opener or anchor? Both, again. Clearly, this approach has its problems with exclusivity. We didn't have to think particularly hard to come up with those, either. To their credit, HLTV do implement a band-aid for this by slapping a sixth "Flex" role on players that don't quite fit.
Secondly, just as the stars model deliberately doesn't care about playstyles, the HLTV model isn't optimised for non-stars. A team like 3DMAX will never have a clear opener, closer, or anchor, because they do everything by committee, and thus have five players who are kind of average at everything instead of a hierarchy of fraggers.
The rdy.gg model of roles (hierarchical)
Our strategy for assigning roles is the most novel of the bunch, and is derived by assigning roles at different levels and aggregating upwards. It's cheating a little bit, because this is really three different role systems wearing a trench coat. One at the side-level, one at the map-level, and one at the team-level. Put simply, we look at each each player's positions, playstyle, and resources to assign both a CT roles and a T role with corresponding "star points", before ordering the players by overall star points.
If you play Connector on the CT side of Mirage, you will have pretty high "star points" because that is typically a high-fragging position. But if you play it like an IGL (with low resources and a lot of utility usage), you might get fewer "star points" than a high resource anchor player (e.g. ropz or HeavyGod.)
Take the following example of Spirit vs FURIA on Mirage at IEM Krakow 2026. YEKINDAR and donk are both spacetakers on the T side, but YEKINDAR is "set up" by his team considerably less, so donk has higher T star points. Similarly, KSCERATO and donk are both Connector players on the CT side, but KSCERATO isn't dropped AK-47s as much and is doing considerably more supportive utility work, so donk has far higher CT star points. FalleN also has nearly double the star points of magixx, despite both being IGLs, because FalleN gets to pull out a secondary AWP on the CT side and is a much more resource-heavy IGL.
CT-side star points, T-side star points, and some extra playstyle features are fed into a machine learning model to produce overall star points for the map, like so:

So now we have T roles and CT roles for a map. What about overall roles? For each team, we order the players by star points and assign overall roles in the following order: AWPer, star rifler, second star, support, IGL. Note that the IGL doesn't technically have to be calling; in systems with an AWP/IGL, for example, the most supportive element will naturally replace them. This is heavily influenced by the star model from earlier, but now it cares about positions, resources, and playstyle.
Here are some teams of interest using data from tier 1 events so far in 2026:
| Team | AWPer | Star Rifler | Second Star | Support | IGL |
|---|---|---|---|---|---|
| Team Vitality | ZywOo | ropz | flameZ | mezii | apEX |
| FURIA | molodoy | YEKINDAR | KSCERATO | yuurih | FalleN |
| Team Spirit | SH1R0 | donk | zont1x | tN1R | magixx |
| Falcons | m0NESY | kyousuke | NiKo | TeSeS | kyxsan |
| MOUZ | torzsi | Spinx | xertioN | Jimpphat | Brollan |
| PARIVISION | Jame | xiELO | nota | BELCHONOKK | zweih |
| The MongolZ | 910 | cobrazera | mzinho | Techno4K | bLitz |
| Natus Vincere | w0nderful | makazze | b1t | iM | Aleksib |
| G2 Esports | SunPayus | MATYS | HeavyGoD | malbsMd | huNter |
| Aurora Gaming | woxic | XANTARES | Wicadia | soulfly | MAJ3R |
| FaZe Clan | broky | frozen | Twistzz | jcobbb | karrigan |
| Liquid | ultimate | NertZ | EliGE | NAF-FLY | siuhy |
| Astralis | phzy | ryu | Staehr | jabbi | HooXi |
| BC Game | s1mple | electronic | aragornN | krazy | MUTiRiS |
The main benefit of this hierarchical model is that we can start at the top level and get an answer to the question "who is this team's system setting up to succeed the most?" Then, we can peer one level deeper and see how they are being set up, on what maps, and in what circumstances. Notice that most star riflers in the table above are aggressive spacetakers on the T side and primary rotators on the CT side. We can immediately glean insightful information about the current meta.
So how does this method shape up according to the criteria? Here's a final chart for you:

Isn't that neat? Under this model, there is a consistently near-equal jump (~0.04 KPR) between each role, and it's ordered exactly how you would expect. We believe this is the closest you can get to a fair, balanced role distribution, and that is why we are integrating these side, map, and team-level roles into our site in the near future.