Addon ID

  • salmanshh_statforge

Info

Statistics

  • Download count20 total downloads
  • Latest download count 17 downloads of latest version
  • Average download count1 downloads per day average

Owners

A list of all Actions, Conditions and Expressions supported in this addon.

Activation

  • Actions

    Set buff {0} active: {1}

    Enables or disables a buff without removing it. Disabled buffs stay in the stack but do not contribute to stat totals.

    Set buffs with tag {0} active: {1}

    Enables or disables every buff that has the given tag. Useful for suppressing an entire group of buffs at once.

    Set buffs matching tags {0} ({1}) active: {2}

    Enables or disables buffs matching a tag list. 'Any' affects buffs with at least one matching tag. 'All' only affects buffs that have every tag listed.

    Toggle buff {0} on/off

    Flips a buff between enabled and disabled. If it was on it turns off, and vice versa.

Buff Links

  • Actions

    Link {1} on {2} → {4} buff {3} (link ID: {0})

    Creates a reactive link between two buffs. When the source buff has a certain event (e.g. it expires), an action is automatically performed on the target buff. Useful for chains like 'when shield expires, remove armour bonus'.

    Add buff link from JSON: {0}

    Registers a buff link from a JSON string. See the documentation for the buff link definition format.

    Clear all buff links

    Removes all registered buff links. The buff stack is not affected.

    Remove all links involving buff {0}

    Removes every link where the given buff is either the trigger (source) or the target. Call this before removing a buff that has links to avoid ghost references.

    Remove buff link {0}

    Removes a specific buff link by its ID. The buffs it connected are not affected.

Buff Management

  • Actions

    Add buff {0} to stat {1} with value {2} and tags {3}

    Adds a permanent buff to the object. If a buff with the same ID already exists it will be replaced. Use tags to group buffs together for easy removal later.

    Add buff from JSON: {0}

    Registers a buff from a JSON string. Useful for loading buffs from files or variables. The JSON must follow the buff definition format from the documentation.

    Add buff {0} to stat {1} value {2} mode {3} tags {4} source {5}

    Adds a permanent buff with full control over all options in a single action. The source lets you label who created this buff so you can remove it all at once later (e.g. when an item is unequipped).

    Add buff {0} to stat {1} value {2} mode {3} tags {4}

    Adds a permanent buff and lets you choose how it stacks with other buffs on the same stat. Add = flat bonus, Multiply = percentage bonus, Override = force to a specific value.

    Add debuff {0} to stat {1} with value {2} and tags {3}

    Adds a permanent debuff to the object. Automatically includes the 'debuff' tag so you can cleanse all debuffs at once. Any extra tags you supply are added alongside it.

    Add debuff {0} to stat {1} value {2} mode {3} tags {4} source {5}

    Adds a permanent debuff with full control over stacking mode, tags, and source. Automatically includes the 'debuff' tag. The source lets you remove all debuffs from the same origin at once.

    Add debuff {0} to stat {1} value {2} mode {3} tags {4}

    Adds a permanent debuff with a chosen stacking mode. Automatically includes the 'debuff' tag. Use 'multiply' for percentage penalties (e.g. -30 = -30% speed) and 'override' to hard-cap a stat.

    Add timed buff {0} to stat {1} value {2} for {3} seconds tags {4}

    Adds a buff that automatically expires after the given number of seconds. Fires 'On buff expired' and 'On buff removed' when time runs out.

    Add timed buff {0} to stat {1} value {2} mode {3} for {4}s tags {5} source {6}

    Adds a timed buff with full control: stacking mode, duration, tags, and source all in one action.

    Add timed debuff {0} to stat {1} value {2} for {3} seconds tags {4}

    Adds a debuff that automatically expires after the given number of seconds. Automatically includes the 'debuff' tag. Fires 'On buff expired' and 'On buff removed' when time runs out.

    Add timed debuff {0} to stat {1} value {2} mode {3} for {4}s tags {5} source {6}

    Adds a timed debuff with full control: stacking mode, duration, extra tags, and source all in one action. Automatically includes the 'debuff' tag.

    Clear all buffs

    Removes every buff from this object at once. Fires 'On buff removed' for each buff, then 'On stack cleared' once at the end.

    Load buff stack from JSON: {0}

    Loads a JSON array of buff objects and adds them all to the stack in one action. Use this in 'On start of layout' to pre-load a character's starting buffs from a variable, JSON plugin, or inline string.

    Remove buff {0}

    Removes the buff with this ID. If no buff with this ID exists nothing happens.

    Remove all buffs with tag {0}

    Removes every buff that has the given tag. Fires 'On buff removed' for each one.

    Remove buffs matching tags {0} ({1})

    Removes buffs that match a list of tags. 'Any' removes buffs that have at least one of the tags. 'All' removes only buffs that have every tag in the list.

    Remove all buffs on stat {0}

    Removes every buff that targets the given stat, regardless of their tags or source.

