Skip to content

Feature: Support Brand Recall Builds - DPS & Cost Calculations - #10344

Open
Nerotox wants to merge 4 commits into
PathOfBuildingCommunity:devfrom
Nerotox:feature/brand-recall-cost
Open

Feature: Support Brand Recall Builds - DPS & Cost Calculations#10344
Nerotox wants to merge 4 commits into
PathOfBuildingCommunity:devfrom
Nerotox:feature/brand-recall-cost

Conversation

@Nerotox

@Nerotox Nerotox commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Description of the problem being solved:

  • Adds Support for Brand Recall (+Triggerbots) oriented builds in terms of DPS & Cost calculations.
  • Socket Groups including Brand Recall allows selecting a Brand Socket Group that is recalled. This selection is used for calculating DPS and costs. Only socket groups containing a brand are valid selections and are shown as selectable. Selections stay consistent if socket groups are moved around or re-named.
  • Brand skills now have a new "Recalled" Skill mode. This mode is only available for selection and visible if a Brand Recall skill group has an assigned brand. "Recalled" mode works for all brand skills & Spells triggered by arcanist brand. If a spell is triggered by arcanist brand and already has multiple skill modes, each mode will be duplicated and has a "SKILL MODE (Recalled)" variant added that combines recall calculations with already existing skill mode variations (e.g. Sparks Maximum Hits mode).
  • Brands in "Recall" mode have a new stat in the calc sheet called "Recall Rate" or "Recalled Activations/s" which is basically the cast speed/hit rate for this mode. Recall Rate excludes natural brand triggers completely, as these wouldn't really make sense to include and are very inconsistent due to removing the brand from the target ingame resetting the trigger timer of the attached brand.
  • Brands in "Recall" mode now have a new stat "Total Recall Life Cost/s", which shows the total amount of cost spent across (most of the time) the 2 brand recall setups (1 in weapon trigger, 1 via automation).
  • Arcanist Brands in "Recall" mode that have multiple active skills attached, consider these skills to be triggered alternating.
  • A "Default" mode is still available for Brands, even if they are selected as recall target in a brand recall socket group.
  • Triggerbots are supported throughout all calculations & triggers (as these builds are 99% played with triggerbots).
  • Adds support for Runegraft of Time.
  • Due to all of these new calcs and correct numbers, modifiers such as cooldown recovery rate, brand recall cooldown recovery rate or maximum active brands can now accurately display dps increases on the tree / gear.

Steps taken to verify a working solution:

  • Did a lot of testing with the 2 PoBs linked below.
  • Compared the numbers of custom config calcs from before with final calcs with the implementation.

Link to a build that showcases this PR:

Arma Brand of Recalling: https://pob.codes/b/dFA_M3JXu1N
image

Arcanist Brand Magma Orb: https://pob.codes/b/uV1dcUD8Xhn
image

Test screenshots:

Brand Recall Gem Selection:
image

Brand Recall Cost now includes the recalled brands costs (20% of brand cost * active brand count). For Arcanist Brand Builds this also includes the Spell cost of the triggered spell.
image

Like Clockwork shows that CDR increases recalls per second & therefore DPS:
image

Foulgrasp Support shows a DPS increase now for Brand Recall builds, due to increasing the number of active brands available to be recalled:
image

Recall Rate is calculated taking both Brand Recall Setups into account:
image

Runegraft of Time shows a correct ~25% dps increase:
image

output.SkillTriggerRate, simBreakdown = calcMultiSpellRotationImpact(env, config.triggeredSkillCond and triggeredSkills or {packageSkillDataForSimulation(actor.mainSkill, env)}, output.EffectiveSourceRate, (not actor.mainSkill.skillData.triggeredByBrand and ( triggerCD or triggeredCD ) or 0), triggerChance, actor)
local simulatedTriggerRate = output.SkillTriggerRate
if cooldownNotConsumedChance > 0 and simulatedTriggerRate > 0 then
output.SkillTriggerRate = 1 / (cooldownConsumedChance / simulatedTriggerRate + (1 - cooldownConsumedChance) / output.EffectiveSourceRate)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Cooldown reuse exceeds the shared CoC trigger budget

The correction applies cooldown preservation independently to each spell after the CoC rotation simulation. This can produce more casts than the triggering attack supplies and inflate reported Hit DPS.

A native calculation on this head reproduces it with this historical CoC DD build: replace Lancing Steel of Spraying with Cyclone at the same level/quality, keep Desecrate and Detonate Dead of Chain Reaction linked, and add 20% chance for Skills to not consume a Cooldown on use in Custom Modifiers. Equipment, passives and other configuration remain unchanged. Cyclone calculates 10.6005 attacks/s, 98% hit chance and 94.5798% crit chance, without Triggerbots. The two spells then total 11.3891 casts/s, exceeding even the attack rate before misses or non-crits. CoC permits only one supported spell per trigger event.

Toggling that modifier raises DD's reported Hit DPS from 22,235 to 24,810 (+11.58%), with identical damage per hit. This is a reproducible character variant using the Runegraft modifier, not an in-game DPS measurement.

AI-assisted review disclosure: This finding was identified during a review using OpenAI Codex and confirmed through native headless calculations and export/reimport checks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants