Cheating at League of Legends

A lot of people cheat while playing League of Legends. My impression is it’s not so bad that it ruins the game, but it sure is annoying.

Network invalidation

The simple and dumb cheats are denial of service attacks and drophacking. (See this discussion.) DoS attacks are directed against an enemy player in your game. Somehow you already know their IP address, and then you pay a couple of bucks to a bot farm to knock them offline. This happens a lot to high Elo players, particularly streamers. Poor Rivington (a Riot employee) basically couldn’t stream for a whole week because he’d be knocked offline every time he tried to play. Riot can’t stop DoS attacks directly, but they could definitely make it less appealing by having some sort of game invalidation if players are disconnected through most of the game. For some reason they’ve never wanted to implement that. DotA 2 has a good system.

Drophacking is a similar network denial attack, only in this case when you’re losing you crash the game server so it invalidates the whole game. This attack seems less common but not unknown and there’ve been a couple of severe instances at specific times, I assume once someone finds an exploit. Riot seems to be pretty quick about stopping drophacking, which is certainly expected given they control the server code.

Scripting

The other half of cheating is scripting, code running on the player’s computer to help them play better. I’ve seen a couple of what look like scripters to me in game. Specifically someone playing Sivir, where she’d cast her spell shield with inhuman swiftness to block my attempts to hook her as Thresh. I mean maybe she was just very good, but there was the time I cast the hook from inside a bush and she had at best 100ms to press E and yet there she is, pressing E. Or having a script press it for her.

Mostly this seems to be done via DLLs injected into the LoL process itself. The DLL allows Lua scripts to run, alter the UI, and perform player actions automatically. Two popular scripting tools are L# and Bot of Legends. Bot of Legends costs $10/month. Here’s a video of what it looks like to play with BoL.

There’s a huge variety of community-supplied scripts. See BoL Script Status for a gallery of scripts. Unfortunately most of the links go to paywalled forum posts. But scripts seem to be shared on GitHub. Here’s a couple of users I found: BoLFantastik, DraconisBoL.

Here’s an example code snippet that casts Ignite if it will guarantee a kill.

function AutoIgnite(enemy)
        iDmg = ((IREADY and getDmg("IGNITE", enemy, myHero)) or 0)
        if enemy.health <= iDmg and GetDistance(enemy) <= 600 and ignite ~= nil
                then
                        if IREADY then CastSpell(ignite, enemy) end
        end
end

Augmented intelligence

People who cheat at games baffle me, and make me angry when I play against them. But I do find the idea of augmented intelligence interesting, machine tools assisting people in doing things they intend. Like the Zed video I linked above has a short bit for “Jungle clear”, where you tell it “I want to kill this monster” and it combos your skills efficiently for max damage. The Insec video is another good example, scripting the ward / hop / kick combo that is a famously high skill play. Or not anymore, just press the button.

One challenge is UI for augmented intelligence, how do you present these higher level actions to the user? From the few videos I’ve seen there’s nothing impressive. That Insec video just shows a minimal line you draw, which way the enemy will go when you do it. Spare, but functional. Some of the other videos I’ve shown overload the player with information, drawing overlapping circles over everything. Maybe useful for debugging but not anything else.

The other question I have for scripting is how much it really helps the player. I have no doubt that spell-shielding Sivir was getting boosted by a tool that prevented me from hooking her. But there’s still a person in control of the character, it’s not a full bot, and she’s still having to make choices about where to go on the map and what to attack and when to go in or flee. I don’t think these scripts help with that. My gut feeling is the scripts probably cover about 40% of what a good player needs to do, the other 60% is up to them to do themselves. What’s funny is I’m in the bottom 25% of players. So if I see a scripter, they must be truly terrible if they have a 40% boost.