Source Tracking

  • Actions

    Add buff {0} to stat {1} value {2} tags {3} source {4}

    Adds a permanent additive buff and tags it with a source label. Use the Remove buffs by source action to strip everything this source added in one call.

    Add timed buff {0} to stat {1} value {2} for {3}s tags {4} source {5}

    Adds an additive timed buff and stamps it with a source label. The buff expires after the given seconds.

    Remove all buffs from source {0}

    Removes every buff whose source matches the given label exactly. Use this when an item is unequipped or an ability ends to clean up everything it contributed in one call.

    Set buffs from source {0} active: {1}

    Enables or disables all buffs from a given source without removing them. Disabled buffs stay in the stack but are not counted in stat totals.

    Set source of buff {0} to {1}

    Changes the source label on an existing buff without removing or re-adding it. Pass an empty string to clear the source.

Stack Thresholds

  • Actions

    Add rule {0}: when {1} {2} {3} → {5} buff {4}

    Registers a rule that watches a stat and automatically fires an action on a buff when the stat crosses a threshold number. For example: 'when hit_count reaches 5, activate berserk_buff'.

    Add threshold rule from JSON: {0}

    Registers a threshold rule from a JSON string. See the documentation for the threshold rule definition format.

    Re-arm threshold rule {0}

    Re-enables a threshold rule that previously fired and was not set to repeat. The rule will fire again on the next qualifying threshold crossing.

    Clear auto-reset on rule {0}

    Removes the auto-reset from a threshold rule. After the rule fires, the watched stat will no longer be automatically changed.

    Clear all threshold rules

    Removes all registered threshold rules at once. The buff stack is not affected.

    Subtract {1} from stack counter {0}

    Decreases a stat's base value by the given amount. Fires 'On stat changed' and evaluates threshold rules.

    Add {1} to stack counter {0}

    Increases a stat's base value by the given amount. Use this as a hit counter, combo counter, or charge counter. Fires 'On stat changed' and evaluates any threshold rules watching this stat.

    Remove threshold rule {0}

    Removes a threshold rule so it will no longer fire.

    Reset stack counter {0} to zero

    Sets a stat's base value back to 0. Fires 'On stat changed' and evaluates threshold rules. Use this to reset a combo or hit count after the threshold fires.

    After rule {0} fires, reset its stat to {1}

    After the threshold rule fires, automatically resets the watched stat's base value to the given number. Set to 0 for the classic 'every 5 hits' combo reset pattern.

    Set rule {0} can repeat: {1}

    Controls whether a threshold rule re-arms itself after firing. Set to true for repeating patterns like 'every 5 hits'. Set to false for one-time triggers.

    Set stack counter {0} to {1}

    Sets a stat's base value to an exact number. Fires 'On stat changed' and evaluates threshold rules.

Stat Base

  • Actions

    Clear base value of stat {0}

    Removes the base value for a stat, reverting it to 0. Fires 'On stat changed' if the total changes.

    Set base value of stat {0} to {1}

    Sets the starting value of a stat before any buffs are applied. For example, set the base attack to 10 so buffs add on top of that. Fires 'On stat changed' if the total changes.

Tag Control

  • Actions

    Add tag {1} to buff {0}

    Adds a single tag to an existing buff. If the buff already has this tag nothing happens.

    Remove tag {1} from buff {0}

    Removes a single tag from an existing buff's tag list.

    Replace tags on buff {0} with {1}

    Replaces all tags on a buff at once with the new comma-separated list. Pass an empty string to remove all tags.

Timers

  • Actions

    Advance all buff timers by {0} seconds

    Manually ticks all active timed buffs forward by the given number of seconds. Only useful when Auto-tick timers is turned off in the behavior properties.

    Convert buff {0} to permanent

    Turns a timed buff into a permanent one, cancelling its countdown. The buff will stay active until removed manually.

    Convert buff {0} to timed with duration {1} seconds

    Turns a permanent buff into a timed one. The countdown starts from zero immediately.

    Reset timer of buff {0}

    Restarts a timed buff's countdown from zero without changing its total duration.

    Set duration of buff {0} to {1} seconds

    Changes how long a timed buff lasts. Does not reset the time already elapsed — the buff will expire sooner if elapsed is already high.

    Set elapsed time of buff {0} to {1} seconds

    Directly sets how much time has passed on a timed buff. If the value is equal to or greater than the duration, the buff expires immediately.

    Set buff {0} timer paused: {1}

    Pauses or resumes a timed buff's countdown. While paused, the buff stays active and does not count toward expiry.

