Buff & Status Effect Manager

v1.2.2

Visual Scripting

Complete reference for all GC2 Visual Scripting integrations.

Overview

BSM fully integrates with Game Creator 2's Visual Scripting system. All functionality is available through Instructions, Conditions, Events and Properties - no coding required.

21
Instructions
14
Conditions
11
Events
6
Properties
All BSM Visual Scripting components are found under the category:Buff Status Effect Manager

Instructions

Instructions are actions that modify game state. Use them in Triggers, Actions, and Sequences.

InstructionDescriptionCategory
Apply Status EffectApplies a status effect to the target; the Source field records the caster (default: Self)Core
Remove Effects From SourceRemoves every effect on the target that was applied by a given sourceCore
Remove Status EffectRemoves a specific effect from the targetCore
Remove All EffectsRemoves all active effects from the targetCore
Dispel CategoryRemoves all effects of a specific categoryDispel
Dispel Category TypeRemoves all Buffs, Debuffs, or CC effectsDispel
Dispel by TagRemoves all effects with a specific tagDispel
Dispel by Cleanse TypeRemoves effects matching the cleanse type (Magic, Physical, etc.)Dispel
Add StacksAdds stacks to an existing effectStacking
Remove StacksRemoves stacks from an effect (may dispel if 0)Stacking
Add Immunity (Effect)Grants temporary immunity to a specific effectImmunity
Add Immunity (Category)Grants temporary immunity to a categoryImmunity
Add Immunity (Tag)Grants temporary immunity to effects with a tagImmunity
Add Temporary ImmunityGrants temporary immunity to a specific effect, category, or tag for a durationImmunity
Clear ImmunitiesRemoves all temporary immunitiesImmunity
Clear CooldownClears cooldown for a specific effectCooldown
Clear All CooldownsClears all effect cooldownsCooldown
Toggle AuraActivates, deactivates, or toggles an auraAura
Set Aura RadiusChanges the aura radius at runtimeAura
Set Aura EffectChanges which effect the aura appliesAura
Set Interaction SetAssigns an Effect Interaction Set to the target, or as the Global fallbackInteractions

Conditions

Conditions check game state and return true/false. Use them in Branches and conditional logic.

ConditionDescription
Has EffectReturns true if target has a specific effect active
Has Any EffectReturns true if target has any active effects
Has Effect CategoryReturns true if target has any effect of a category
Has Effect Category TypeReturns true if target has any Buff/Debuff/CC
Has Effect TagReturns true if target has any effect with a tag
Is Immune to EffectReturns true if target is immune to an effect
Is Immune to CategoryReturns true if target is immune to a category
Effect Stack CountCompares the stack count of an effect
Active Effect CountCompares total number of active effects
Effect Remaining DurationCompares remaining time of an effect
Can Apply EffectReturns true if effect could be applied (not blocked)
Has Effect From SourceReturns true if the target has an effect applied by a specific source (any effect if none is set)
Would Effect ReactReturns true if applying the effect right now would fire an interaction rule
Category Priority At LeastReturns true if the highest active Priority in a category is at least a value

Events

Events trigger when something happens. Add them to Trigger components to react to effect changes.

EventDescription
On Any Effect AppliedFires when any effect is applied to the target
On Any Effect ExpiredFires when any effect expires naturally
On Any Effect DispelledFires when any effect is manually removed
On Any Effect TickedFires on each tick of any effect
On Any Effect StackedFires when any effect gains or loses stacks
On Specific Effect AppliedFires when a specific effect is applied
On Specific Effect ExpiredFires when a specific effect expires
On Effect BlockedFires when an effect application is blocked (immunity)
On Category Type AppliedFires when any Buff/Debuff/CC is applied
On Effect ReactionFires when an interaction rule fires on the target (optional rule filter); the reaction source becomes the trigger Target
On Effect ResistedFires when an application fails its Apply Chance or resistance roll

Properties

Decimal properties plug into any GC2 number field (e.g. UI text, Change Attribute amounts, Branch comparisons).

PropertyDescription
Effect Stack CountCurrent stack count of an effect on the target (0 if inactive)
Effect Remaining DurationSeconds left on an effect
Active Effect CountNumber of active effects on the target
Effect ProgressNormalized 0–1 progress of an effect
Effect PriorityPriority of an effect if it is active on the target (0 otherwise)
Effect Apply ChanceEffective 0–1 chance that an effect lands on the target (Apply Chance × resistance)
Instructions on the definition (v1.2): every StatusEffectDefinition also carries On Apply, On Tick, On Expire and On Dispel instruction lists. For logic that belongs to a single effect, put it there instead of a separate Trigger. Self is the affected object, Target the caster.

Common Patterns

Poison Damage on Tick

Deal damage to the player every time a poison effect ticks.

  1. Add Trigger to Player with Event: On Specific Effect Applied
  2. Set Effect to your Poison definition
  3. Add another Trigger with Event: On Any Effect Ticked
  4. Add Condition: Has Effect (check for Poison)
  5. Add Action: Change Attribute (reduce Health)

Stun with Immunity After

After being stunned, grant brief immunity to prevent chain-stunning.

  1. Add Trigger with Event: On Specific Effect Expired
  2. Set Effect to your Stun definition
  3. Add Action: Add Immunity (Effect)
  4. Set Effect to Stun, Duration to 3 seconds

Healing Aura Zone

Create a zone that heals allies who stand in it.

  1. Create a HealOverTime effect (category: Buff, HasTick: true)
  2. Create empty GameObject with StatusEffectAura component
  3. Assign HealOverTime effect, set Radius to 5
  4. Set Target Mode to AlliesOnly
  5. Enable Remove On Exit

React to an Elemental Combo

Show feedback and reward the caster when Wet + Shock becomes Electrocuted.

  1. Create the rule (Incoming: Shock, Present: Wet, Result: Electrocuted) and put it in an Interaction Set
  2. Assign the set to the enemy's StatusEffectManager (or use Set Interaction Set with scope Global once)
  3. Add Trigger with Event: On Effect Reaction, Rule = your rule
  4. The trigger's Target is the caster: add Action Change Attribute on Target to grant mana back
  5. (Optional) Use Condition Would Effect React in the ability to highlight the combo before casting

Boss Immune to CC

Make boss enemies immune to all crowd control effects.

  1. Create an ImmunityProfile asset
  2. Add your CrowdControl category to Immune Categories
  3. Assign this profile to the Boss's StatusEffectManager
  4. (Optional) Add Trigger with Event: On Effect Blocked to show "Immune!" text