Jump to content
Dante Unbound: Share Bug Reports and Feedback Here! ×

Status chance and multishot: issues and changes


Steel_Rook
 Share

Recommended Posts

The tl;dr
Status chance on weapons with multishot needs to be based off and displayed to the player as "Status per pellet" rather than the current system which tries to base it on a measurement "at least one Status proc" but actually doesn't and it wouldn't work if it did. What follows is going to be a massive amount of text and theory explaining this.

The basics

I'm going to approach this in a roundabout way as I feel the theory works out better this way. Let's say we have a theoretical shotgun which fires 10 pellets, each of which has a 10% chance to proc Status. How do I go about figuring out proc chances for an entire shot, i.e. for all pellets? Well, proc chance is rolled separately per pellet, meaning each pellet is an independent random event. The chance for a specific combination of random events to occur, therefore, is the multiple of their probabilities. So what's my chance to proc Status on all 10 pellets? Well, 0.1^10 = 0.0000000001, i.e. very very low. What's my chance to fail to roll a proc on every single pellet, then? Well, the chance for the opposite event to happen 10 times in a row: (1 - 0.1)^10 ~ 0.3487, or 34.87%. Still not terribly useful, so let's try again. What's my chance to proc Status on AT LEAST ONE pellet? Well, one or more is the opposite of none, so the chance to proc at least one is the opposite of the previous event, i.e. 1 - (1 - 0.1)^10 ~ 0.6513, or 65.13%. Broadly speaking, the chance to proc Status on at least one pellet is the opposite of the chance to do the opposite of proccing Status on every pellet, or:

at_least_one = 1 - (1 - pellet_proc_chance)^pellet_count

OK, but suppose I want to do this backwards. Suppose I want to start with a given chance to proc at least one pellet and work backwards to recalculate what my proc chance per pellet would have to be in order to get there? Well, the above formula is in fact a function. at_least_one is a function of pellet_proc_chance, where pellet_count is a constant. Which it is, because Multishot is handled differently, and I'll get to that. For now, to model pellet_proc_chance as a function of at_least_one, we solve for pellet_proc_chance, exactly like we used to do back in high school. Initially I wanted to spare you the steps, but I had to write them up for myself to check my methodology, so here's a very simplified version:

y = 1 - (1 - x)^a <=> 1 - y = (1 - x)^a <=> (1 - y)^(1/a) = 1 - x <=> x = 1 - (1 - y)^(1/a)

There's a bit of uncertainty with the radical that I skipped because it doesn't matter here. In our case, this function takes the following form:

pellet_proc_chance = 1 - (1 - at_least_one)^(1/pellet_count)

OK, so if I want my theoretical shotgun above to have an 80% chance to proc Status on at least one pellet, then I would have to boost my proc chance per pellet to 1 - (1 - 0.8)^(1/10) ~ 0.1487, or 14.87%. Neat. Finally, we get to talk about Multishot mods. Knowing everything we know above, what happens to my theoretical shotgun described above, with 10 pellets and an 80% Status chance, if I now slap on a theoretical 100% Multishot mod? Well, we do a full circle. We start from the 80% chance to proc at least once to back-calculate our Status chance per pellet (which we already found to be ~14.87), then reverse-back-calculate it back into chance to proc Status on at least one pellet with the new pellet count, i.e. 1 - (1 - 0.1487)^(10*2) = 0.96, or exactly 96%.

Cool, the formula works. What does that have to do with Warframe, though? Well, remember that "Status Chance" stat in your Arsenal? What that stat is actually displaying is your chance to proc Status on at least one pellet. Your weapon doesn't actually have a separate proc chance per pellet, it only has this single combo stat that the game uses to back-calculate your Status chance per pellet as you mod for it. If the above formula I cited seems familiar to you, it's likely because you've checked the Warfame Wiki's page for Status Effect at any point, and found something very much like it in the Multishot section. Well, that's why that formula exists. A Warframe developer at some point decided that, rather than modelling Status proc chance per pellet for a native Multishot weapon, they'd instead give the player a statistical estimate of proccing Status on at least one pellet instead, and let players manipulate that with Status Chance mods. Neat, right? Well...