Events

  • Conditions

    On buff activated

    Fires when a buff changes from disabled to enabled. Use LastBuffID and LastBuffStat inside this event.

    On buff added

    Fires when any buff is added to this object. Use LastBuffID, LastBuffStat, and LastBuffValue expressions inside this event to read details about the buff that was added.

    On buff deactivated

    Fires when a buff changes from enabled to disabled. Use LastBuffID and LastBuffStat inside this event.

    On buff expired

    Fires when a timed buff's countdown reaches zero, just before it is removed. Use LastBuffID and LastBuffStat inside this event.

    On buff link added

    Fires when a new buff link is registered.

    On buff link fired

    Fires whenever a buff link automatically executes its action. Use LastFiredLinkID, LastFiredLinkSourceBuff, and LastFiredLinkTargetBuff inside this event. Useful for debugging reactive chains.

    On buff removed

    Fires when any buff is removed — whether manually, by tag, by source, from a link, or because it expired. Use LastBuffID and LastBuffStat inside this event.

    On stack cleared

    Fires once after all buffs have been removed by the 'Clear all buffs' action.

    On stat changed

    Fires whenever the computed total of any stat changes. Use LastChangedStat to see which stat changed and LastChangedStatTotal for its new value. You can add a sub-condition 'LastChangedStat = "attack"' to filter for a specific stat.

    On threshold reached

    Fires when a threshold rule executes its action. Use LastRuleID, LastRuleWatchStat, LastRuleThreshold, LastRuleTargetBuff, and LastRuleAction inside this event. Add 'LastRuleID = "my_rule"' as a sub-condition to filter for a specific rule.

    On threshold rule added

    Fires when a new threshold rule is registered.

State Checks

  • Conditions

    Buff {0} has tag {1}

    True if the specified buff exists and has the given tag.

    Buff {0} source is {1}

    True if the specified buff exists and its source label exactly matches the given string.

    Has active buff on stat {0}

    True if at least one enabled buff is currently targeting the given stat.

    Has active buff with tag {0}

    True if at least one enabled buff has the given tag.

    Has buff {0}

    True if a buff with this ID exists, whether it is currently enabled or disabled.

    Has buff link {0}

    True if a buff link with this ID currently exists.

    Has any buff on stat {0}

    True if at least one buff — enabled or disabled — is targeting the given stat.

    Has buff from source {0}

    True if any buff in the stack was created by the given source.

    Has any buff with tag {0}

    True if at least one buff in the stack — enabled or disabled — has the given tag.

    Has threshold rule {0}

    True if a threshold rule with this ID currently exists.

    Buff {0} is active

    True if the buff exists and is currently enabled. Disabled buffs do not contribute to stat totals.

    Buff {0} is timed

    True if the buff is a timed buff with an active countdown.

    Threshold rule {0} is armed

    True if the threshold rule exists and will fire on the next qualifying threshold crossing. Rules that have fired and are not set to repeat will return false here.

    Buff {0} timer is paused

    True if the buff's countdown is currently paused.

    Stack {0} is above {1}

    True if the stat's computed total is strictly greater than the given value. A handy shortcut for checking counter thresholds in the event sheet.

    Stack {0} is below {1}

    True if the stat's computed total is strictly less than the given value.

    Stat {0} total is between {1} and {2}

    True if the computed total of the stat falls within the given range (inclusive on both ends).

Buff Info

  • Expressions

    BuffActiveState

    Returns 1 if the buff is active, 0 if disabled, or -1 if it does not exist.

    BuffDuration

    Returns the total countdown duration in seconds of a timed buff. Returns 0 for permanent buffs.

    BuffElapsedTime

    Returns how many seconds have elapsed since the timed buff was added or last reset. Returns 0 for permanent buffs.

    BuffMode

    Returns the stacking mode of a buff: "add", "multiply", or "override". Returns an empty string if the buff does not exist.

    BuffRemainingTime

    Returns how many seconds are left before the timed buff expires (duration minus elapsed). Returns 0 for permanent buffs or buffs that do not exist.

    BuffSource

    Returns the source label of a buff (who created it). Returns an empty string if the buff has no source or does not exist.

    BuffStat

    Returns the stat name that the buff targets. Returns an empty string if the buff does not exist.

    BuffValue

    Returns the numeric modifier value of a buff. Returns 0 if the buff does not exist.

