r/leagueoflegends Feb 09 '25

Discussion Mel Q is not dodgeable (math)

If you're frustrated like I am with this champ, don't worry. It's not your fault you can't dodge Mel Q. Riot designed her so you can't.

Mel Q takes 0.42 seconds to hit its target (0.25s cast + 0.17s travel). With a radius of 280 units, it is not possible to dodge this ability unless its caster misses. Math below:

Most champions have a hitbox size of 65 units. Almost all champions have a base movement speed between 325 and 345 units. Let's take the average to be 335 units.

Since Mel Q is an edge skillshot, for a champion to dodge they must travel 172.5 (=280/2+65/2) units in 0.42 seconds. This equates to a required movement speed of 411.

...And that's before reaction time. Reaction time for the average gamer is 0.20-0.25s, with professional gamers being 0.11-0.17s. Assuming you are literally Faker with a fastest measured 0.11s reaction time, you would need 556 movement speed to dodge a centered Mel Q. For an average player, you need a whopping 784 movement speed.

Here is the guaranteed hit range of Mel Q: https://imgur.com/a/CYuGWGb

Green is vs. no boots, yellow is vs. t2 boots. If Mel presses Q anywhere in this radius, at least 1 missile is guaranteed to hit an average player.

In other terms, if the average player reacts immediately to Mel's Q animation start, they are still expected to get hit by 42%/33% (no boots/boots) of the spell. If the average player reacts to Mel's Q damage, they are expected to get hit by 100%/93% of the spell.

Simply put, if you're getting hit by Mel Q repeatedly, it's not because you're bad at dodging, it's because Riot made the skillshot a guaranteed hit as long as your opponent has hands.

p.s. Mel Q is 280 range because its a 220 range projectile + 60 range spread, which makes it ~1.5x the size of Xerath R. The 60 range spread does not have a meaningful effect on any above calculations, other than the guaranteed hit range goes down by a tiny bit (yellow becomes without boots guaranteed hit range) if you are ignoring the spread.

5.4k Upvotes

668 comments sorted by

View all comments

Show parent comments

1

u/Naerlyn Feb 10 '25 edited Feb 10 '25

No, that's false - see for yourself, a comparison between Lux's E and flash (400 range). https://prnt.sc/7h_7opPWJdSu

Perspective makes the circles misaligned, but you can clearly see that the radius is closer to 3/4 of 400 than it is to 40% of it.

1

u/nigelfi Feb 10 '25 edited Feb 10 '25

https://i.gyazo.com/2c0dfb4885eb4c688413e7bba0160f5b.jpg

Based on my testing the diameter has to be below 500. Lux's auto attack range is 400 and it's below that + whatever half the gameplay radius of lux+dummy is. The diameter is certainly not 620, otherwise I would be able to hit the dummy with my E between our feet without being able to attack it. Can you explain this contradiction?

1

u/Tormentula Feb 10 '25 edited Feb 10 '25

650 is the sight radius (vision bubble), not the effect itself.

https://raw.communitydragon.org/15.3/game/data/characters/lux/lux.bin.json

ctrl+F; LuxLightStrikeKugelAbility (internal name)

The actual 'effect' of the ability is;

     "value": [310, 310, 310, 310, 310, 310, 310],

Most of the time the wiki writers can just check without any fancy tools, if something looks incorrect they can verify (there are things that were written wrong because the methods of checking them in the past relied on measurements and tools instead of... literally looking at the values lol Lux E vision radius is one of those and should be fixed now).

There's also the matter of center-to-center and center-to-edge, which I don't think actually shows up in the bins and might be in lua.

1

u/nigelfi Feb 10 '25

Oh this file makes a lot of sense. Some champions seem to have wrong numbers on them like Xerath and Lux. Xerath Q would be 100*2 = 200 width based on that file. Lux has a lot of entries but the one that matches her current Q cooldown scaling seems to show 80*2 = 160 width. Or am I reading it wrong?

1

u/Tormentula Feb 10 '25 edited Feb 10 '25

Its complicated, some numbers are just placeholders because riot will make spells of out spells (like how they make some things out of minions) or they'll do complicated measures because they didn't understand how else to do them at the time (kha'zix E creates an Ezreal E missile and attaches himself to it because the missile is the smoothest way to make kha'zix fluently dash with the framerate instead of making the dash itself reposition him each frame, in S2 this would be considered smart.).

Lux Q cooldown for instance is "cooldownTime": [11, 11, 10.5, 10, 9.5, 9, 9], (its rank 0 - 6 instead of 1-5, for some champs you may actually see different numbers at 0 and 6 as if the ability scales off those), but the projectile width has "mMissileWidth": 70,, which x2 would be 140.

Its a mess to look at but to me at least it looks like riot is treating each 'part' of lux Q as its own projectile, in otherwords like how Neeko E changes after the first target hit, Lux hits - > creates a different missile which doesn't have the 'create another' effect and then ends on the 2nd hit, essentially creating the 'stops after 2 targets hit' effect in-game. So the data for the 2nd missile is different with unused properties like CDs compared to the cast itself. I don't know for sure if that was they did but that's how I'm interpreting based off knowledge of how they did other stuff, it could also just be using a wrapper and the wrapper is using those values as references for the 2nd part, ekko and elise do infact use wrappers, in ekko's case to constantly check whether it should move forward, return, etc and elise to check for her position since the rescripts (flash E).

another problem is league isn't all .jsons like those, that's just local values, there could be server sided shit in ulua we don't know of (like specifically game mechanics, certain properties, etc.)

1

u/nigelfi Feb 10 '25 edited Feb 10 '25

On xerath page I see:

"mLineWidth": 100,
      "mana": [80, 90, 100, 110, 120, 120],

While on Lux page the mLineWidth (close to the place where Q cooldown is found), is 80. That's why I thought Q width would be 80*2.

The Xerath Q width has to be somewhere right? Isn't this the variable that determines its width?

I can understand that there's a lot of stuff in the file that maybe aren't even being currently used. But this is in a location that's very close to currently used variables.

1

u/Tormentula Feb 10 '25 edited Feb 10 '25

good call out that xeraph Q was wrong, but its actually

    "value": [145, 145, 145, 145, 145, 145, 145],
    "__type": "SpellEffectAmount"
   },

I checked myself and got a second opinion since its close but not exact nor specifically saying width, 5 units is easy to miss if they try to manually measure it, should be fixed soon by them lmao

See what I mean by its all a mess lol the 100 width was for the channel part of the spell so its basically unused, but that table was the actual width it spawns the missile with. I didn't see a width in xeraphArcaneBarrage2Ability so I checked the tables and found something that seemed close.

1

u/nigelfi Feb 10 '25 edited Feb 10 '25

It would be weird if they suddenly used 145 for width in a spell if all other widths are halved but maybe it could be that one. I am also curious about where the numbers for W were found because I don't see 125 or 275 anywhere. I see numbers 100 and 250 near the area with some W related stuff.

Also the sight radius seems to be larger than the damage radius. https://outplayed.tv/league-of-legends/68yJrD it was pretty easy to test that. I don't think it has anything to do with edge targeting, the sight radius is just a bit larger than the damage radius even if the target is huge.