[Warlock] Adjust Hellcaller and Feast of Souls RNG#11520
Merged
nyterage merged 2 commits intoJun 21, 2026
Conversation
…eir Demise as a threshold accumulator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR updates the Warlock module to adjust the values and behavior of several RNG systems, mainly Feast of Souls (on kills) for Affliction and the different Hellcaller procs for both Affliction and Destruction. These are described below, but here is a ZIP file containing all the analyses, sample files (parsed logs), figures, and summary:
HC_and_FoSAffKill_procs.zip
In addition to the RNG updates, we also checked how collapse works, as well as the different interactions between talents, stack gains, stack consumes (Blackened Soul damage events), Malevolence, and so on. The code has been updated with comments documenting most of these details.
One relevant finding about Hellcaller is that the number of pending collapse stacks does not necessarily have to match the number of Wither stacks. When a collapse starts on a target, it snapshots the number of Wither stacks on that target, and that becomes the number of stacks consumed by the collapse. However, any Wither stack gains that happen afterward while collapse is active do not refresh the number of pending collapse stacks. In practice, this means many collapses can end before all Wither stacks have been consumed.
However, if collapse conditions are met again while a collapse is already active, the number of stacks to be consumed by the active collapse is updated to the current number of Wither stacks.
In simc, this behavior has been replicated by giving stacks to the Blackened Soul dummy debuff used for collapse. These dummy stacks represent the active collapse snapshot/budget for that target. When collapse starts or is refreshed by collapse conditions being met again, the dummy stack count is synchronized to the current Wither stack count. Each Blackened Soul damage event then decrements both Wither and this dummy collapse counter until either Wither reaches 1 stack or the collapse counter is exhausted.
Feast of Souls (Affliction) (on kill)
Feast of Souls RNG proc with Quietus has not been retested here, but the previously analyzed average chance was
~4%-~5%, much lower than expected, possibly due to a bug.It appears that the chance for Feast of Souls in Affliction is much higher when the proc comes from killing a target rather than from Quietus. Samples were collected to analyze the proc rate of Feast of Souls across ~3200 kills, resulting in a
~11.8%average chance. Therefore, in the absence of more samples to get higher precision, we assume an average chance of12%.The RNG type was also analyzed, and, as expected, it is accumulator PRD, the same as Feast of Souls with Quietus and the Demonology version.
We also confirmed that the accumulator PRD appears to be shared between kills and Quietus procs, so this is how it has been implemented in simc.
Bleakheart Tactics (Hellcaller)
Chance to gain an additional stack when Wither gains a stack from Blackened Soul. Malevolence stack gains do not benefit from Bleakheart Tactics. Wither stack gains from Mark of Perotharn do not benefit from Bleakheart Tactics.
After analyzing several samples, we obtained an average chance of
14.90%for Affliction and14.95%for Destruction. The most likely real value used in-game is15%, which is the value we set in simc.The RNG type used is clearly accumulator PRD, and only a single global PRD accumulator is used, shared across all Wither targets.
· Affliction:· Destruction:· Destruction:· Destruction:· Destruction:Blackened Soul (Hellcaller)
Chance for a Wither to start collapse each time it gains a stack (on eligible Wither stack gain events). This proc cannot occur on a target while it already has an active collapse; it is only attempted when no collapse is active. Malevolence stack gains do not trigger the Blackened Soul collapse proc.
After analyzing several samples, we obtained an average chance of
23.18%for Affliction and22.47%for Destruction. In the absence of higher precision, the most likely real value used in-game is23%, which is the value we set in simc.The RNG type used is Flat %, so there does not appear to be any BLP mechanism associated with this proc.
· Affliction:· Destruction:· Affliction:· Destruction:· Affliction:· Destruction:· Affliction:· Destruction:Mark of Perotharn (Hellcaller)
Chance to gain a Wither stack on a Wither crit. Wither stack gains from Mark of Perotharn do not directly trigger collapse on that tick (although the collapse can be triggered on the next Wither tick if collapse conditions are met). Wither stack gains from Mark of Perotharn do not benefit from Bleakheart Tactics.
After analyzing several samples, we obtained an average chance of
15.23%for Affliction and15.12%for Destruction. The most likely real value used in-game is15%, which is the value we set in simc.The RNG type used is clearly accumulator PRD, and only a single global PRD accumulator is used, shared across all Wither targets.
· Affliction:· Destruction:· Affliction:· Destruction:· Affliction:· Destruction:· Affliction:· Destruction:Seeds of Their Demise (Hellcaller)
Chance to gain Shard Instability (Affliction) / Flashpoint (Destruction) when Blackened Soul deals damage.
After analyzing multiple logs, both in Affliction and Destruction, using a variable number of targets (1T, 3T, 5T, and 9T), and varying the cadence of Wither stack gains and consumes, we confirmed that this RNG uses a Threshold accumulator, similar to the system used by Agony energize or Nightfall proc. This proc is somewhat more complex than those other procs because, in addition to scaling with the number of targets, it also scales with the number of Wither stacks. The accumulator increment appears to follow this formula:
rng().range( inc_max * ( std::pow( wither_stacks_before, -2.0 / 3.0 ) * std::pow( active_withers, -3.0 / 4.0 ) ) )with an initial baseinc_maxvalue of0.240.stacks_beforeis used because, based on the result analysis, the data strongly favors using the number of stacks Wither had before the Blackened Soul damage event consumes a stack.roll_over=true: Although this parameter is difficult to distinguish in the samples, the result analysis favorsroll_over=trueoverroll_over=false, and this also tends to match how Blizzard uses it in other similar threshold RNG procs.· 1T-v1 (aff):· 1T-v2 (aff):· 3T-v1 (aff):· 3T-v2 (aff):· 5T-v1 (aff):· 5T-v2 (aff):· 9T-v1 (aff):· 9T-v2 (aff):· 1T-v1 (dest):· 1T-v2 (dest):· 3T-v1 (dest):· 3T-v2 (dest):· 5T-v1 (dest):· 5T-v2 (dest):