The issues

The function used to back-calculate Status chance per pellet is radical. Despite what the SWAT Kats might have taught you, that's not a good thing. Radical functions have a couple of severe drawbacks to them. For one, they have a nasty tendency to produce complex numbers if you're not careful. There's a reason a weapon's Status chance is capped at 100%. Anything more than that and you run the risk of having a negative number under a root with an even base. A weapon with two pellets and 150% Status chance, for instance, would give you 1 - (1 - 1.5)^0.5, which is a square root of -0.5 - not solvable using real numbers. This issue doesn't exist with roots with an odd base. So the above weapon with three pellets would give you a Status chance per pellet of ~33.33%. So where Critical Chance can go up to I think 300% and produce double and triple critical hits, Status Chance is bound to 100% else the entire formula breaks in "ArithmeticException" fashion. Not good.

Arguably, a far worse issue is that radical function's graph is hyperbolic, or at least very similar to that. As politics might have taught you, that's also not a good thing, especially in this case. Hyperbolas, like parabolas, are pretty heavily skewed towards their extremum - their "peak" as it were. The larger the exponent (in this case, the larger the pellet count), the more severe the skew. In the case of our pellet_proc_chance function, that extremum falls at 1.0, or 100% Status chance. What this means you as a player get SUBSTANTIAL increasing returns the closer you get to that magical 100% Status chance, to the point where a difference of just 1% Status chance can drop your Status chance per pellet substantially. Let's go back to our theoretical shotgun, and we'll ignore Multishot for the sake of simplicity. It fired 10 pellets, so at 100% Status chance, each pellet would have a 1 - (1 - 1)^(1/10) = 1, or 100% Status chance per pellet. Now let's say that by some weird coincidence, our shotgun only ended up with 99% Status chance, instead. That would give us a Status chance per pellet of 1 - (1 - 0.99)^(1/10) = 0.3690, or 36.9%. Wait, the who of the what now? We went from scoring a guaranteed 10 procs (10*1) to scoring an average of 10*0.3690 = 3.69 procs? What? Well, that's how heavy the skew of the hyperbolic function is near the extremum of 1. That last 1% accounts for more than the previous 99% combined.

And there's one final issue. I expect to get an argument to the effect of "so just build for 100% Status chance." While there's truth to that... The whole design of the system is kind of misleading altogether. Status is designed around ensuring "at least one proc" per shot, but that in itself is a useless metric a lot of the time, especially for some of the most powerful procs in the game - the likes of Slash, Gas and Corrosive. A lot of different combinations of pellet count and Status chance per pellet can ensure at least one proc per shot, but will still differ VASTLY in terms of how many of their pellets will proc on average. The simplest example is a single pellet with 100% proc chance vs. 10 pellets with 100% proc chance. Both will proc "at l east one pellet" per shot, but the latter will still end up with 10 times the procs. See, the number of procs per shot for a given pellet count is actually Gaussian, meaning that you're usually far more likely to score somewhere around the average procs per shot than you are to proc the extreme ends of the distribution - all shots or no shots. Or one shot, for that matter. 20 pellets at 20% per pellet might have a ~99.99% chance to score at least one proc, but it's far more likely to score 4 procs than a weapon with 100% Status chance and 3 pellets.

The Status chance system not only favours but is built off of a metric which is inherently unrepresentative, and strikes me as an attempt to hammer multi-pellet shotguns into the same mould as single-pellet rifles in terms of Status, I suspect out of fear of them doing far too many procs. As a result, it's created a situation of 100% or bust, where shotguns still deal far more procs than rifles anyway, but with a convoluted system attached to it. And it wouldn't make me this confused if DE hadn't gone out of their way to remove exactly this kind of issue from player damage resistance. Mitigation is a power function of damage resistance, meaning it's similarly heavily skewed towards 1 (100%). Well, DE implemented damage resistance as a power function of armour and scaled both functions together to create something beautiful - mitigation as a linear function of armour. Whatever your health, whatever your armour, mitigation will never ramp up or ramp down across its range. So why does Status Chance ramp up SO HARD towards 100% for native Multishot weapons?

The solution

