XCOM 2
[WOTC] Original High Hit Dodge Behaviour
62 Comments
Mustang0524 4 Mar, 2023 @ 8:21am 
@airpirata WOW, I spent a LONG time trying to figure out why my soldiers were taking 10 seconds to move so TY for this post, now I know.
Mid Favila 28 Feb, 2023 @ 11:14am 
Cross-post, can confirm the below, as I use both mods.
airpirata 28 Feb, 2023 @ 5:57am 
This mod in conjunction with this mod slows down the game very much, after each action there is a delay of 5-8 seconds
Mid Favila 28 Dec, 2022 @ 1:20pm 
Linux user here. Wanted to report that this mod seems to, for whatever reason, cause massive slowdown -- just for future 'nix users' benefit.
Rossocuore 22 Oct, 2022 @ 4:57am 
@KaZ; thank you man for this thorough explanation! :-)
Dęąth Viper 19 Oct, 2022 @ 10:46am 
Just finished a campaign with about 685 mods, this one included, and had no major issues! Thanks for putting this up.
Nyx 20 Apr, 2022 @ 9:54am 
@Rossocuore I did some testing myself in Debug mode with Crit Chance Change Redux and Original Hit Dodge Behavior. After extensive and careful examination, I can tell you that whichever mod you installed last will be the one working. In fact, since both of them override the same base game class, they would prove incompatible unfortunately. I tested this by shooting multiple M3 Advent Stun Lancers, one at a 100% and another at 94%, both flanked. The 100% never ever dodged, which shouldn't happen if you only have this mod installed, and the 94% one did.

