Yes, this is another thread complaining about the Inferno Force Staff and Psyker nonsense. However, this is going to be a fairly constructive one. In this, I am going to perform an in-depth analysis of the problems the weapons design causes, and put forth a practical solution that maintains the fantasy and flavor of the weapon, in a form that is much healthier for the game space. To start, let’s begin with:
The Design
The design of the Inferno Force Staff is a legitimately interesting one. It’s a close-range horde clear weapon that trades the ability to efficiently deal with distant threats for very efficiently handling large volumes of weak melee enemies. It’s a powerful weapon that fills a specific, relatively unique role in Psyker’s kit. The only other parts of the kit that comes close is Assail, but Assail is both mid-range and comparatively limited in its number of targets, and the Force Greatsword’s special attack, but the Moonlight Force Greatsword has far more limited availability and usage. In Psyker’s kit, Inferno Force Staff is the reliable, close-in horde clear weapon that can be used at nearly any time and in nearly any scenario, and with the right build, taking the various Warpfire synergy talents as well as Brain Rupture and Kinetic Flayer to augment the Psyker’s damage into elite targets, it can do pretty respectable damage to everything within its 15 meter range.
In the overall game space, the Inferno Force Staff slots very neatly into the “Will No One Rid Me of These Turbulent Poxwalkers?” role, alongside the Skitarii’s Purgator Servo-Skull, Zealot’s Purgation Flamer and Immolation Grenade, Ogryn’s Rumbler, and probably a few more I can’t think of off-hand. And it fills that role exceptionally well.
The Problem
The problem with the Inferno Force Staff is that it fills this role too well. Its ability to hit quite literally every enemy within its cone simultaneously leads to absurd clear times, which when paired with its nature as a Psyker staff, meaning the only limits on using it are Peril, and you end up with a weapon that can be fired nearly infinitely that can simultaneously kill an arbitary number of chaff enemies in the highest difficulties of the game in a handful of seconds. To illustrate the point, here’s a couple examples of what the Inferno Force Staff can do in Havoc 40, the highest possible difficulty:
As you can see, it takes less than 5 seconds for the Psyker to completely erase 100 poxwalkers, or 60 poxwalkers that have been seeded with Maulers, Ragers, and a Crusher.
Why Is This A Problem?
The Fun Problem
On paper, this seems great. A Psyker player can just run an Inferno Force Staff, delete every horde the team runs across and everyone carries on to great success, right?
And you wouldn’t be wrong there; it does, in fact, make the mission much easier to succeed at. But that’s not the only metric by which to judge game design.
For example, imagine you are an Ogryn, and you’re running the Power Maul because you really like hitting things really hard and watching them explode. A horde of enemies comes screaming out of a door way, and you get excited. Oh boy, it’s time to blow up that horde and start having some fun. So you hit the special button, your Ogryn pushes the button, and you wind up to hit that horde like the Fist of God Himself, and the instant before your weapon reaches the first enemy, the entire horde just flops over dead. Your weapon never explodes, you don’t do any damage, you don’t get any feedback. All you get is limply slapping a corpse or two around, assuming you even have corpse ragdolls enabled.
This is not fun.
In fact, it’s the antithesis of fun. It actively creates negative feedback loops, denying the visceral catharsis that the game’s core mechanics can and generally do provide, and utterly ruins the experience when playing alongside someone using the weapon.
At its core, the issue is that Inferno Force Staff is a weapon with infinite resource that can hit every enemy at once, removing other players’ ability to engage with the game in a number of meaningful ways, while also invalidating a number of potential builds that could be used to confront the problem of chaff enemies. After all, why would you need a Zealot with Immolation Grenades, or the Skitarii with a Purgator Servo-Skull, or so on, when the Psyker can just delete the horde faster than they can, for free, every time?
The Balance Problem
In addition, there is the balance consideration as well. Most weapons in darktide have a limited capacity to engage with enemies. Every attack in the game from these weapons has a “cleave” limit, a maximum amount of “hitmass” it can penetrate and continue to hit more targets. A sword can only go through so many poxwalkers, a bullet can only go through so many shooters, etc, etc. What that means is that the capacity of a player using those weapons to deal damage has an upper limit. If I were to use an attack that can only hit 3 poxwalkers for 200 damage each, it doesn’t matter if there’s 3, 5, or 200 poxwalkers. I’m still only doing 600 damage per swing, no matter how large or dense the enemy force is. There is a logarithmic scaling in place; as enemy density increases, player output approaches a fixed upper limit and cannot exceed that.
Some weapons, however, do not have this limitation. Flamers (such as the Inferno Force Staff) and explosives are the primary examples, where they do damage to every enemy in their area of effect, regardless of how many enemies there are. This means that there is no upper limit on player capacity. A flamer attack that does 200 damage does 600 damage when there’s only 3 poxwalkers, but it does 40,000 damage when there’s 200 poxwalkers. It’s linear scaling with density in this case; the more enemies there are, the more damage you do, with no upper bound or limit.
On its own, this is fine; area weapons are good at killing lots of things. But this is not in a vacuum. Darktide primarily drives difficulty through increasing enemy density. In higher difficulties, there are more and more enemies in the same space, each with greater and greater hitmass, limiting the capacity of most “normal” weapons even further. But weapons with infinite cleave don’t have this issue. They continue to scale to infinity, making the gap between the regular weapons and the infinite cleave weapons even larger.
It’s at the point now where, even in Auric let alone high Havoc ranks, infinite cleave weapons like the Inferno Force Staff and Rumbler are widely considered far and away the most powerful weapons in the game, because they scale with density in a way nothing else does, and the very thing that’s supposed to make the game harder makes these weapons better.
The Solution
The solution to the problem of the Inferno Force Staff is a relatively simple one. If the core of the issue is that the Psyker is able to kill everything before other players can interact with it and do infinite damage as long as there’s enemies to damage, simply limit how many enemies the Inferno Force Staff is able to hit at any given time. This doesn’t have to be a low number, in fact it should probably be fairly high, but there should be a limit, such that the Inferno Force Staff, and other infinite cleave weapons really, have the same sort of logarithmic scaling as every “normal” weapon in the game.
To that end, I propose adding a hit mass limitation. The exact details are difficult to explain without first establishing how the Inferno Force Staff functions however, so with that:
How Inferno Force Staff Works
The Inferno Force Staff operates in two major ways.
-
action_shoot_flame (aka, Left Click)
When fired, this triggers an ActionFlamerGasBurst action. The ActionFlamerGasBurst action sends out 8 raycasts (raycasts for those unfamiliar are just invisible lines in the game world) that extend in a semi-random cone around the player’s crosshairs until they collide with something that has no health (aka, level geometry). Every enemy whose hitbox intersects with one or more of these raycasts is then flagged as “hit” by the burst and suffers the relevant effects. The result from the player’s perspective is a burst of flame in a frontal cone that does low direct damage but relatively high stagger and applies a stack of the warpfire dot effect to everything in front of them. -
action_shoot_charged_flame (aka, Channeled)
When fired after charging up with the right click, an ActionFlamerGas action is triggered instead. The ActionFlamerGas action works similarly to the ActionFlamerGasBurst but, as the name implies, it is not a singular burst. When activated, ActionFlamerGas will send out the same 8 raycasts every physics frame, (aka, every 0.017s, or 1/60 of a second), and instead of dealing damage to these enemies, they are instead added to a “targets hit” list. Every approximately 0.3s (depending on stats and how long they’ve been targeted), there is a check and if an enemy on the “targets hit” list has been struck by at least one raycast for 33% of the raycasts they could have been hit by, the target is considered hit by the flame. This deals damage, applies warpfire, and so on, then escalates the target up a damage scale, meaning they will take more damage on the next check, if they are still being targeted. And every time an enemy fails to reach that 33% threshold, they move a step down the damage scale, being removed from the “targets hit” list if they were on the lowest damage step before hand. The end result from the player’s perspective is a channeled cone of flame that does more and more damage to an enemy the longer you keep that enemy in the cone.
How To Fix Inferno Force Staff
As mentioned, fixing the Inferno Force Staff really just comes down to adding hitmass limitations. To do that, all that’s required is going into ActionFlamerGasBurst and ActionFlamerGas to set those limits.
-
ActionFlamerGasBurst
This is the controller for the action_shoot_flame, triggered by simplying clicking the Left Mouse Button. In this, there is code for processing the raycasts and determining if a target has been hit by one, known as the _process_hit method. To add hitmass limitations, all we need to do is to track the total hitmass of all targets hit by the raycasts, and stopping the raycasts once the total hitmass reaches the limit. In practice, what that looks like is the _process_hit method being provided the total hitmass hit so far, adding the new target’s hitmass to that total, and then returning “yes, continue to hit more targets” or “no, stop hitting targets now” based on the new total. -
ActionFlamerGas
This is the controller for action_shoot_charged_flame, triggered by holding Right Mouse Button to charge then holding Left Mouse Button to fire. As said above, this works very similarly to ActionFlamerGasBurst, right on down to the _process_hit method, and the fix is nearly identical there as well. The difference from ActionFlamerGasBurst is that here, we’re tracking the total hitmass for each individual physics frame. Every frame, the raycasts go out and hit up to the hitmass limit worth of enemies and add those targets to the “targets hit” list. Once the hitmass limit is reached, any further targets are ignored, as if they weren’t in the cone at all, and the hit effects are determined every approximately 0.3s accordingly.
Here are the previously shown examples with these changes, setting a hitmass limit of 24 on action_shoot_charged_flame:
As you can see, this significantly slows the horde clear potential, especially against mixed hordes with high hitmass enemies mixed into the chaff. This gives other players much more room to engage with the enemies and significantly reduces the gap between regular weapons and the infinite cleave weapons. The exact limit I set is probably not the correct one for the appropriate balance of the weapon, I deliberately set it a little on the low side to more clearly illustrate the impact of the change, but the concept is very appropriate, I feel.
The code for the changes I made is here, if anyone is curious. I used my mod Enginseer’s Workbench to apply it in the game and to set the hitmass limit values in the Inferno Force Staff’s weapon template:
flamer_limit_modification.txt (14.2 KB)
Thank you for your attention to this matter.