It seems to me like going the dirt-simple route would have been the best approach here. Dump the entire "back-calculation of per-pellet Status Chance from a weapon-wide Status Chance metric" and go with per-pellet Status Chance directly. First - and this is unrelated to the current topic - just show players their weapon's Pellet Count with Multishot accounted for, please. There's no reason to hide it. Secondly, show players their per-pellet Status chance, and next to it the average number of procs they can expect per shot. And... That's it, really. Just two numbers on the same line. Let's go to our original theoretical shotgun before we got bogged down with "at least one proc." 10 pellets, 10% Status chance per pellet, an average of 10*0.1 = 1 proc per shot. This might be displayed as:

Status Chance: 10% (1.0)

OK, so those numbers are a bit too clean because I picked them manually. What about the the "80% chance to proc Status on at least one pellet" version of it? That had ~14.87% Status Chance per pellet, right? Let's round that up to 15% so the UI doesn't have to try very hard. That would offer 10/0.15 = 1.5 procs per shot - sometimes one, sometimes two, less commonly anything else. This might be displayed as:

Status Chance: 15% (1.5)

You know what the best part is about this system? You can have 150% Status chance, i.e. every pellet will proc Status at least once, but might proc TWICE! Let's be stupid and super-size our theoretical shotgun. It now fires 10 pellets with 150%!!! Status chance per pellet. That's an average of 10*1.5 = 15 procs per shot, and might be displayed as:

Status Chance: 150% (15)

Oh, but what about Multishot? Yeah, I got ahead of myself a little bit, didn't I? Let's go back to a more modest theoretical shotgun with 10 pellets, 15% Status chance per pellet and 100% Multishot. That would be... 15% Status chance still, but the average number of procs per shot would go up to 10*(0.15*2) = 3. Not bad. Again, this might be displayed as:

Status chance: 15% (3)

This gives you a linear function where added Status is always useful regardless of base Status chance or number of pellets, and regardless of whether a player can match an arbitrary extremum point governed by simple mathematical convenience. Yes, it's a slightly more complex stat for players to work with - offering two numbers instead of one - but I'd argue that it's substantially more straightforwards. I don't have to worry about why adding a Barrel Diffusion to my Mara Detron increases Status Chance from 70.4% to 93.1% despite being an on-paper 120% Multishot buff. Instead, I can focus on just manipulating the stats directly. And best of all - players can still build for non-stacking Status procs like Radiation, Blast or Cold by simply optimising for 1 Status proc per shot, regardless of the actual status chance.

The conclusion

I'm well aware that most of what I'm saying is likely not news to most of you guys. I'm also aware that none of this is very likely to actually happen. Nevertheless, I still wanted to explore the system, root out the underlying causes for why it was set up like this, the issues inherent in the original mathematical model and offer perhaps overly-simplistic solutions to these issues. Game design doesn't exist in a vacuum, game mechanics aren't created because someone just felt like it that day. They're driven by practical need to create user-friendly, extensible and ultimately simple mathematical models for complex systems. In this particular case, I feel the current design is MASSIVELY over-thought, resulting in a model which behaves in very unintuitive and I'd argue often unbalanced ways. The original goal was - I think - to create player-facing simplicity, which is lost the moment the user starts trying to mod for it. The goal also seems to have been to reign in the Status capability of shotguns, which is also lost the moment players are able to build them for 100% Status. Indeed, the difference is significant enough that build variety suffers for it.

In short, I feel the current model for Status can use another look and probably a replacement with a simpler, more predictable, less streaky system.

*edit*
The alternate solution

The solution proposed above simplifies the system and eliminates corner cases, but it does so at the expense of still allowing shotguns the potential to score cascading status procs if their Status Chance gets too high. That's a problem because - unlike damage - Status procs can't scale. You can't have 1/10th of a Cold proc or half a Radiation proc. If our goal is simply to ensure that a shotgun with multiple pellets procs no more and no less than a rifle with one pellet, there's a far more straight-forward, brute-force approach to achieving this: hard-limit the number of procs allowed per target. Roll for Status Chance proc once per target hit, rather than once per target per pellet. Let me explain.

