/dev: Removing Cheaters from LoL

Fighting the good fight against botters, scripters, and boosters.

If you're reading this, you’re probably not banned from League of Legends, and that usually means our paths haven't crossed before. Like the cheaters we oppose, we're regularly forced to work in the shadows, often remaining silent to occlude our detection methodology or avoid bringing unnecessary attention to the cheat providers themselves. The lack of direct sunlight improves our programming ability and also protects us from those that don't always fight fair.

Anyway, we’re your friendly Anti-Cheat team, and we figured the end of another LoL season would be a great time to: 1) Share some metrics on the cheats that annoy us the most, 2) Remind everyone that fair video games are our favorite type of video games, and 3) Make an attempt at the world record for Cheaters Suspended (Guinness, please return my calls).

WHAT IS THE ANTI-CHEAT TEAM?

Anti-cheat teams generally focus on protecting a game from issues that might affect its competitive viability, taking an interest in any mechanism, application, or strategy that allows for an unfair advantage. We also decide when these techniques are intentional game design (selecting Malzahar) or disallowed (gettin’ boosted for that slick Gold border).

There are several methods at our disposal for dealing with unsavory behavior, but we tend to categorize them into three categories: prevention, detection, and deterrence… or as we like to call them, the Resplendent Echelons of Justice™.

  1. Prevention: The idea here is to enforce designs or implement roadblocks that prevent a player from cheating at all, that way we don’t have to rely on anyone’s moral fortitude to avoid the siren song of an “easier” path.
  2. Detection: We catch what we can’t prevent. Methodology varies wildly, ranging from the ever-evolving fight for control of client memory to cutting-edge machine learning models trained on player performance.
  3. Deterrence: Sometimes you gotta swing the hammer. While it might take a few banwaves for the message to really sink in, punitive measures can encourage restraint or even give catharsis to the innocents caught in a cheater’s wake.

For other lectures concerning our technical strategy, you can hear our boy Michael VanKuipers babble on about encryption and debugging in his recent tech blog post.

WHY IS THERE AN ANTI-CHEAT TEAM?

Because some players cheat. People like to win—or more importantly, they like the prestige that comes with winning. Cheat vendors want to capitalize on the status associated with skill for their own financial gain (or occasionally, internet acclaim). It is our intention to ensure that this is not a profitable endeavor, and that you never have to go digging for malware to stay competitive.

To keep it quotable, if we want League to be taken seriously as a sport (and we do), the competition all has to play by the same rules. If you can just buy the trophy, it’s barely worth the weight of the bronze it’s cast in.

WHO IS THE ANTI-CHEAT TEAM?

An entire gaggle of hackers, complete with trench coats, monitor palaces, and screens constantly rendering a barrage of openGL rectangles. We’re comprised of a few ex-cheat developers (to give us street cred), some data scientists (to make our graphs pretty), and an analyst or three (to keep everyone banned into the next century).

With several different disciplines of ninja at our disposal, we’ve implemented some potent mixtures of protection and identification technology.

WHERE IS THE ANTI-CHEAT TEAM?

Right behind you.

WHAT’S NEW IN 2018?

Recently, we flew out to Shenzhen for a bootcamp with the anti-cheat grandmasters at Tencent. China’s cheating landscape plays on the Inferno difficulty, and working together, we’re developing new ways to identify those that provide cheats in the first place. From boosting service takedowns to stealthier detection systems, we’re creating a global standard for what players should expect in competitive video games.

CHEATING IN LEAGUE OF LEGENDS

Service announcement complete, let’s get this party started.

Sometimes people find themselves banned for cheating (much to the disappointment of their parents), and it’s typically the result of one of three things: scripting, boosting, or botting.

Scripting

League is a server-authoritative game, and every client connects to an instance that manages the game state. What this really means is that the type of cheating you see isn’t normally going to be crazy exploits like godmodes or map hacks (we can patch those out), but rather attempts at performance automation. Perhaps the most influential type of cheating in the MOBA genre, “scripting” refers to having an external program execute inputs or counter abilities on your behalf (like aimbots, cooldown trackers, and combos), allowing for unfair, superhuman gameplay.

No one wants to give a Diamond border to a spacebar.

The way this is usually implemented is a little involved. First, some hacker will come along and disassemble the game client using specialized software and raw talent. They’ll determine where all the important game functions are, writing custom code to reference them. Finally, they’ll inject this disease into the game, exposing an API that allows other developers to write automatic scripts or champion-specific logic. Optimistic cheaters run these scripts in their games, briefly impressing their friends with their ability to orbwalk.

Let’s have a look at the prevalence of scripting in LoL over the last few years.

scripting_games_percent.jpg

What’s more important: The size of the hammer? Or the speed at which you swing it?

The green here represents scripters as a daily percentage of ranked games played. It trends downward with time, and is statistically referred to as “A Good Line.” Banwaves (rendered in a righteous gold) are displayed on the same time scale so that you may compare the two and become amused. My boss had some “concerns” with sharing “classified information,” so absolute suspension size has been intentionally withheld.