You'll have to decide if you prefer not being crit by low hit shot or dodge being completely nullified on a 100% shot. A possible solution if a modder wants to, is to combine both mods into one and have both changes being in a single override. But that's another topic and I am not an expert on it.
Rossocuore 26 Mar, 2022 @ 12:45pm 
Hi Mr. Nice! Mind if I ask wheter this mod is compatible with "Crit Chance Change Redux" from RealityMachina? Thanks!
Mr. Nice  [author] 9 Feb, 2022 @ 10:43am 
@tom.nguyen345 The 50 dodge would scale with hit to 80% (so that's the numeric value you will see in the EI HUD), but 60% of that would be wiped by the >100% part of the hit chance, so only 20% will show in the "Shot Bar". Crit is unscaled, so the remainder will show as 30% normal hit, 50% Crit.
tom.nguyen345 15 Jan, 2022 @ 10:40am 
Mr. Nice, what should the bar look like if I have 160 hit, 50 dodge, and 50 crit with your mod?
I understood the bar should show 80 dodge, but as for hit and crit, would it be 40/40 hit/crit or does crit remain unscaled so it is now 30/50 hit/crit?
Ragnell Avalon VTuber 5 Dec, 2021 @ 8:38pm 
BUGGY, DO NOT USE.

I was having an issue where my grenades were missing more often than they were hitting - not being dodged, having falloff from terrain, or being blast shielded, actually straight up missing (printing "Missed!"), even if they were literally dropped in the target's panel.

After a LOT of binary testing, I narrowed the issue down to this mod, even though that makes no sense. With this mod disabled, grenades no longer miss.

Obviously it's nonsensical that this mod is the cause of the issue, which is why it took me so long to figure it out, but it's definitely this one - at least, as definitely as I can be with only one person testing it; it's possible I just got lucky multiple times, but based on previous results (where if you threw a grenade into a pack of 3 enemies you'd be lucky if it hit one of them at all), I'm fairly certain this is the cause. Will update if it starts happening again.
Guy 16 Oct, 2018 @ 7:38am 
@Mr. Nice
Thanks for the clarification! And, again, for the mods :)
Mr. Nice  [author] 16 Oct, 2018 @ 5:18am 
@Guy: Ah some love for my very first mod... Yes Extended Information's shot bar does accuratly show the difference, one of the advantages of being involved with both mods! It's a bit technical, but the Extended Information "Shot Bar" assumes that the "shot breakdown" will be used as per the usual game mechanics, but doesn't care about how it was constructed. This mod adjusts how the "shot breakdown" is derived. Compare "EU Aim Rolls", which changes how the shot breakdown is actually used, hence the "Shot Bar" in accurate for it.
Guy 16 Oct, 2018 @ 5:14am 
Is it properly compatible with Extended Information i.e. will the Shot Bar or whatever it's called properly represent what's happening with this mod enabled?
Mr. Nice  [author] 7 May, 2018 @ 6:03am 
(cont.) Crucially, the majority of abilities which have a HitCalc using X2AbilityToHitCalc_StandardAim, use the property SimpleStandardAim, which is defined in the DefaultProperties block of X2Ability.
Which is ultimately, why you have to do a loop to fixup ability templates. Well, that would appear to be the neatest method anyway, if you check the change notes, you'll see I used to use a fixed list of abilities to fixup. Notice how I check the class property, not using IsA() or cast/none check, since I don't want to change abilities which use X2AbilityToHitCalc_StandardAim itself, not a derived class.
Mr. Nice  [author] 7 May, 2018 @ 6:01am 
@neoe: You may notice that this mod (non-WotC version) was first released even before the very first patch (when it was more purely a bugfix for crit/hit interaction, it's just that Firaxis took a different approach to fixing the bug, which drastically changed dodge behaviour), even before OnPostTemplates() even existed!
So although there may now before more comprehensive guides out there now about how Overrides work, and therefore their limitations, I was there there for what you might call the "first wave" of mods when we just had to find out by trial and error!
Anway, briefly, Overrides can only change class references which are resolved at run time, not class references resoved at compile time. In practice, this means anywhere you see something like class'X2AbilityToHitCalc_StandardAim' in code, and crucially nothing In DefaultProperties block, since that is not "code" in the sense of code that runs, and is fully resolved during compilation.
LinuxGaming Neoe 6 May, 2018 @ 10:09pm 
Hi, Mr Nice. I'm also making a mod (you can found in my profile, named 'Lucky Hit'). I override X2AbilityToHitCalc_StandardAim but not work, it seems not get overrided, since I failed to enable debug log files I cannot see what actually happened. Until add things like your OnPostTemplates(), it works. Can I ask where did you find such overriding approaches, any reference URLs? Thank you.
Mr. Nice  [author] 3 Feb, 2018 @ 7:50pm 
This mod isn't "fresh out", it dates back to Feb '16 taking into account the non-WotC version!. In fact, if you read the descriptin, this mod was originally a pure "bugfix" mod. "EU Aim Rolls" is fundamentally different, but of course in compatible. Taking the current game as a base line, this mod just stops graze results being wiped out at 100% to hit, but has it more gradually become wiped out, as was true in XCom2 as first released. EU Aim rolls, since it seperates out the rolls, hs the most obvious impact of scaling crit% to hit %, but by using seperate rolls, it has rather larger fundamental impacts on interactions between crit % and dodge.
pauloel7 3 Feb, 2018 @ 7:37pm 
Dear Mr. Nice, this mod should be incompatible with [WOTC] EU Aim Rolls, right? As yours is fresh out, you must have included all [WOTC] EU Aim Rolls considerations here, right? Pardon the question, as this is a particular complex mechanic to follow into its intricacies (graze/crit/dodge/tohit)... How different are these mods? I'd be better of with yours, I believe? I'm really asking for your clarification and advice as I start a new campaign. Thank you so much for another awesome mod btw!
Mr. Nice  [author] 28 Jan, 2018 @ 5:06pm 
Can't agree sorry, since I did a variant of this mod, which changes the simplestandardaim users in OnPostTemplates(). I even made sure to disable EI first, which doesn't call the .GetHitChance() method of X2AbilityToHitCalc_StandardAim (or its subcasses).
Mr. Nice  [author] 28 Jan, 2018 @ 5:04pm 
Can't agree sorry, since I did a variant of this mod, which changes the simplestandardaim users in OnPostTemplates().
krumiro 28 Jan, 2018 @ 8:52am 
Thanks for your testing... Could that be because you are testing it aiming with Abilities that have defined the AbilityToHitCalc in that "unconventional way" that is immune to Override (with Default.SimpleStandardAim)? In fact, standard aiming with standard weapons uses Default.SimpleStandardAim (therefore not using the Overridden version) which doesn't freeze the game but it is because it doesn't use the Overridden Class with custom GetHitChance() (you can test it by seeing that it doesn't show your customized GetHitChance, for example always 99% or never consider cover)... If you therefore try to "manually" replace the .AbilityToHitCalc also in those Abilities where it was unconventionally definid with Default.SimpleStandardAim (with no fear of leaving behind any .bvariable because those Abilities using Default.SimpleStandardAim never have any of those .bvariables) then you will see that it will freeze while aiming...
Mr. Nice  [author] 28 Jan, 2018 @ 5:50am 
Well, I just did a test build of this mod, and added in the method GetHitChance(). I only changed the one Super. to Super(X2AbilitytoHitCalc)., and it worked fine? Even without changing that super it wouldn't have crashed the game anyway...
krumiro 27 Jan, 2018 @ 8:18am 
Thanks for your help! Not found a solution yet... ;( Yes, I had paid attention to work around all "super." and "self." instances... you were right, the alternative method of manually replacing the custom Class instead of overriding it didn't work and is even worst because of the if(X2AbilityToHitCalc_StandardAim(AbilityToHitCalc)!=none){...} checks in other parts of the code... I'm out of ideas... Overriding X2AbilityToHitCalc_StandardAim works perfectly if I customize in it any other function... but customizing in it the GetHitChance function always freezes during aiming... not a clue why... my main suspects is the m_ShotBreakdown variable which, unlike in Default-XCom2, now in WotC is instead used as in/out variable while calling the GetHitChance function... There are not many Modders out there overriding that class so I really don't know whom to ask for help... Thanks for your attention, you are so cool! ;)
Mr. Nice  [author] 25 Jan, 2018 @ 7:24am 
You'll note this mod does do "both", but only because of the defaultproperties being unaffected by Overrides issue... You'll welcome to look at the code, especially the update just posted! About how to accurately pick out what the override has missed. All uses of .SimpleStandardAim do not change it, which they really shouldn't anyway, since that could inadvertently affects other AbilityTemplates! So no need to worry about matching propreties.
Mr. Nice  [author] 25 Jan, 2018 @ 7:21am 
For all pratical purposes, overriding is the same as swapping out every ability in OnPostTemplates(), in fact, code wise simpler! So that won't solve your issues really. Indeed, "secret" overriding by replacing all possible uses of a class, with a new class, is worse IMO, since you are "hiding" possibly incompatabilities, replacing all uses of a class in the game iwth another, isn't more "compatabile" just because you didn't put an override in XcomEngine.in
Mr. Nice  [author] 25 Jan, 2018 @ 7:21am 
There's nothing magical about GetHitChance(), soyou must be missing something! It already has a couple of Super calls in it, so remember they have to be redirected up two layers, so use Super(X2AbilityToHitCalc) , since X2AbilityToHitCalc is the superclass of X2AbilityToHitCalc_StandardAim. Just read that you are having problems even with just "copying" the original function, which certianly won't work correctly (but surprised it freezes) due to the Super issues I just mentioned. EI basically has an entire copy of GetHitChance(), to get more detail in the shot wings and accurate difficulty level adjustments in Flyovers, and there were only a couple of "protected" things tto be worked around, but you are subclassing, so unaffected by Protect delcarations. Private declarations may still cause trouble, but GetHitChance() doesn't have those issues.i!
krumiro 25 Jan, 2018 @ 6:54am 
p.s.
Your "Scars are Back" Mod is amazing! Always been one of my favorites! ;)
krumiro 25 Jan, 2018 @ 6:19am 
Any suggestion, hint or help is appreciated, fellow Modder friend... ;)
krumiro 25 Jan, 2018 @ 6:19am 
I hope it hels you... ;)