Let's go back to our theoretical shotgun with 10 pellets and an 80% chance to proc Status at least once. Under the old system, that would equate to ~14.87% Status Chance per pellet. Under the new system, the latter metric doesn't matter. You fire the shotgun, 5 pellets hit an enemy. You don't get 5 rolls of 14.87% chance to proc Status. You get a single 80% chance to proc Status. That's it. You shoot again, all 10 pellets hit. You get another single 80% chance to proc Status. You shoot again, only graze the enemy with a single pellet. Doesn't matter - you still get another single 80% chance to proc Status.

The downside to this is it means Status-built shotguns aren't motivated to aim for a single enemy and might be motivated to aim for multi-hits, instead (AKA, the Payday 2 shotgun design). The upside is that you never have to worry about a shotgun firing 15-20 pellets and proccing Corrosive on all of them, like is currently absolutely possible. I don't know that I'm necessarily a fan of this solution, but it fits the Status system design. Since Status Effects can't be split into parts, it makes sense that only a single Status Chance roll would happen per shot.

Edited by Steel_Rook
Added an alternative solution.
  • Like 2
Link to comment
Share on other sites

Yea, I've brought this up myself and like you don't think it will be changed but the current Status Chance method is not helpful at all and can even be somewhat harmful to a player's understanding of how the mechanic works. Avg Status triggers is the way to go. Oddly Crit chance is displayed in almost an opposite manner.

Status chance also causes confusion with special case weapons like Twin Grakatas. It's 2 pellets per cycle so is it displaying 5% per pellet or 10% per pellet? If I recall it's 5% per but there's no way of knowing how that weapon is using status without doing calculations and testing.

Link to comment
Share on other sites

5 minutes ago, Xzorn said:

Yea, I've brought this up myself and like you don't think it will be changed but the current Status Chance method is not helpful at all and can even be somewhat harmful to a player's understanding of how the mechanic works. Avg Status triggers is the way to go. Oddly Crit chance is displayed in almost an opposite manner.

Right, that was a whole other discussion there. Despite what the display claims, damage is evenly split between all pellets a weapon fires, be they native or Multishot-derived, and each pellet rolls on listed critical hit chance. The reason DE can get away with merging damage is the average ends up being the same. A single shot with 50% crit chance and *2 multiplier will score an average of 0.5 crits for *2 damage per shot, meaning you'll gain a bonus *1 damage. The same weapon with 10 pellets *0.1 damage will score an average of 5 crits *2 multiplier, meaning you'll gain 5*0.1*2 = *1 damage, either way. The stats work out the same statistically, so the display can get away with that kind of simplification.

I suspect the reason the same doesn't apply to Status is because Status Effects don't scale. You can't have 1/10th of a cold proc or 1/5th of a Rad Proc. And you really should. I'd argue that debuffs and control effects should scale by duration while damage and armour stripping effects should scale by magnitude. That's a WHOLE other topic that I didn't want to get into, though, as it would have completely derailed the OP. It was also kind of besides the point. DE clearly tried to scale multishot weapons by a uniform "at least one proc" metric as an attempt to prevent shotguns from proccing too much status, but that didn't work. Their system cascaded into 100% proc chance for all pellets at 100% "at least one proc" anyway, so shotguns can still deal far more status effects than rifles.

 

17 minutes ago, Xzorn said:

Status chance also causes confusion with special case weapons like Twin Grakatas. It's 2 pellets per cycle so is it displaying 5% per pellet or 10% per pellet? If I recall it's 5% per but there's no way of knowing how that weapon is using status without doing calculations and testing.

Exactly. The current implementation is more complex from a player's perspective (especially since it's never communicated to the player) and it fails to curb massive status overload on native multishot weapons. I mean, the implementation is quite clever from an analytical standpoint as it gives a decent statistical estimate, it's just not a very useful statistical estimate unless the player is ignorant of their own weapon's mechanics - which people aren't. Even a generally uninformed player will pick up on the fact that their shotgun fires more than one pellet. I mean, if DE want to FORCE Status on multishot weapons to behave like status on single-pellet weapons, the alternative is to force it. Don't roll status per every pellet impact, instead roll status only once per target hit. There, done! "Status Chance" now means something simple and comprehensible and you don't have to worry about cascading status overload on shotguns.

