Original Post — Direct link

I was writing a new wiki page about unit size the other day. One of the size modifiers that exists is Baron Buff, which only affects minions, but sure enough, this page was about non-champion sizes, too.

So after I set out to determine those modifiers, I also wanted to confirm the attack range increases on the Baron Buff page, which I asked a friend to get me. For the Cannon Minions, he returned '1050/1030 total range'.

I looked at those 2 values the same way you are right now. Nope, this isn't about other minions on any separate map; these are SR cannon minions. The Blue Cannon has 300 attack range; The Red Cannon only has 280 range!

As it turned out, this has been a bug since the earliest builds of the game we have access to; all the way back from Alpha! Minions are coded as separate units for both sides of the map; So are skins, technically, albeit they properly draw from the same data file for the gameplay side (the only differences are tags like 'human' and 'freljord' which VO interactions use). Same types of minions...do not draw from the same file. Not a big problem, though, as they only have to get a few values right? Yes, in theory, that isn't a big problem.

Unfortunately, in the game right now, this is an excerpt the Blue Cannon Minion data file

, and this is the same excerpt in the data for the Red Cannon minion
. apart from the Name ID's, notice a difference?

And indeed, in the game, these minions adhere to those range values.

[If you make 2 opposing cannons run into each other without interference, they'll not always start attacking each other at the same time like same-ranged units would](see *Edit below for why this link is missing) - instead the Blue Minion goes first a lot of times. The reason it doesn't happen always is that 'is my enemy in attack range yet' is checked only so often, which is also why attacking an enemy moves your champion slightly closer than their attack range would require most of the time. Some would argue that that is to aid in chasing/orb-walking, but I don't think it was set up with that in mind. In any case, attack pathfinding at least doesn't path you into Dragon pit if you want to attack someone on the other side of that wall that is in range of Dragon pit at the time, which would be dumb.

Edit: I got some help in re-doing the proof for this:

Using Syndra W, we can get exact range values and eliminate the 'is my enemy in attack range yet' check by throwing the minion straight from inside its range to slightly further than it was before. If it attacks without walking, it's inside its attack range; If it nudges forward first, it was thrown further than it's attack range.

Test with Blue Cannon | Test with Red Cannon

Here is a comparison for the longest throw at which the minion doesn't nudge forward (= is still in attack range) at.

The difference isn't large (it's about 5% of attack range against a normal-sized champion), but you can see it via the cursor location.

Also, there's a Ryze bug that made separating these minions kinda annoying yet kind of fun. This is the reason you canot port a single Rift Herald, or a single minion period, btw (first minion takes last ported champion's position, or won't get a new location at all if no champion was ported).

I tried showing off this difference in the one patch where the new HUD showed unit ranges in the collapsed version (5.14), however minions all show as 0-ranged anyway due to ((bug))

. Which is sad, maybe someone would have noticed it then already!

The fact that blue team seems to generally win when the game is left alone by players entirely might be due to this bug. Blue team also has a higher winrate overall in the game, which is often attributed to the assymetry in HUD and the map, which is reasonable, but I wonder what the impact of this bug has been on that winrate, afterall.

*Edit: Turns out the mentioned tickrates make this way too hard, and upon reviewing the best clip I have, it has minion damage increase due to my target dummies leveling up, so I'll remake this for you with a proof that's less up-to chance.

Edit2: Remade proof. Now definitive. See above.


TL:DR: Spot the difference

External link →
over 4 years ago - /u/RiotPhlox - Direct link

This is such a weird coincidence. Just last week I was looking through the minion data and found this bug. I legit spent like 2 hours double triple checking to make sure that these values were actually the ones controlling range, like who would've thought this would be in the game since Alpha.

Anyways, the very fabric of league of legends is probably gonna break and minions will never be the same after this. (It seems pretty much the same on internal environments tbh). What a wild bug, and what a hilarious coincidence.

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by Caenen_

Which day last week did you notice it?

Also, what does design say about it - is 300 the intended attack range, or 280?

Last Monday. I went with 300 as the intended range, shouldn't change much though.

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by avscc

Have we seen RiotPhlox and Caenen_ in the same room before? Maybe RiotPhlox has raised this to his superior before and was threatened to keep this a secret, so he created Caenen_ as his whistleblower account. put tinfoil hat

MonkaS

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by corylulu

I'm guessing this was not actually a bug since Alpha, but rather since code last got refactored to fix inconsistencies between ability ranges and/or the per side perspective offsets.

IIRC, ability ranges used to be calculated from the center of the unit, whereas auto-attacks were calculated from the edge of the units model (perhaps still is). So there could have been per-side adjustments to compensate for the perspective and the red side minion might have been shifted 20 extra units forward, which would also require a 20 unit range offset to make all things the same (likely to make the units hitbox look proper when facing the other direction due to the perspective).

I recall a refactor several years ago that attempted to normalize a lot of these differences and negate the need to adjust each side to make the perspective look correct. I'm guessing that the offset might have been overlooked at the time.

This is absolutely possible! I don't have great insight into the deep lore of league code (and am not an engineer either) so I cant verify this was the case, sadly.

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by Betaateb

This is like Calculus being independently developed by Newton and Leibniz at the same time by coincidence! The groundwork must have been recently laid such that you both could do this great work simultaneously, for the first time!

Nice

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by Tormentula

I'm confused about one more thing:

goldGivenonDeath is different between the two minions

goldgivenondeath = 35 gold

goldgivenondeath = 30 gold

am I missing something or is this a bug too?

That file doesnt actually handle the gold so the numbers are fake

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by shrubs311

to think, if you were able to fix the bug soon enough this 11 year old bug would never have been found by the two best bug-catchers in the game.

so basically jungle diff or something idk

I have so much respect for these bug-catching monsters

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by olovlupi100

Omg

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by LordBalzamore

Hello Mr Riot, I’m piggybacking to ask a question you probably don’t have an answer for and have no obligation to read nor answer.

Since this is obviously gonna affect the red vs blue win rate, will the balance team reassess the red team advantage where they have higher average mmr players? I know it has to do with draft pick but I also imagine this plays a significant role.

I'm not sure if the mmr thing is still in tbh, but we'll definitely see if this affects side winrates in any significant way and all that.

over 4 years ago - /u/RiotPhlox - Direct link

Originally posted by gotlockedoutorwev

(It seems pretty much the same on internal environments tbh)

This is one of those weird "imagine if"s about the world, but I'm suddenly wishing for a montage of all the blue-side players who escaped being last hit by a red cannon solely by virtue of that -20 range, suddenly experiencing those scenarios being retconned all at once.

Somehow sensing reality changing around them, like Marty McFly feeling his own existence fading away, but with just an imperceptible shift in their all time kda. Rushing to check their saved highlight clips, shaking their friends to try to get someone to confirm that on May 15th 2015, in that 6th game, they did in fact barely escape, and it was in fact, so sick.

Same