Buff Lists

  • Expressions

    CountActiveBuffs

    Returns the number of buffs that are currently enabled (active = true).

    CountActiveBuffsByTag

    Returns the number of active buffs that have the given tag.

    CountActiveBuffsOnStat

    Returns the number of active buffs targeting the given stat.

    CountBuffs

    Returns the total number of buffs in the stack, including disabled ones.

    CountBuffsBySource

    Returns the number of buffs whose source exactly matches the given string.

    CountBuffsByTag

    Returns the number of buffs (active or inactive) that have the given tag.

    CountBuffsOnStat

    Returns the total number of buffs (active or inactive) that target the given stat.

    GetBuffByIndex

    Returns the ID of the buff at the given index (0-based) in the stack. Returns an empty string if the index is out of range. Pair with CountBuffs to loop through all buffs.

    GetBuffBySourceIndex

    Returns the buff ID at the given index among buffs matching the given source. Returns an empty string if out of range. Pair with CountBuffsBySource.

    GetBuffByTagIndex

    Returns the ID of the buff at the given index among buffs with the specified tag. Returns an empty string if out of range. Pair with CountBuffsByTag.

    GetBuffOnStatByIndex

    Returns the ID of the buff at the given index among buffs targeting the given stat. Returns an empty string if out of range. Pair with CountBuffsOnStat.

Event Context

  • Expressions

    CountLastBuffTags

    Returns the number of tags on the buff from the most recent 'On buff added' event. Pair with GetLastBuffTagByIndex to loop through them.

    GetLastBuffTagByIndex

    Returns the tag at the given index from the most recent 'On buff added' event. Pair with CountLastBuffTags.

    LastBuffID

    Returns the ID of the buff from the most recent buff event (added, removed, expired, activated, or deactivated). Only valid inside those trigger conditions.

    LastBuffMode

    Returns the stacking mode ("add", "multiply", or "override") of the buff from the most recent 'On buff added' event.

    LastBuffSource

    Returns the source label of the buff from the most recent 'On buff added', 'On buff removed', or 'On buff expired' event. Returns an empty string if the buff had no source.

    LastBuffStat

    Returns the stat name of the buff from the most recent buff event. Only valid inside buff trigger conditions.

    LastBuffValue

    Returns the numeric modifier value of the buff from the most recent buff event. Only valid inside buff trigger conditions.

    LastChangedStat

    Returns the stat name from the most recent 'On stat changed' event. Use this to identify which stat just changed.

    LastChangedStatTotal

    Returns the new computed total of the stat from the most recent 'On stat changed' event. Use this to update a HUD display without polling.

    LastFiredLinkID

    Returns the link ID from the most recent 'On buff link fired' event.

    LastFiredLinkSourceBuff

    Returns the source buff ID from the most recent 'On buff link fired' event (the buff whose event triggered the link).

    LastFiredLinkTargetBuff

    Returns the target buff ID from the most recent 'On buff link fired' event (the buff that received the action).

    LastRuleAction

    Returns the action string ("activate", "deactivate", "remove", or "add_from_template") from the most recent 'On threshold reached' event.

    LastRuleID

    Returns the rule ID from the most recent 'On threshold reached' event.

    LastRuleTargetBuff

    Returns the target buff ID from the most recent 'On threshold reached' event.

    LastRuleThreshold

    Returns the threshold value from the most recent 'On threshold reached' event.

    LastRuleWatchStat

    Returns the watched stat name from the most recent 'On threshold reached' event.

Links & Rules

  • Expressions

    CountArmedRules

    Returns the number of threshold rules that are currently armed and ready to fire on the next qualifying threshold crossing.

    CountBuffLinks

    Returns the total number of registered buff links.

    CountThresholdRules

    Returns the total number of registered threshold rules.

Stat Values

  • Expressions

    StatAddSum

    Returns the raw sum of all active 'Add' mode buff values on the stat, before multipliers or overrides are applied.

    StatBase

    Returns the base value of the named stat before any buffs are applied. Returns 0 if no base has been set.

    StatMultiplier

    Returns the combined multiplier for the stat: 1 + (sum of all active Multiply buff values / 100). Returns 1.0 if no multiply buffs are active (meaning no bonus).

    StatMultiplierPercent

    Returns the combined multiplier for the stat as a percentage bonus. For example, a multiplier of 1.5 returns 50, and 1.0 (no bonus) returns 0.

    StatTotal

    Returns the fully computed total of the named stat: base + add buffs, then multiplied by multiply buffs, then overridden if any override buffs are active. This is the main value to use in your game logic.

Tag Lists

  • Expressions

    CountBuffTags

    Returns how many tags the given buff has. Returns 0 if the buff does not exist.

    GetBuffTagByIndex

    Returns the tag at the given index on the specified buff. Returns an empty string if out of range. Pair with CountBuffTags.