...I should edit that back into the OP.

Link to comment
Share on other sites

I agree that status chance should be displayed per-projectile and calculated per-projectile because that's more useful information and doesn't lead to the weird 100% status edge case we get.

Shotgun per-projectile status might have to be increased somewhat to get some level of parity, but that's not a bad thing. It would make hybrid crit/status shotguns better without rendering full status-focused shotguns useless or redundant.

Link to comment
Share on other sites

4 hours ago, Steel_Rook said:

Don't roll status per every pellet impact, instead roll status only once per target hit.

Status as well as Crit chance and headshots are all already per target also.  You can see this with a 100% status weapon that has Punchthru.  Interestingly enough the Daikyu is the weapon that showed me this.  it also took me awhile to figure out why I was getting multiple procs on each enemy until I remembered multi-shot was giving me another arrow per shot.  

Link to comment
Share on other sites

16 hours ago, MJ12 said:

I agree that status chance should be displayed per-projectile and calculated per-projectile because that's more useful information and doesn't lead to the weird 100% status edge case we get. Shotgun per-projectile status might have to be increased somewhat to get some level of parity, but that's not a bad thing. It would make hybrid crit/status shotguns better without rendering full status-focused shotguns useless or redundant.

Yeah, swapping to a different system will likely require a balance pass across native multishot weapons, if for no reason other than to pin down what their stats are actually supposed to be. Let's take a random shotgun that can reach 100% status currently, say the Akbronco Prime. Baseline, that fires 7 pellets at 30% chance to proc Status at least once per shot, giving it an actual ~0.0497 or 4.97% Status Chance per pellet and an ~0.35 procs per shot. Clearly, we can't go with a (rounded up) 5% status chance because that's terrible and because the *3.4 status multiplier gained from all four Status mods which would have previously brought this weapon up to 100% Status Chance and 7 procs per shot, would now bring it up to just 17% status chance and 1.19 procs per shot. Do we instead go with a 30% Status Chance per pellet and a 2.1 procs per shot at base value, then, instead? That would still allow the weapon to be built for 100% status as it used to be, but even right out the gate it's significantly better for Status than even the best 100% status rifle.

Or do we go somewhere in-between, at say a 20% Status Chance per pellet / 1.4 procs per shot, to be brought up to 68% Status Chance per pellet / 4.76 procs per shot? That still seems like a significant nerf, but consider the following. Under the current system, a 99% Status Chance Akbronco Prime would have an actual per-pellet Status Chance of ~0.4821 or 48.21% / 3.37 procs per shot. Yes, it's still a nerf, but it's a nice tidy middle ground between "100% status" and "everything else." In the current system, status for shotguns basically doesn't matter unless it's 100%, because anything below that gives DRASTICALLY reduced values. From my perspective, I'm willing to eat some amount of nerf to the few shotguns which could reach 100% status if it meant ALL Shotguns could reach SOME level of status without having to slap on all of the Status mods in the world. Because Shotguns are already massively, substantially better for status than every other weapon in the game. Smoothing the curve and bringing the extremes closer together seems like a positive change.

With that said, I'd go with ~20% status chance for previously very high-status shotguns, 10-15% for medium-status shotguns and 5% for everything else. This can obviously vary from shotgun to shotgun, but these seem like decent rules of thumb at first impression.

 

13 hours ago, DatDarkOne said:

Status as well as Crit chance and headshots are all already per target also.  You can see this with a 100% status weapon that has Punchthru.  Interestingly enough the Daikyu is the weapon that showed me this.  it also took me awhile to figure out why I was getting multiple procs on each enemy until I remembered multi-shot was giving me another arrow per shot.  

Right, but you're still able to proc Status multiple times on the same target, as you noted. My "alternate solution" was to hard-limit that to one proc roll per target, regardless of how many pellets hit it. It would be a way to reign shotguns (and really, all weapons) into scoring only a single Status proc per shot per target, regardless of the number of pellets they fire. It's a REALLY crude way to solve a fundamental issue of stat normalisation and not one I'd recommend, having seen it in practice before. But it IS an option. Personally, I'd just like to fix the way Status Chance per pellet is calculated, as that would be a far more comprehensive fix.