Anyway, I haven't still found a way to make my Override_X2AbilityToHitCalc_StandardAim work in WotC. Yours works well because it doesn't override the GetHitChance Function... but in my case I have no idea what is causing the game freezing (Only when that funciton is overridden! even with the original unchanged WotC one!)... probably some variable belonging to parent/child Classes not seen from child/parent? Well, instead of keeping to try to find out the reason I am deciding to try another method and, Instead of overriding that Class I will try to create my custom class "not overriding the original" (and identical to X2AbilityToHitCalc_StandardAim except for the GetHitChance personal change) and replace it manually similarly as shown before in every Ability that needs it (and paying attention to preserve those .AbilityToHitCalc.Variables)... ;)
krumiro 25 Jan, 2018 @ 5:58am 
AbilityToHitTemplate.bMeleeAttack == true ) continue; //BEFORE THE BMELEEATTACK WAS NOT SEEN AS TRUE WITH MY OVERRIDE (APPLYING THEREFORE COVER, GOODANGLE,ETC..)... STRANGE... SO TRIED TO ADD THIS LAST CHECK TO LEAVE THE X2ABILITYTOHIT_STANDARDMELEE ALONE...
AbilityToMeleeTemplate = X2AbilityToHitCalc_StandardMelee(AbilityTemplate.AbilityToHitCalc); if (AbilityToMeleeTemplate != None) continue; //EVEN THIS LINE... JUST IN CASE X2ABILITYTOHITCALC_STANDARDMELEE'S FATHER (_STANDARDAIM) DOESNT SEE THE .BMELEEATTACK VARIABLE SET...
AbilityTemplate.AbilityToHitCalc = new class'Override_X2AbilityToHitCalc_StandardAim';
AbilityToHitTemplate = X2AbilityToHitCalc_StandardAim(AbilityTemplate.AbilityToHitOwnerOnMissCalc); if (AbilityToHitTemplate == None) continue;
AbilityTemplate.AbilityToHitOwnerOnMissCalc = new class'Override_X2AbilityToHitCalc_StandardAim’;}}
krumiro 25 Jan, 2018 @ 5:57am 
AbilityToHitTemplate.bAllowCrit == false || //WHILE THE REMAINING ONES USED AN UNCONVENTIONAL
AbilityToHitTemplate.bHitsAreCrits == true || //DEFINITION NOT REFERENCING DIRECTLY TO HABILITYTOHITCALC
AbilityToHitTemplate.bMultiTargetOnly == true || //AND THEREFORE USING THE UNOVERRIDDEN HITABILITY CLASS
AbilityToHitTemplate.bOnlyMultiHitWithSuccess == true || //... ?? ... ONLYMULTIHITWITHSUCCESS DEFINED ONLY ON SHARPSHOOTER'S FACEOFF ABILITY (AS FALSE)... BUT UNDEFINED BOOLS ARE ALWAYS FALSE... MAYBE FIREAXIS IS STILL "THINKING ABOUT IT"???
AbilityToHitTemplate.bGuaranteedHit == true ||
AbilityToHitTemplate.FinalMultiplier != 1 ||
AbilityToHitTemplate.BuiltInHitMod > 0 || //) continue;
AbilityToHitTemplate.BuiltInCritMod > 0 ||
krumiro 25 Jan, 2018 @ 5:56am 
//SOME ABILITIES CALL DEFAULT.SIMPLESTANDARDAIM INSTEAD OF CONVENTIONAL CLASS HABILITYTOHITCALC_STANDARDAIM
function ReplaceStandardAimAlsoInAbilitiesWithUnusuallyDefinedHitCalc() {
local X2DataTemplate DataTemplate;
local X2AbilityTemplate AbilityTemplate;
local X2AbilityToHitCalc_StandardAim AbilityToHitTemplate;
local X2AbilityToHitCalc_StandardMelee AbilityToMeleeTemplate;

foreach class'X2AbilityTemplateManager'.static.GetAbilityTemplateManager().IterateTemplates(DataTemplate, None) {
AbilityTemplate = X2AbilityTemplate(DataTemplate); if (AbilityTemplate == None) continue;
AbilityToHitTemplate = X2AbilityToHitCalc_StandardAim(AbilityTemplate.AbilityToHitCalc); if (AbilityToHitTemplate == None) continue;
if (AbilityToHitTemplate.bIndirectFire == true || //HITABILITIESTEMPLATE WITH THESE VARIABLES PRESENT
AbilityToHitTemplate.bReactionFire == true || //ALREADY CORRECTLY USE THE OVERRIDDEN HITABILITY CLASS
krumiro 25 Jan, 2018 @ 5:49am 
In my mod I realized it when I started noticing that Abilities were acting differently (with a different HitChance) as they were supposed to (Grenades unappropriately showing Critical Damage, Reaction Fires not applying the Aim Malus, Melee Attacks unappropriately considering Cover Malus and Good Angle Bonus, etc...)... Therefore I, on the one side, overrode the X2AbilityToHitCalc_StandardAim for it to be used by the Abilities that define it in a "conventional way" and, on the other side, I manually "replaced" the AbilityTemplate.AbilityToHit(OwnerOnMiss)Calc in the same way that I see you are doing BUT only to the Abilities that are defining their X2AbilityToHitCalc_StandardAim in an "unconventional way" (with Default.SimpleStandardAim, immune to Override) and therefore excluding this modification the Abilities that presented the definition of those important Variables which define the Aiming Abilities behavior... Here below is my solution, I hope it helps you... ;)
krumiro 25 Jan, 2018 @ 5:35am 
I immediately realized that you didn't preserve those AbilityTemplate.AbilityToHitCalc.Variables (because I had already incurred in that problem and found a solution last year) and wanted to point out to you but without sounding impolite... ;) (therefore asked it instead of saying you forgot it... ;) )
krumiro 25 Jan, 2018 @ 5:33am 
This wasn't happening with my Mod with the Default-XCom2 and after a week of unsuccesful solutions I finally started to dissect each Mod I found on the Workshop that overrides X2AbilityToHitCalc_StandardAim in the hunt for clues or ideas for solutions someone else might have already found.... hence I found and analyzed your mod... ;)
krumiro 25 Jan, 2018 @ 5:30am 
I tested several solutions for almost a week and none work but I arrived to the conclusion that any function of the new WotC X2AbilityToHitCalc_StandardAim can be overridden EXCEPT the function GetHitChance (and the "super." instances have already been appropriately taken care of) because the game freezes only when when I try to override that function (even by replacing it the the exact same original one!!!)...
krumiro 25 Jan, 2018 @ 5:30am 
Jokes apart ;) , I also am in the slow process of updating my old Mods to WotC and, one of them overrides X2AbilityToHitCalc_StandardAim... specifically only the function GetHitChance adding some personal customization I like... Now, I've been using it for almost a year testing it on my own Campaign (to perfect/debug it before publishment) and was waiting to publish it until I had the time to update it to WotC... but when I start my first WotC Campaing and apply the same personal modifications on the GetHitChance function of the new WotC X2AbilityToHitCalc_StandardAim I realize that for same reason the game freezes as soon as I aim someone...
krumiro 25 Jan, 2018 @ 5:17am 
you got me! I'm a psychic! Please don't tell anyone or they'll come do vivisect me!!
Mr. Nice  [author] 25 Jan, 2018 @ 4:52am 
aaaaaaaaaaarggggggggggggggggg! Found the bug, or at least why it so whos up so widely.....
My own attempt to check if the original X2AbilityToHitCalc_StandardAim is still being used, is etself affected by the override, since I name the class in open code (which override affects), not define it in defaultproperties where it wouldn't be :steamfacepalm: . So ironically I'my only swapping it out directly for exactly the opposite case I wanted! Ok, so,it just comes down to how many abilties use default.SimpleStandardAim, but copy and modifiy it, so have some properties to be copied over.... hopefully not many, hopefully, none!
Mr. Nice  [author] 25 Jan, 2018 @ 4:46am 
Just to say, only abilities which use one of X2Abilities "prepapared" standardaim hitcalcs are affected, since it only "directly" change the hitcalc out, if the override didn't catch it.
Mr. Nice  [author] 25 Jan, 2018 @ 4:37am 
Mr. Nice [author] Just now Delete
(cont.) The reason why the mod can't work just with overrides, is that a lot of the uses of "standard aim" come from variants set up in "defaultproperties" in X2Ability, and defaultproperties are "Immune" to overrides.
I was dreading making alist of the X2AbilityThoHitCalc_StandardAim properties which would have to be copied over! But there way be clverer ways around the issue....
Mr. Nice  [author] 25 Jan, 2018 @ 4:37am 
Are you psychic? When me and Sebkulu were testing EI at the weekend, that exact thing came up, when we swapped out standardaim in order to add in some logs! But I was already working on several other mod updates, and since noone has spotted this bug for 20 months, thought I could "get away" with leaving it a couple of weeks :steammocking: . The basics of this mod are largely unchanged since 2016, but the Oct 2017 update,moving from a "curated" list of mods to fix up, to actively "hunting down" things to fix, has probably exposed the bug more widely...
So yeah, it is true that it doesn't transpose over those variables (are there any you missed?).
krumiro 25 Jan, 2018 @ 4:06am 
Hello, Mr. Nice (love the name!). Fantastic Mod! I have a question: I have noticed that your Mod replaces in each X2AbilityTemplate the original X2AbilityToHitCalc_StandardAim with your custom one... My question is, when it replaces them, does it preserve the original AbilityToHitCalc Variables which define those Aiming Abilities individual behaviors (below)?

AbilityTemplate.AbilityToHitCalc.bIndirectFire
AbilityTemplate.AbilityToHitCalc.bReactionFire
AbilityTemplate.AbilityToHitCalc.bAllowCrit
AbilityTemplate.AbilityToHitCalc.bHitsAreCrits
AbilityTemplate.AbilityToHitCalc.bMultiTargetOnly
AbilityTemplate.AbilityToHitCalc.bOnlyMultiHitWithSuccess
AbilityTemplate.AbilityToHitCalc.bGuaranteedHit
AbilityTemplate.AbilityToHitCalc.FinalMultiplier
AbilityTemplate.AbilityToHitCalc.BuiltInHitMod
AbilityTemplate.AbilityToHitCalc.BuiltInCritMod
Zulnahdwiin 4 Oct, 2017 @ 5:50pm 
Does this affect grenades or explosions? I've been noticing that a lot of enemies are being "missed" by explosive weapons/effects since installing this mod
Mr. Nice  [author] 1 Oct, 2017 @ 6:07am 
(cont)
I don't know if EU-Rolls copied that change when the patch over a year ago put that in (like this mod (under a different name, see background above) EU rolls predates that patch change). It won't have simply inherited the change, because as I say above, it doesn't use that section of code anyway. Ask over in EU Aim rolls, and if it does stop dodges at 100%+ to hit, ask

Finally, note EU rolls does make dodges less likely. EG if you have 99% to hit (so vanilla allows dodge), 50% crit, 50% dodge, than vanilla(and this mod) would give you 1% chance to miss, 50% chance to crit, 49% chance to graze. EU rolls will give 1% chance to miss, 49.5% chance to crit, 24.75 chance to graze and 24.75% chance to hit without critting.
Mr. Nice  [author] 1 Oct, 2017 @ 6:07am 
Well, not sure why you'd rather miss than hit. In your example, understandard XCom 2 you have a 50% chance to crit eitherway. Just that in the first case the other 50% of the time you hit, but not crit, while in the second case it's 30% miss, 20% hit/no crit. (it's ~71% of hits which will be crits, but if you don't consider a non-crit hit to be better than a miss, that's irrelavent).
Anyway, this mod works by changing the code which works out the "boundaries" for the four different results (standard hit/crit/graze/miss), and its at that stage that dodges are stopped for 100%+ hit chances. That code is completely unused by EU rolls, since to roll them seperately that's irrelavant.

Lo 30 Sep, 2017 @ 6:25pm 
So are you saying that if I use EU aim rolls, and I have 100% to hit, the enemy can still dodge? Cause as I am understanding it, unmodded XCOM 2 makes it so that if u have 100% to hit, the enemy cannot dodge. Which I don't like. 10% to dodge is 10% to dodge 100% to hit or not.

Anyway I definitely consider both of these a "fix". If u don't use EU aim rolls, it basically makes it so that SOMETIMES you'll want lower aim to ensure a crit IF you hit. For example: your ranger is your last solider with actions, and he can easily flank the ADVENT officer, but will ONLY kill him on a crit. If I stand next to him I'll have 100% hit and 50% crit. If I stand slightly further I will have 70% to hit and 50% to crit. Now I'm not a mathematician, but without EU aim rolls I'd rather take the latter since IF I hit there's like a +-80% chance he's gonna get crit (I want him dead, not damaged). With EU aim rolls I'd take the former (which should be the obvious choice in a logical XCOM 2 world).
Mr. Nice  [author] 30 Sep, 2017 @ 10:23am 
Well I would debate calling EU aim rolls (or this mod) a fix, rather than a matter of taste.
Anyway EU rolls seperates out hit, crit and dodge into seperate rolls, rather than slotting them all into a single 1-100 roll, so the issue of how 100+ hit affects the other two has no meaning to EU rolls.
So I'm not sure what you would expect from both this mod and EU rolls "working together" (which of course they don't at the moment, due to clashing overrides).
Lo 30 Sep, 2017 @ 9:01am 
@Mr. Nice the reason we would want both this and EU aim rolls, is that EU aim rolls fixes how critting works, and this fixes how dodging works. So we want both please xD