Its been a very long time since I have witnessed a bug like this. Not only does Jayce get 700 bounty gold but his bounty is reduced afterwards. Somehow he did not get the 300g for the normal kill. Does anyone have an idea how this happened or has witnessed it themselves?
Fun fact: we somehow still managed to win at the end
This is a long-standing but incredibly niche bug.
Spells in the game work on a slot system. PQWER, summoners, items, and Recall (technically itself an item too) are all each a slot.
But there’s also a bunch of hidden “extra slots”. It’s pretty common for a spell to be implemented as “this wrapper spell validates and sets up to internally cast another spell that does the actual work”, and this is done using extra slots.
Slots get referenced by their type and an index number. For example, when Ahri presses Q, she begins casting spell slot 0 which then casts extra slot 0 to create an AhriQMissile, and when that missile ends it casts extra slot 1 to create an AhriQReturnMissile, but if she’s dead then it instead casts extra slot 6 to create an AhriQReturnMissileDead.
The problem with this design is having to keep track of what spells are in what slots, since you don’t actually get to say “please just cast AhriQMissile”. You can only say “cast this slot type with this index”. If something else happened to be in there other than AhriQMissile, you can get some weird results. The majority of crazy bugs concerning Sylas, Viego, and Ultimate Spellbook were simply dealing with cases where one spell was trying to cast a slot that had been overridden by another spell and it had not been set up to write its intended spell into the slot before casting that slot. Most modern champions are set up to do this (which probably also prevents having to remember what slot you assigned something to, since you can just reassign it before using it), but a lot of older champions still kinda expect that nothing mess with their slots too much.
So how does this relate to Baron? One of his attacks shoots out a bunch of spikes behind him that stuns enemies hit. What’s likely supposed to happen is Baron casts his extra slot 10 spell on each target to create a BaronAcidBallChampion missile (this is one of his two green basic attacks), dealing some magic damage and applying a Corrosion stack. He correctly has this spell assigned to that slot, and correctly fires it normally in all other cases, but the back spikes spell behaves incorrectly. It’s not actually casting Baron’s extra slot 10 on each target, but having each target cast their own extra slot 10 on themself.
But what’s in extra slot 10 for a given champion? It turns out not much, since it’s a relatively high slot index, so it’s only rarely used. Most champions just have nothing assigned, resulting in nothing happening. These are all the known cases of extra slot 10 being used:
-
Jayce has a JayceRangedAttack assigned to this slot the first time he transforms into ranged form and for the rest of the game after that. This results in him basic attacking himself, which is what happened in the clip. If this damage is lethal then you get a self kill. All cases of self kills are pretty consistent, consuming your own bounty but not getting your base kill gold, no experience, and increasing your death count but not your kill count (the same as practice tool self kills).
-
Sion has a SionBasicAttackTower2 assigned to this slot from the start of the game. This results in him basic attacking himself, essentially the same as Jayce.
-
Graves has a GravesQReturn assigned to this slot the first time he fires Q and for the rest of the game after that. This is the missile used to deal the Q’s second hit of damage. However, it can only hit enemies, and since it’s doing a point blank cast, it doesn’t actually extend for its normal range, so it can only hit an enemy who’s standing on the exact same position as Graves.
-
Samira has a SamiraPJuggle or SamiraPSwordJuggle assigned to this slot depending on how she last triggered her juggle passive. However, this spell doesn’t actually seem to do anything on its own, and might have some extra filtering that prevents it from having noticeable effects.
-
Lux has a LuxUltimateSkinTransformAnimation assigned to this slot the first time she triggers an Elementalist Lux transformation and for the rest of the game after that. Other Lux skins do not have anything in this slot. However, it doesn’t seem to actually do anything when cast in this manner.
So yeah having only two champions that can meaningfully display this simple mistake combined with the fact that players don’t typically stand behind Baron to actually trigger the back spikes along with the only surface level effects being “I appear to have taken a basic attack while doing Baron, I guess Baron just attacked me” makes it unsurprising that it’s not really been noticed much, although it’s been fully understood for about three years now and known for at least a couple before that.
The fix is simply to change the incorrect spell cast function to use Baron as the caster instead of the target.
Wow, thanks for such detailed explanation. I wonder how much spaghetti code exists inside with such complicated crazy logic layered across years.
Also, does it mean that Jayce when stands behind Baron will always get dmg equal to his empowered range attack? That’s crazy bug isn’t it?
-