Some other metrics worth noting:

  • We’ve banned over 7 million accounts for scripting worldwide in the last three years, with 5 million of those being handled by Tencent in China. Today, the average player is likely to encounter a futile scripter just once in every 400 ranked games.
  • Only 9% of scripting suspensions in 2018 resulted in player reform, and it otherwise takes an average of 5.1 banned accounts before a cheater finally launches the LoL uninstaller.
  • We had gotten the scripting rate as low as it was going to go with suspensions alone (cheaters gonna cheat), so our fight now moves into preventative measures, not just punitive ones.
But mirageofpenguins, are the cheats actually helping? Asking for a friend.

Glad you asked, let’s dig into that.

scripting_winrate.jpg

Facing extinction, scripters migrate south for the winter.

It’s probably obvious, but I’ll say it anyway for those that cut math class: The average win rate of a random sample should be 50%, so these applications are still producing some kind of advantage. That said, there are interesting components contributing to their decline in performance.

  • Scripts are most useful on mechanically intensive champions, like ADCs or Cassiopeia. In the interest of reducing the efficacy of perfectly-timed casting, we’ve added intentional “forgiveness” to some ability spam (like holding down Evelyn’s Q), allowing humans to compete with machines.
  • In an effort to evade behavioral detection, developers voluntarily added additional delay to their own automated actions, effectively forcing them to perform more like a human.
  • Constant, unrelenting takedowns of scripting providers have forced continual turnover of platforms and codebases. Imagine trying to get your car running smoothly, but someone (me) keeps stealing all your lugnuts.

It’s been a slow grind, but we feel pretty confident in saying that the machine uprising has been delayed by at least a few decades. You can safely resume using your microwave oven, provided that microwave oven does not interact with the LoL client.

Boosting

Sometimes the grind out of Silver can get a little exhausting, and it might cross the mind of those less-scrupulous to have someone else do it for them. Affectionately known as “Buying the Trophy” or “Shopping at Borders,” boosting is heavily driven by end-of-season rewards (68% of boosts are only to Gold V), though it’s also motivated by the desire to appear skillful.

It’s okay to tell your friends you’re Silver, a good friend will still accept you.

Speaking from experience, it can be incredibly frustrating to see a Diamond II player in your Gold III ranked games, or even worse: to have a boosted animal in your Platinum V promos. The best games are those between players of comparative skill levels, and to that effect, we consider boosting to be any case where a player plays on an account of significantly different rating for the purpose of increasing its ranked standing.

Boosting has been traditionally hard to prevent, so we’ve usually focused on detecting the most obvious offenders. I’ll have to be a little vague here to protect the Secret Sauce, but basically, training on the decidedly noticeable deviation in play patterns between a player and his or her booster, we’ve managed to throw together a little algorithm that we run once a season to remove the rewards of those less deserving. We don’t catch everyone, but we’re getting better at it.

boosting_leagues.jpg

Notice that spike at the end where our Gold-hopefuls finally cave and buy the Elo at a discount.

The most apparent spikes are those associated with two well-researched phenomena:

  • “Play my placements for me bro.”
  • “Yo, hook me up with that Victorious Graves.”

Our goal in punishing this type of thing is to disincentivize those who’d hope to turn it into a business, and in that regard, we’ve got a long way to go. Putting the boostees in timeout is only part of the equation. Starting now, we plan to do a better job of identifying and shutting down the services that sell boosting, a tactic we lovingly borrowed from the Tencent playbook.

Botting

Ah yes, the leveling bots. These toasters are a real thorn in the gaming universe. League is a free-to-play game, and as that label suggests, there is a low barrier to account creation. Yasuo mains need new smurfs to practice on, and those few million scripters we’ve banned “need” new accounts to annoy us with. It’s created an awkward market for fresh level 30s, and this is something we want to avoid—both to keep the new player experience healthy and to keep our punishments miserable.

Why do you have all of these smart refrigerators in your garage?

So, we’re working on this. We’ve got a few PhD candidates, and those nerds are actively whipping up machine models that sort the electric dishwashers from the humans. Bots fighting bots—real edge-of-your-seat stuff. They’re trained on player reports too, so if you find yourself up against a cold press juicer, go ahead and smash that report button.

ARAM falls into unfortunate scrutiny here, because it’s the easiest game mode to design a bot for and shortest game mode to receive experience from: run it down mid, cast everything, collect champion capsule.

botting_player_reports.jpg

Less bot reports, less player impact. QED.

What you see here is the effect of a campaign to queue bots against each other (codenamed Bot Olympics), which is just a stepping stone on the path to victory. Our ultimate goal is to ban these things back to the home appliance store they came from, but penultimately, we’ll settle for players never seeing them. They’ll get banned before they’re sold, and for now, we’re down to eat the server costs if it means these guys pound sand.

The Future

The above list isn’t exhaustive—cheaters are always going to look for new ways to cheat. While that’s great news for my personal job security, it also means our work is never finished. We’re making a commitment to fight for your right to a competitive video game, and we’ll pretty much do anything it takes to encourage cheaters to get good.

You are not welcome in this community if you don’t wanna play fair.

Simple stuff, really.

We’ll be eyeballin’ the comments, so hit us with your questions, and let us know if you’d like to see more anti-cheat articles in the future. If you’ve recently been suspended, you can also use the comment section to complain, it sustains me.