Link to comment
Share on other sites

3 hours ago, Steel_Rook said:

Because Shotguns are already massively, substantially better for status than every other weapon in the game. Smoothing the curve and bringing the extremes closer together seems like a positive change.

This is mostly because shotguns usually proc Slash.  Slash, toxin, and gas are the only procs that stack on each other for more damage from multiple procs.  Which is why slash/viral combo on shotguns (specifically slash based ones like the Tigris series) is so powerful.  You're halving the enemy's health while procing multiple instances of bleed.  To achieve similar results with other low RoF weapons you would need to go slash/gas.  Which is both effective at lower levels and in higher levels.  Which actually surprises me that most others who claim to play against high levels enemies haven't noticed as well.  But that's a whole different topic. 😄  

3 hours ago, Steel_Rook said:

Right, but you're still able to proc Status multiple times on the same target, as you noted. My "alternate solution" was to hard-limit that to one proc roll per target, regardless of how many pellets hit it. It would be a way to reign shotguns (and really, all weapons) into scoring only a single Status proc per shot per target, regardless of the number of pellets they fire. It's a REALLY crude way to solve a fundamental issue of stat normalisation and not one I'd recommend, having seen it in practice before. But it IS an option. Personally, I'd just like to fix the way Status Chance per pellet is calculated, as that would be a far more comprehensive fix.

I can't say that I disagree with your idea at all.  Heck the only shotgun sthat I like using (Arca Plasmor with the other being Boar Prime) wouldn't even be effected by this change much if at all.  That said, I'm more a Bow and sniper kind of guy anyway.  😄 

Link to comment
Share on other sites

14 minutes ago, DatDarkOne said:

This is mostly because shotguns usually proc Slash.  Slash, toxin, and gas are the only procs that stack on each other for more damage from multiple procs.  Which is why slash/viral combo on shotguns (specifically slash based ones like the Tigris series) is so powerful.  You're halving the enemy's health while procing multiple instances of bleed.  To achieve similar results with other low RoF weapons you would need to go slash/gas.

Right, but my point was more that shotguns are already able to proc FAR more status effects than rifles and pistols, etc. can ever hope to achieve simply by bringing them to 100% status. I bought a random Mara Detron from Baro the other day which, if built correctly, can easily proc 14 status effects per shot. Now, granted - that's a pure Radiation gun so it's not going to be stacking Slash procs, but I can easily convert it to a predominantly Corrosive weapon and strip even high levels of armour in a few shots. If the Status Chance system was intended to normalise the average procs per shot between rifles and shotguns, it completely doesn't do that due to how massively per-pellet proc chance spikes towards 100%. Rifles are set to 25-30% status chance as a means of ensuring that they can be built for guaranteed or near-guaranteed Status per shot (near as I can determine), but attempting to apply the same system to shotguns causes issues and causes them to behave in ways I'm all but positive aren't intended.

Some procs are better than others. I'd argue Slash and Corrosive are the most common examples, and those surely need to be looked at themselves, at some point. My issue was more with the way Status Chance per pellet is calculated and how skewed the math is towards 100% Status Chance for the gun.

 

20 minutes ago, DatDarkOne said:

I can't say that I disagree with your idea at all.  Heck the only shotgun sthat I like using (Arca Plasmor with the other being Boar Prime) wouldn't even be effected by this change much if at all.  That said, I'm more a Bow and sniper kind of guy anyway.  😄 

Hey, I love my Arca Plasmor, as well! 🙂 I'm still not entirely sure what to do with it, though. It fires a single "pellet" so it doesn't benefit from typical shotgun multi-proc mechanics and it fires too slowly to benefit from typical rifle mechanics, so I have it built mostly just for direct damage, instead. I tried Gas and it does trigger a decent amount, but enemy resistances to gas are annoyingly arbitrary within the same faction. Again, that's a separate issue with damage types and status procs. But at least the Arca Plasmor procs stats like the inventory % suggests. If it says 80% Status Chance, that's 80% status chance per "pellet" with Multishot. I don't need to worry about behind-the-scenes math skewing my percentages.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...