Skip to content

GameplayAbilities

66 tools. Back to the index.

activate_ability

Destructive.

Try to activate one granted ability on an editor-world actor ability system component with TryActivateAbility; activated is the engine verdict, false when the activation checks of the ability refuse it. Use grant_ability first, and cancel_ability to stop it.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
ability_name string yes Ability to match among the granted specs: the ability_name from get_active_abilities, the class name with or without _C ("GA_Jump"), the asset path ("/Game/Abilities/GA_Jump") or the class path; case-insensitive, first match wins

Returns: { actor_name, ability_name, activated }

add_ability_task

Additive.

Create an ability task on the primary instance of an ability already granted to an editor-world actor; the task is initialized (AwaitingActivation), never activated. task_class is only validated: it always builds the abstract base UAbilityTask, which logs a warning and an ensure.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
ability_class string yes Class path of an ability already granted to the actor, e.g. "/Game/Abilities/GA_Jump.GA_Jump_C"; it must be instanced (have a primary instance)
task_class string yes Class path of a UAbilityTask subclass, e.g. "/Script/GameplayAbilities.AbilityTask_WaitDelay"; checked, but not used to build the task
instance_name string no Name for the new task instance (default "Default")

Returns: { actor_name, ability_class, task_class, instance_name, task_name, added, task_state }

add_attribute_to_set

Additive.

Add one FGameplayAttributeData member variable to an AttributeSet Blueprint, with default_value as its BaseValue and CurrentValue, then compile and save it. A name that is already an attribute of the class is left as it is (added false, already_existed true); a name taken by a variable of another type fails. attribute_present and base_value are read from the compiled class; refused during PIE.

Parameter Type Required Description
attribute_set_path string yes Full asset path of the AttributeSet Blueprint
attribute_name string yes Name of the new attribute member variable
default_value number no Initial BaseValue and CurrentValue of the attribute, default 0; not applied to an attribute that already exists.

Returns: { attribute_set_path: string, attribute_name: string, default_value: number, added: bool, already_existed: bool, attribute_present: bool, base_value?: number, default_applied?: bool, saved: bool }

add_gameplay_effect_component

Additive, idempotent.

Add one empty UGameplayEffectComponent of a standard type to the GEComponents of a GameplayEffect Blueprint CDO and save without recompiling. Idempotent: an existing component of that type returns already_existed=true. Configure it with the set_gameplay_effect_component_* tools; get_gameplay_effect_components lists them.

Parameter Type Required Description
gameplay_effect_path string yes Asset path of the GameplayEffect Blueprint, e.g. "/Game/GAS/Effects/GE_Damage".
component_type string yes Bare type name, case-insensitive: AssetTags, TargetTags, AdditionalEffects, ChanceToApply, Immunity, TargetTagRequirements, RemoveOther, CustomCanApply, BlockAbilityTags, Abilities or CancelAbilityTags (not the full class name).

Returns: { gameplay_effect_path: string, component_type: string, component_class: string, component_count: int, component_added: bool, already_existed: bool }

add_gameplay_effect_modifier

Additive.

Append one modifier with a constant magnitude to the Modifiers array on the class default object of a GameplayEffect Blueprint, then save it without recompiling and without an undo entry. attribute_name is looked up across every loaded AttributeSet class; an unknown attribute or modifier_op, a running PIE session or a read-only root fails before any edit. Each call appends a new entry, even an identical one; modifier_index says where it went. Change its magnitude type with set_gameplay_effect_modifier_set_by_caller, set_gameplay_effect_modifier_attribute_based or set_gameplay_effect_modifier_custom; remove_gameplay_effect_modifier drops it; get_gameplay_effect_modifiers lists them.

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
attribute_name string yes Attribute to modify, Health or MySet.Health: the bare name or AttributeSetClass.Attribute, case-insensitive, first match among the loaded AttributeSet classes
modifier_op string yes Add, Multiply, Divide, or Override (case-insensitive)
magnitude number yes Constant magnitude of the modifier, stored as a ScalableFloat without a curve

Returns: { ge_blueprint_path: string, attribute_name: string, modifier_op: string, magnitude: number, modifier_index: int, modifier_count: int, magnitude_readback_ok: bool, magnitude_readback: number, added: bool }

apply_gameplay_effect

Destructive.

Apply a GameplayEffect class to an editor-world actor ability system component: an outgoing spec at the given level, with a fresh context from that component, applied to self. applied tells whether the engine returned a valid handle. apply_multiple_gameplay_effects applies a list.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
effect_class string yes Class path of a UGameplayEffect subclass; a Blueprint GE needs its _C class path, e.g. "/Game/Effects/GE_Burn.GE_Burn_C"
level number no Effect level for scalable magnitudes, fractions allowed; default 1.0

Returns: { actor_name, effect_class, level, applied }

apply_multiple_gameplay_effects

Destructive.

Apply several GameplayEffect classes at one level to an editor-world actor ability system component; each entry is loaded and applied separately, so a bad path does not stop the rest. Returns requested, applied_count, failed_count and the per-entry applied and failed lists.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
effect_classes array yes JSON array of UGameplayEffect class path strings, e.g. ["/Game/Effects/GE_Burn.GE_Burn_C"]; non-string entries go to failed
level number no GameplayEffect/ability level applied to all effects (default 1.0)

Returns: { error, effect_class, applied, active_handle, actor_name, requested, applied_count, failed_count, failed }

cancel_ability

Destructive.

Cancel one granted ability on an editor-world actor ability system component (CancelAbilityHandle), reading its spec before and after: returns was_active, still_active and cancelled. success is false, with an error, when the ability is still active afterwards (it may not allow cancelling).

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
ability_name string yes Ability to match among the granted specs: the ability_name from get_active_abilities, the class name with or without _C ("GA_Jump"), the asset path ("/Game/Abilities/GA_Jump") or the class path; case-insensitive, first match wins

Returns: { actor_name, ability_name, was_active, still_active, cancelled } -- read back from the spec: cancelled means was_active and not still_active

configure_ability_tags

Destructive, idempotent.

Set a GameplayAbility CDO's asset tags from a list of tag strings

Parameter Type Required Description
ability_blueprint_path string yes Full asset path of the GA Blueprint
asset_tags array yes List of gameplay tag strings, e.g. [Ability.Fire]

Returns: { ability_blueprint_path: string, resolved_tags: [string], unknown_tags: [string], ability_tags: [string], tag_count: int, configured: bool }

create_attribute_set_asset

Additive.

Create (or reuse) an AttributeSet Blueprint at package_path/name like create_attribute_set_blueprint (a Blueprint of another class there is an error, and is left untouched), add one FGameplayAttributeData variable per attributes entry, then compile and save it. A name the class already has is skipped and listed in skipped_attribute_names; success is false when an added attribute is missing from the compiled class or did not get its default_value. Refused during PIE.

Parameter Type Required Description
name string yes Asset name without a path, e.g. "AS_Character".
package_path string no Content folder for the new asset, e.g. "/Game/GAS/Attributes"; defaults to /Game/Blueprints.
attributes array no Array of {"name": "Health", "default_value": 100} objects; default_value (default 0) becomes the BaseValue and CurrentValue of the compiled default. Entries without a name are ignored.

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_attribute_set: bool, already_existed: bool, attributes_added: int, added_attribute_names: [string], skipped_attribute_names: [string], failed_attribute_names: [string], attributes_applied: bool, created: bool }

create_attribute_set_blueprint

Additive.

Create an empty Blueprint parented to UAttributeSet at package_path/name, compile and save it; returns asset_path and is_attribute_set. An AttributeSet Blueprint already there is returned untouched (created false, already_existed true); a Blueprint of another class there is an error. To add attributes use add_attribute_to_set, or create_attribute_set_asset in one call. Refused during PIE.

Parameter Type Required Description
name string yes Asset name without a path, e.g. "AS_Character".
package_path string no Content folder for the new asset, e.g. "/Game/GAS/Attributes"; defaults to /Game/Blueprints.

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_attribute_set: bool, already_existed: bool, created: bool }

create_gameplay_ability_blueprint

Additive.

Create a Blueprint parented to UGameplayAbility at package_path/name, compile and save it; returns asset_path, generated_class and is_gameplay_ability. A GameplayAbility Blueprint already at that path is returned untouched (created false, already_existed true); a Blueprint of another class there is an error. Refused during PIE.

Parameter Type Required Description
name string yes Asset name without a path, e.g. "GA_Fireball".
package_path string no Content folder for the new asset, e.g. "/Game/GAS/Abilities"; defaults to /Game/Blueprints.

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_gameplay_ability: bool, already_existed: bool, created: bool }

create_gameplay_cue_notify_actor

Additive.

Create a Blueprint parented to AGameplayCueNotify_Actor (a spawned, instanced cue actor) at package_path/name, compile and save it, or reuse the one of that class already there (created false, already_existed true); a Blueprint of another class there is an error. A registered gameplay_cue_tag is written to the CDO; an unregistered one only yields cue_tag_set=false. Refused during PIE.

Parameter Type Required Description
name string yes Asset name without a path, e.g. "GCN_Beam".
package_path string no Content folder for the new asset, e.g. "/Game/GAS/Cues"; defaults to /Game/Blueprints.
gameplay_cue_tag string no Registered gameplay tag written as GameplayCueTag and GameplayCueName, e.g. "GameplayCue.Beam"; an unregistered tag is skipped (cue_tag_set=false), not an error.

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_gameplay_cue_notify: bool, cue_tag_set: bool, cue_tag_requested: string, cue_tag: string, already_existed: bool, created: bool }

create_gameplay_cue_notify_burst

Additive.

Create a Blueprint parented to UGameplayCueNotify_Burst (modern non-instanced one-shot notify), compile and save it, or reuse the one of that class already there (created false, already_existed true); a Blueprint of another class there is an error.

Parameter Type Required Description
name string yes Asset name, e.g. GCN_Hit
package_path string no Target content path, defaults to /Game/Blueprints
gameplay_cue_tag string no Optional registered GameplayCue tag to set on the CDO

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_gameplay_cue_notify: bool, cue_tag_set: bool, cue_tag_requested: string, cue_tag: string, already_existed: bool, created: bool }

create_gameplay_cue_notify_looping

Additive.

Create a Blueprint parented to AGameplayCueNotify_Looping (modern instanced looping notify), compile and save it, or reuse the one of that class already there (created false, already_existed true); a Blueprint of another class there is an error.

Parameter Type Required Description
name string yes Asset name, e.g. GCN_Aura
package_path string no Target content path, defaults to /Game/Blueprints
gameplay_cue_tag string no Optional registered GameplayCue tag to set on the CDO

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_gameplay_cue_notify: bool, cue_tag_set: bool, cue_tag_requested: string, cue_tag: string, already_existed: bool, created: bool }

create_gameplay_cue_notify_static

Additive.

Create a Blueprint parented to UGameplayCueNotify_Static (non-instanced, one-shot) at package_path/name, compile and save it, or reuse the one of that class already there (created false, already_existed true); a Blueprint of another class there is an error. A registered gameplay_cue_tag is written to the CDO; an unregistered one only yields cue_tag_set=false. Refused during PIE.

Parameter Type Required Description
name string yes Asset name without a path, e.g. "GCN_Hit".
package_path string no Content folder for the new asset, e.g. "/Game/GAS/Cues"; defaults to /Game/Blueprints.
gameplay_cue_tag string no Registered gameplay tag written as GameplayCueTag and GameplayCueName, e.g. "GameplayCue.Hit"; an unregistered tag is skipped (cue_tag_set=false), not an error.

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_gameplay_cue_notify: bool, cue_tag_set: bool, cue_tag_requested: string, cue_tag: string, already_existed: bool, created: bool }

create_gameplay_effect_blueprint

Additive.

Create a Blueprint parented to UGameplayEffect at package_path/name, compile and save it; returns asset_path, generated_class and is_gameplay_effect. A GameplayEffect Blueprint already at that path is returned untouched (created false, already_existed true); a Blueprint of another class there is an error. Refused during PIE.

Parameter Type Required Description
name string yes Asset name without a path, e.g. "GE_Damage".
package_path string no Content folder for the new asset, e.g. "/Game/GAS/Effects"; defaults to /Game/Blueprints.

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_gameplay_effect: bool, already_existed: bool, created: bool }

create_gameplay_effect_container

Additive.

Create and save a native UGameplayEffect asset (despite the name, not a container and not a Blueprint) at package_path/name. An existing asset there is returned untouched (already_existed=true). apply_gameplay_effect needs a class, so use create_gameplay_effect_blueprint for an effect it can apply.

Parameter Type Required Description
name string yes Asset name without a path, e.g. "GE_Damage"
package_path string no Target content package path where the asset is created (default /Game/GameplayEffects)
duration_policy string no Duration type, case-insensitive: Instant, HasDuration or Infinite (default Instant)
duration_magnitude number no Duration in seconds, applied when policy is HasDuration (default 0.0)

Returns: { name, asset_path, already_existed, duration_policy, duration_magnitude, created }

create_gameplay_mod_magnitude_calculation_blueprint

Additive.

Create a Blueprint parented to UGameplayModMagnitudeCalculation (a custom magnitude calc class for GE modifiers), compile and save it. A Blueprint of that class already at the path is returned untouched (created false, already_existed true); one of another class there is an error.

Parameter Type Required Description
name string yes Asset name, e.g. MMC_Damage
package_path string no Target content path, defaults to /Game/Blueprints

Returns: { name: string, asset_path: string, parent_class: string, generated_class: string, is_mod_magnitude_calculation: bool, already_existed: bool, created: bool }

get_ability_activation_info

Read-only.

Read the AssetTags of a GameplayAbility Blueprint from its class default object: ability_tags, asset_tag_count, and ability_name (the default object name). Despite the tool name, no activation data is read: no activation policy, required or blocked tags, cost or cooldown. Read-only and editor-time: it loads the asset and needs no actor or PIE; a path that is not a GameplayAbility Blueprint is an error. configure_ability_tags writes these tags; get_ability_info reads an ability granted to an actor.

Parameter Type Required Description
ability_path string yes Full /Game path to the ability Blueprint asset

Returns: { ability_path: string, ability_name: string, ability_tags: [string], asset_tag_count: int }

get_ability_info

Read-only.

Read one ability granted to an editor-world actor ability system component: ability_class, level, is_active and input_id of the first matching spec. Read-only; an error when no granted spec matches ability_name. Use get_active_abilities to list them all.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
ability_name string yes Ability to match among the granted specs: the ability_name from get_active_abilities, the class name with or without _C ("GA_Jump"), the asset path ("/Game/Abilities/GA_Jump") or the class path; case-insensitive, first match wins

Returns: { actor_name, ability_name, ability_class, level, is_active, input_id }

get_ability_system_component

Read-only.

Read the ability system component of an editor-world actor (the IAbilitySystemInterface answer, else its first UAbilitySystemComponent): component_name, active_abilities_count (all granted specs, active or not) and active_effects_count. Read-only; a missing actor or component is an error, not has_ability_system=false.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names

Returns: { actor_name, has_ability_system, component_name, active_abilities_count, active_effects_count }

get_ability_tasks

Read-only.

List the UGameplayTask objects outered to a GameplayTasksComponent of an editor-world actor (its ability system component counts): task_name, task_class, task_state, is_ability_task, plus counts. Tasks built by NewAbilityTask, add_ability_task included, are outered to the transient package and are not listed.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names

Returns: { task_name, task_class, task_state, is_ability_task, actor_name, task_count, ability_task_count, generic_task_count, tasks }

get_active_abilities

Read-only.

List every ability granted to an editor-world actor ability system component, running or not (all activatable specs, despite the tool name): ability_name (the class default object name), ability_class, level and is_active, plus count. Read-only; get_ability_info reads one.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names

Returns: { ability_name, ability_class, level, is_active, actor_name, abilities, count }

get_active_effects

Read-only.

List the gameplay effects currently active on an editor-world actor ability system component: effect_name (the definition object name), effect_class and level for each, plus count. Read-only; effects whose definition is gone are skipped. get_gameplay_effect_info reads one.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names

Returns: { effect_name, effect_class, level, actor_name, effects, count }

get_attribute_meta_on_set_class

Read-only.

Read back the FAttributeMetaData DataTable an AttributeSet class is initialized from (read-side of set_attribute_meta_on_set_class): row struct name, row count, and the serialized rows. This reports the AUTHORED defaults on disk, not the live values of any actor -- for those use get_attribute_value / get_attributes.

Parameter Type Required Description
attribute_set_class_path string yes Full UAttributeSet class path
data_table_path string no Optional override; default is /Game/UEAgent/AttributeMeta/<ClassName>_Meta

Returns: { attribute_set_class, data_table_path, row_struct, row_count, rows }

get_attribute_value

Read-only.

Read one attribute from the attribute sets registered on an editor-world actor ability system component: value (current, modifiers included), base_value and attribute_set. Read-only; an unknown attribute is not an error but found=false. get_attributes lists every attribute.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
attribute_name string yes Attribute name ("Health") or "SetClass.Attribute" ("MyAttributeSet.Health"), case-insensitive; the first registered attribute that matches wins

Returns: { actor_name, attribute_name, found, value, base_value, attribute_set }

get_attributes

Read-only.

List every attribute of the attribute sets registered on the ability system component of an editor-world actor (its IAbilitySystemInterface answer, else its first UAbilitySystemComponent), each with attribute_name, attribute_set, value (current, modifiers included), base_value and found, plus count. Read-only. A missing actor or component is an error; a component with no registered set gives count 0. Use get_attribute_value for one attribute, set_attribute_base_value to change one.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names

Returns: { actor_name: string, attributes: [{ attribute_name: string, attribute_set?: string, value: number, base_value: number, found: bool }], count: int }

get_gameplay_cue_notify_info

Read-only.

Read a GameplayCueNotify Blueprint CDO: variant, tag and (Actor/Looping) lifetime props

Parameter Type Required Description
cue_notify_path string yes Full asset path of the GameplayCueNotify Blueprint (Static/Burst/Actor/Looping)

Returns: { cue_notify_path: string, parent_class: string, notify_type: string, gameplay_cue_tag: string, gameplay_cue_name: string, is_override: bool, auto_destroy_on_remove: bool, auto_destroy_delay: number, auto_attach_to_owner: bool, unique_instance_per_instigator: bool, unique_instance_per_source_object: bool, allow_multiple_on_active_events: bool, allow_multiple_while_active_events: bool, num_preallocated_instances: int }

get_gameplay_effect_components

Read-only.

Read the GEComponents array from a GameplayEffect CDO, round-tripping each component's configured values (granted/asset/blocked tags, chance-to-apply, tag requirements, granted-ability configs)

Parameter Type Required Description
gameplay_effect_path string yes Full asset path of the GE Blueprint

Returns: { gameplay_effect_path: string, components: [object], component_count: int }

get_gameplay_effect_info

Read-only.

Read the first active gameplay effect on an editor-world actor ability system component whose definition matches effect_name: effect_class and level. Read-only; an error when none matches. For an effect asset that is not applied, use get_gameplay_effect_modifiers instead.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
effect_name string yes Active effect to match by its definition: the effect_name from get_active_effects, the class name with or without _C ("GE_Burn"), the asset path ("/Game/Effects/GE_Burn") or the class path; case-insensitive, first match wins

Returns: { actor_name, effect_name, effect_class, level }

get_gameplay_effect_modifiers

Read-only.

Read the attribute modifiers of a GameplayEffect asset (native asset, or Blueprint GE class default object): attribute, attribute_set, modifier_op and, when static, the magnitude at level 1, plus duration_policy and modifier_count. Read-only; magnitude_type always says ScalableFloat, whatever the real type.

Parameter Type Required Description
effect_path string yes GameplayEffect asset path: a Blueprint GE ("/Game/Effects/GE_Burn") or a native UGameplayEffect asset

Returns: { attribute, attribute_set, modifier_op, magnitude_type, magnitude_value_at_level_1, effect_path, duration_policy, modifier_count, modifiers }

grant_ability

Additive.

Grant an ability class to an editor-world actor ability system component with GiveAbility at a whole-number level; granted tells whether a valid spec handle came back. Runtime state only (not saved with the level), and granting the same class again adds another spec.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
ability_class string yes Class path of a UGameplayAbility subclass: "/Game/Abilities/GA_Jump.GA_Jump_C" for a Blueprint, "/Script/MyGame.MyAbility" for C++
level number no Spec level, a whole number; default 1

Returns: { actor_name, ability_class, level, granted }

poll_gameplay_tag_events

Read-only.

Reads fires recorded for a register_gameplay_tag_event subscription since a cursor (non-destructive cursor read, same idiom as poll_delegate_events). Never destructive: call again with next_cursor to keep draining without missing or repeating a fire.

Parameter Type Required Description
subscription_id number yes subscription_id returned by register_gameplay_tag_event (required)
cursor number no Optional; only fires with sequence_id > cursor are returned. Defaults to 0 (everything retained).

Returns: { subscription_id: number, subscription_exists: bool, events: [{sequence_id: number, timestamp: number, new_count: number}], next_cursor: number }

register_gameplay_tag_event

Additive, idempotent.

Registers a REAL listener on a target actor's UAbilitySystemComponent for a gameplay tag's count changes (UAbilitySystemComponent::RegisterGameplayTagEvent, AbilitySystemComponent.h), binding an actual callback (.AddLambda) and keeping its FDelegateHandle so unregister_gameplay_tag_event can honestly undo it later. Idempotent: re-registering the same (actor, tag, event_type) returns the existing subscription_id instead of stacking a duplicate listener. Poll fires with poll_gameplay_tag_events.

Parameter Type Required Description
actor_name string yes Display label or internal name of the target editor-world actor (required)
event_tag string yes FGameplayTag name (e.g. "Gameplay.Event.Hit") (required)
event_type string no "NewOrRemoved" | "AnyCountChange" (default "NewOrRemoved")

Returns: { actor_name: string, event_tag: string, event_type: string, subscription_id: number, registered: bool, already_existed: bool }

remove_ability

Destructive.

Remove one granted ability from an editor-world actor ability system component with ClearAbility. An active ability is only marked, and leaves when it ends (pending_removal=true); removed=true means the spec is gone. success is false with an error otherwise.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
ability_name string yes Ability to match among the granted specs: the ability_name from get_active_abilities, the class name with or without _C ("GA_Jump"), the asset path ("/Game/Abilities/GA_Jump") or the class path; case-insensitive, first match wins

Returns: { actor_name, ability_name, removed, pending_removal } -- read back: removed means the spec is gone; an active ability is only marked, and leaves when it ends (pending_removal)

remove_gameplay_effect

Destructive.

Remove the first active gameplay effect on an editor-world actor ability system component whose definition matches effect_name, with all its stacks (RemoveActiveGameplayEffect). removed is the engine answer confirmed by the effect no longer being active; success is false with an error otherwise.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
effect_name string yes Active effect to match by its definition: the effect_name from get_active_effects, the class name with or without _C ("GE_Burn"), the asset path ("/Game/Effects/GE_Burn") or the class path; case-insensitive, first match wins

Returns: { actor_name, effect_name, removed } -- removed is what the engine reports, confirmed by the effect not being active afterwards

remove_gameplay_effect_component

Destructive.

Remove a component from a GameplayEffect CDO's GEComponents array by index or by component_type/component_class (inverse of add_gameplay_effect_component)

Parameter Type Required Description
gameplay_effect_path string yes Full asset path of the GE Blueprint
component_index number no Optional index into the GEComponents array (call get_gameplay_effect_components to enumerate; 0 = first). Supply this OR component_type
component_type string no Optional friendly type (AssetTags, TargetTags, AdditionalEffects, ChanceToApply, Immunity, TargetTagRequirements, RemoveOther, CustomCanApply, BlockAbilityTags, Abilities, CancelAbilityTags). Accepts the bare type or the full class name. Supply this OR component_index
component_class string no Alias of component_type (accepts the full "<Type>GameplayEffectComponent" class name)

Returns: { gameplay_effect_path: string, removed_index: int, removed_class: string, component_count: int, removed: bool, saved: bool }

remove_gameplay_effect_modifier

Destructive.

Remove a modifier from a GameplayEffect CDO's Modifiers array by index (the D in add/set CRUD)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array to remove (0 = first; add_gameplay_effect_modifier appends)

Returns: { ge_blueprint_path: string, removed_index: int, modifier_count: int, removed: bool }

send_gameplay_event_to_actor

Destructive.

Sends a FGameplayEvent to the target actor's UAbilitySystemComponent via UAbilitySystemBlueprintLibrary::SendGameplayEventToActor (AbilitySystemBlueprintLibrary.h). Wraps the engine's Lyra-style event bus entry point.

Parameter Type Required Description
actor_name string yes Display label or internal name of the target editor-world actor (required)
event_tag string yes FGameplayTag name (e.g. "Gameplay.Event.Hit") (required)
payload_magnitude number no Optional numeric magnitude placed in FGameplayEventData::EventMagnitude

Returns: { actor_name: string, event_tag: string, sent: bool, asc_resolved: bool }

set_ability_cooldown

Destructive, idempotent.

Set the Cooldown GameplayEffect class on a GameplayAbility CDO (gates re-use until it expires)

Parameter Type Required Description
ability_blueprint_path string yes Full asset path of the GameplayAbility Blueprint
cooldown_effect_path string no Full asset path of the GameplayEffect Blueprint to use as the cooldown (typically HasDuration)

Returns: { ability_blueprint_path: string, cooldown_effect_path: string, cooldown_effect_class: string, cooldown_effect_class_matches: bool, set: bool }

set_ability_cost

Destructive, idempotent.

Set the Cost GameplayEffect class on a GameplayAbility CDO (the GE applied when the ability is committed)

Parameter Type Required Description
ability_blueprint_path string yes Full asset path of the GameplayAbility Blueprint
cost_effect_path string no Full asset path of the GameplayEffect Blueprint to use as the cost

Returns: { ability_blueprint_path: string, cost_effect_path: string, cost_effect_class: string, cost_effect_class_matches: bool, set: bool }

set_attribute_base_value

Destructive, idempotent.

Set the base value of one attribute on an editor-world actor ability system component (SetNumericAttributeBase); active modifiers keep applying on top. Returns the read-back base_value and current value; set=false, not an error, when no registered attribute set has that attribute.

Parameter Type Required Description
actor_name string yes Object name (not the label) of the editor-world actor, e.g. "BP_Hero_C_1", matched case-insensitively; find_actors_by_name maps labels to names
attribute_name string yes Attribute name ("Health") or "SetClass.Attribute" ("MyAttributeSet.Health"), case-insensitive; the first registered attribute that matches wins
value number yes The new base value for the attribute

Returns: { actor_name, attribute_name, value, set, base_value }

set_attribute_meta_on_set_class

Destructive, idempotent.

Author the DataTable<FAttributeMetaData> that gives a UAttributeSet class its starting/min/max values, then validate it by calling InitFromMetaDataTable on that class's CDO. WHAT IT DOES NOT DO: it never writes the CDO -- only the DataTable is authored, and the running game is still expected to call CDO->InitFromMetaDataTable(DataTable) itself at character init (typically from an ASC's InitStats path). Use set_attribute_base_value to change a LIVE actor's attribute instead.

Parameter Type Required Description
attribute_set_class_path string yes Full UAttributeSet class path (e.g. "/Script/GameplayAbilities.AbilitySystemTestAttributeSet" or "/Game/MyAS")
metadata_rows array yes Array of
data_table_path string no Target asset path (default "/Game/UEAgent/AttributeMeta/<ClassName>_Meta")

Returns: { attribute_set_class, data_table_path, row_count, rows_imported, init_from_meta_succeeded, saved, problems }

set_gameplay_cue_notify_actor_properties

Destructive, idempotent.

Write the lifetime, instancing and override properties you pass on the class default object of an AGameplayCueNotify_Actor Blueprint (Looping ones included), then save it without recompiling and without an undo entry. Properties left out keep their values; passing none, or a Blueprint of another class, is an error. A running PIE session or a read-only root fails before any edit. It never sets the cue tag: set_gameplay_cue_notify_looping_properties does for Looping notifies, set_gameplay_cue_notify_static_properties and set_gameplay_cue_notify_burst_properties for non-actor ones. get_gameplay_cue_notify_info reads them back.

Parameter Type Required Description
cue_notify_path string yes Full asset path of the GameplayCueNotify_Actor/_Looping Blueprint
auto_destroy_on_remove boolean no Optional bool: auto recycle/destroy when OnRemove fires
auto_destroy_delay number no Optional float: seconds to stay alive before auto-destroy (needs auto_destroy_on_remove)
auto_attach_to_owner boolean no Optional bool: attach the cue actor to the target while active
is_override boolean no Optional bool: this cue overrides parent-tag cues instead of running in addition
unique_instance_per_instigator boolean no Optional bool: a new instance per instigator
unique_instance_per_source_object boolean no Optional bool: a new instance per source object
allow_multiple_on_active_events boolean no Optional bool: re-trigger On Burst if already triggered
allow_multiple_while_active_events boolean no Optional bool: re-trigger On Become Relevant if already triggered
num_preallocated_instances number no Optional int: how many instances of the cue to preallocate

Returns: { cue_notify_path: string, properties_set: int, auto_destroy_on_remove: bool, auto_destroy_delay: number, auto_attach_to_owner: bool, is_override: bool, unique_instance_per_instigator: bool, unique_instance_per_source_object: bool, allow_multiple_on_active_events: bool, allow_multiple_while_active_events: bool, num_preallocated_instances: int, set: bool }

set_gameplay_cue_notify_burst_properties

Destructive, idempotent.

Set GameplayCueTag (mirrored into GameplayCueName) and/or IsOverride on the CDO of a UGameplayCueNotify_Burst Blueprint, then save it without recompiling. Needs at least one; an unregistered tag fails before anything is written. Burst effects (particles, sounds) are not authored. Returns the values read back.

Parameter Type Required Description
cue_notify_path string yes Asset path of the GameplayCueNotify_Burst Blueprint, e.g. "/Game/GAS/Cues/GCN_Hit".
gameplay_cue_tag string no Optional registered GameplayCue tag (sets GameplayCueTag + mirrors GameplayCueName); unregistered -> clean error
is_override boolean no Optional bool: this cue overrides parent-tag cues instead of running in addition

Returns: { cue_notify_path: string, properties_set: int, gameplay_cue_tag: string, gameplay_cue_name: string, is_override: bool, note: string, set: bool }

set_gameplay_cue_notify_looping_properties

Destructive, idempotent.

Set GameplayCueTag + Actor lifetime/instancing/override props on an AGameplayCueNotify_Looping Blueprint CDO

Parameter Type Required Description
cue_notify_path string yes Full asset path of the GameplayCueNotify_Looping Blueprint
gameplay_cue_tag string no Optional registered GameplayCue tag (sets GameplayCueTag + mirrors GameplayCueName); unregistered -> clean error
auto_destroy_on_remove boolean no Optional bool: auto recycle/destroy when OnRemove fires
auto_destroy_delay number no Optional float: seconds to stay alive before auto-destroy (needs auto_destroy_on_remove)
auto_attach_to_owner boolean no Optional bool: attach the cue actor to the target while active
is_override boolean no Optional bool: this cue overrides parent-tag cues instead of running in addition
unique_instance_per_instigator boolean no Optional bool: a new instance per instigator
unique_instance_per_source_object boolean no Optional bool: a new instance per source object
allow_multiple_on_active_events boolean no Optional bool: re-trigger On Burst if already triggered
allow_multiple_while_active_events boolean no Optional bool: re-trigger On Become Relevant if already triggered
num_preallocated_instances number no Optional int: how many instances of the cue to preallocate

Returns: { cue_notify_path: string, properties_set: int, gameplay_cue_tag: string, gameplay_cue_name: string, auto_destroy_on_remove: bool, auto_destroy_delay: number, auto_attach_to_owner: bool, is_override: bool, unique_instance_per_instigator: bool, unique_instance_per_source_object: bool, allow_multiple_on_active_events: bool, allow_multiple_while_active_events: bool, num_preallocated_instances: int, note: string, set: bool }

set_gameplay_cue_notify_static_properties

Destructive, idempotent.

Set GameplayCueTag (mirrored into GameplayCueName) and/or IsOverride on the CDO of a UGameplayCueNotify_Static Blueprint, then save it without recompiling. Needs at least one of the two; an unregistered tag fails before anything is written. Returns properties_set and the values read back.

Parameter Type Required Description
cue_notify_path string yes Asset path of the GameplayCueNotify_Static Blueprint, e.g. "/Game/GAS/Cues/GCN_Hit".
gameplay_cue_tag string no Optional registered GameplayCue tag (sets GameplayCueTag + mirrors GameplayCueName); unregistered -> clean error
is_override boolean no Optional bool: this cue overrides parent-tag cues instead of running in addition

Returns: { cue_notify_path: string, properties_set: int, gameplay_cue_tag: string, gameplay_cue_name: string, is_override: bool, set: bool }

set_gameplay_effect_component_asset_tags

Destructive, idempotent.

Configure an AssetTagsGameplayEffectComponent so the GE OWNS the given asset tags (does not transfer to actors; creates the component if absent; idempotent via FindOrAddComponent)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
tags string no List of gameplay tag strings the GE asset owns (replaces the component's Added tags)

Returns: { ge_blueprint_path: string, component_class: string, resolved_tags: [string], unknown_tags: [string], asset_tags: [string], tag_count: int, already_existed: bool, set: bool }

set_gameplay_effect_component_block_ability_tags

Destructive, idempotent.

Configure a BlockAbilityTagsGameplayEffectComponent so the GE BLOCKS abilities with the given tags on its target (creates the component if absent; idempotent via FindOrAddComponent)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
tags string no List of gameplay tag strings of abilities to block (replaces the component's Added tags)

Returns: { ge_blueprint_path: string, component_class: string, resolved_tags: [string], unknown_tags: [string], block_ability_tags: [string], tag_count: int, already_existed: bool, set: bool }

set_gameplay_effect_component_chance_to_apply

Destructive, idempotent.

Configure a ChanceToApplyGameplayEffectComponent with the probability (0.0..1.0) that the GE applies to its target (creates the component if absent; idempotent via FindOrAddComponent + set-to-fixed-value)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
chance number yes Probability the GE applies (0.0 = never, 1.0 = always)

Returns: { ge_blueprint_path: string, component_class: string, chance: float, chance_readback: float, chance_matches: bool, already_existed: bool, set: bool }

set_gameplay_effect_component_granted_abilities

Destructive, idempotent.

Configure an AbilitiesGameplayEffectComponent to grant a GameplayAbility (by BP path/class name) to the target while the GE is active (creates the component if absent; AddGrantedAbilityConfig dedups via AddUnique)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
ability_path string yes GameplayAbility Blueprint asset path or bare class name to grant
input_id number no Optional input ID to bind the granted ability to (default -1 = none)

Returns: { ge_blueprint_path: string, component_class: string, ability_class: string, ability_config_count: int, input_id: int, already_existed: bool, ability_resolved: bool, set: bool }

set_gameplay_effect_component_target_tag_requirements

Destructive, idempotent.

Configure a TargetTagRequirementsGameplayEffectComponent's Application/Ongoing/Removal require & ignore tags (creates the component if absent; idempotent via FindOrAddComponent + set-to-fixed-value)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
application_require_tags array no Optional array of gameplay tag strings: the target must have for the GE to apply
application_ignore_tags array no Optional array of gameplay tag strings: that, if present, block application
ongoing_require_tags array no Optional array of gameplay tag strings: the target must keep for the GE to stay 'on'
ongoing_ignore_tags array no Optional array of gameplay tag strings: that, if present, turn the GE 'off' while applied
removal_require_tags array no Optional array of gameplay tag strings: that, if met, remove the GE
removal_ignore_tags array no Optional array of gameplay tag strings: ignore tags for the removal requirement

Returns: { ge_blueprint_path: string, component_class: string, already_existed: bool, application_require_tags: [string], application_ignore_tags: [string], ongoing_require_tags: [string], ongoing_ignore_tags: [string], removal_require_tags: [string], removal_ignore_tags: [string], unknown_tags: [string], set: bool }

set_gameplay_effect_component_target_tags

Destructive, idempotent.

Configure a TargetTagsGameplayEffectComponent so the GE GRANTS the given tags to its target actor (creates the component if absent; idempotent via FindOrAddComponent)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
tags string no List of gameplay tag strings to grant to the target (replaces the component's Added tags)

Returns: { ge_blueprint_path: string, component_class: string, resolved_tags: [string], unknown_tags: [string], granted_tags: [string], tag_count: int, already_existed: bool, set: bool }

set_gameplay_effect_duration

Destructive, idempotent.

Set DurationPolicy on the class default object of a GameplayEffect Blueprint and, for HasDuration, a constant DurationMagnitude of duration_seconds (Instant and Infinite leave the stored magnitude as it was), then save the asset without recompiling and without an undo entry. A bad policy, HasDuration without duration_seconds, a non-GE Blueprint, a running PIE session or a read-only root fails before any edit. duration_seconds and duration_readback_ok come back only for HasDuration. For a native GE asset use set_gameplay_effect_duration_policy; for periodic ticks, set_gameplay_effect_period.

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
duration_policy string yes Instant, Infinite, or HasDuration
duration_seconds number no Duration in seconds; required when duration_policy is HasDuration, ignored for Instant and Infinite

Returns: { ge_blueprint_path: string, duration_policy: string, policy_matches: bool, duration_readback_ok: bool, duration_seconds: number, set: bool }

set_gameplay_effect_duration_policy

Destructive, idempotent.

Set DurationPolicy on a GameplayEffect asset (a native UGameplayEffect asset, or the class default object of a Blueprint GE) and save its package; with HasDuration it also sets a constant DurationMagnitude. Returns old_duration_policy and duration_policy. Fails while PIE runs, because the save is refused.

Parameter Type Required Description
effect_path string yes GameplayEffect asset path: a Blueprint GE ("/Game/Effects/GE_Burn") or a native UGameplayEffect asset
duration_policy string yes One of "Instant", "HasDuration" or "Infinite", any case ("duration" alone is refused)
duration_magnitude number no Duration in seconds, applied when policy is HasDuration (default 0.0)

Returns: { effect_path, old_duration_policy, duration_policy, duration_magnitude, set }

set_gameplay_effect_modifier_attribute_based

Destructive, idempotent.

Switch an existing GE modifier's magnitude to AttributeBased (scales off a captured attribute)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array (0 = first)
backing_attribute string yes Attribute to capture, e.g. Health or MySet.Health (must exist on some AttributeSet)
attribute_source string no Capture source: Source (caster) or Target (recipient). Default Source
coefficient number no Multiplier applied to the captured value. Default 1.0
pre_multiply_add number no Additive value applied before the coefficient. Default 0.0
post_multiply_add number no Additive value applied after the coefficient. Default 0.0
calculation_type string no AttributeMagnitude | AttributeBaseValue | AttributeBonusMagnitude. Default AttributeMagnitude
snapshot boolean no If true capture the attribute at spec creation, else track changes. Default true

Returns: { ge_blueprint_path: string, modifier_index: int, modifier_count: int, magnitude_type: string, backing_attribute: string, capture_attribute_readback: string, backing_attribute_matches: bool, attribute_source: string, coefficient: number, pre_multiply_add: number, post_multiply_add: number, calculation_type: string, snapshot: bool, set: bool }

set_gameplay_effect_modifier_attribute_based_up_to_channel

Destructive, idempotent.

Switch a GE modifier's magnitude to AttributeBased with the channel-terminated calculation policy (AttributeMagnitudeEvaluatedUpToChannel + FinalChannel)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array (0 = first)
backing_attribute string yes Attribute to capture, e.g. Health or MySet.Health (must exist on some AttributeSet)
final_channel number no Mod evaluation channel (0-9) to terminate the partial attribute evaluation at. Default 0
attribute_source string no Capture source: Source (caster) or Target (recipient). Default Source
coefficient number no Multiplier applied to the captured value. Default 1.0
pre_multiply_add number no Additive value applied before the coefficient. Default 0.0
post_multiply_add number no Additive value applied after the coefficient. Default 0.0
snapshot boolean no If true capture the attribute at spec creation, else track changes. Default true

Returns: { ge_blueprint_path: string, modifier_index: int, modifier_count: int, magnitude_type: string, backing_attribute: string, capture_attribute_readback: string, backing_attribute_matches: bool, attribute_source: string, coefficient: number, pre_multiply_add: number, post_multiply_add: number, calculation_type: string, final_channel: int, final_channel_readback: int, channel_matches: bool, snapshot: bool, set: bool }

set_gameplay_effect_modifier_attribute_curve

Destructive, idempotent.

Set the AttributeCurve (a CurveTable row) on a GE modifier whose magnitude is already AttributeBased; the captured attribute is remapped through the curve instead of used directly

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array; the modifier's magnitude must already be AttributeBased (call set_gameplay_effect_modifier_attribute_based first)
curve_table_path string yes Full asset path of the UCurveTable holding the lookup row
row_name string yes Name of the row within the CurveTable to use as the attribute lookup curve

Returns: { ge_blueprint_path: string, modifier_index: int, modifier_count: int, magnitude_type: string, backing_attribute: string, curve_table_path: string, curve_table_readback: string, curve_table_matches: bool, row_name: string, row_name_readback: string, row_name_matches: bool, row_exists: bool, set: bool }

set_gameplay_effect_modifier_attribute_tag_filters

Destructive, idempotent.

Set the Source/Target tag filters on a GE modifier whose magnitude is already AttributeBased; only modifiers carrying all of a filter's tags factor into the captured attribute's evaluation

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array; the modifier's magnitude must already be AttributeBased (call set_gameplay_effect_modifier_attribute_based first)
source_tags array no Optional list of gameplay tag strings; replaces SourceTagFilter. Omit to leave the source filter unchanged
target_tags array no Optional list of gameplay tag strings; replaces TargetTagFilter. Omit to leave the target filter unchanged

Returns: { ge_blueprint_path: string, modifier_index: int, modifier_count: int, magnitude_type: string, source_tags_set: bool, target_tags_set: bool, source_resolved_tags: [string], source_unknown_tags: [string], target_resolved_tags: [string], target_unknown_tags: [string], source_tag_filter: [string], target_tag_filter: [string], set: bool }

set_gameplay_effect_modifier_custom

Destructive, idempotent.

Switch an existing GE modifier's magnitude to CustomCalculationClass (a UGameplayModMagnitudeCalculation subclass computes it)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array (0 = first)
calculation_class string yes BP asset path (/Game/...) or class name of a CONCRETE UGameplayModMagnitudeCalculation subclass
coefficient number no Multiplier applied to the calc output. Default 1.0
pre_multiply_add number no Additive value applied before the coefficient. Default 0.0
post_multiply_add number no Additive value applied after the coefficient. Default 0.0

Returns: { ge_blueprint_path: string, modifier_index: int, modifier_count: int, magnitude_type: string, calculation_class: string, calculation_class_matches: bool, coefficient: number, pre_multiply_add: number, post_multiply_add: number, set: bool }

set_gameplay_effect_modifier_custom_curve

Destructive, idempotent.

Set the FinalLookupCurve (a CurveTable row) on a GE modifier whose magnitude is already CustomCalculationClass; the custom calc output is remapped through the curve

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array; the modifier's magnitude must already be CustomCalculationClass (call set_gameplay_effect_modifier_custom first)
curve_table_path string yes Full asset path of the UCurveTable holding the lookup row
row_name string yes Name of the row within the CurveTable to use as the final lookup curve

Returns: { ge_blueprint_path: string, modifier_index: int, modifier_count: int, magnitude_type: string, calculation_class: string, curve_table_path: string, curve_table_readback: string, curve_table_matches: bool, row_name: string, row_name_readback: string, row_name_matches: bool, row_exists: bool, set: bool }

set_gameplay_effect_modifier_set_by_caller

Destructive, idempotent.

Switch an existing GE modifier's magnitude to SetByCaller (resolved at runtime by tag/name)

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint
modifier_index number yes Index into the GE CDO Modifiers array (add_gameplay_effect_modifier appends; 0 = first)
data_tag string no Optional gameplay tag the caller uses to set the magnitude (modern path; must be a registered tag)
data_name string no Optional legacy FName the caller uses to set the magnitude. At least one of data_tag/data_name is required

Returns: { ge_blueprint_path: string, modifier_index: int, modifier_count: int, magnitude_type: string, data_tag: string, data_tag_valid: bool, data_name: string, set: bool }

set_gameplay_effect_period

Destructive, idempotent.

Set Period (seconds between periodic executions, 0 = not periodic) and bExecutePeriodicEffectOnApplication on the class default object of a GameplayEffect Blueprint, then save it without recompiling and without an undo entry. execute_on_application is always written, so leaving it out sets false. A non-GE Blueprint, a running PIE session or a read-only root fails before any edit. For damage or heal over time also give the effect a duration with set_gameplay_effect_duration; stacking is set_gameplay_effect_stacking.

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint.
period_seconds number yes Period in seconds between executions (0 = non-periodic).
execute_on_application boolean no Optional: if true the effect also executes immediately on application (default false).

Returns: { ge_blueprint_path, period_seconds, period_readback_ok, execute_on_application, set }

set_gameplay_effect_stacking

Destructive, idempotent.

Set the stacking policy on a GameplayEffect CDO (StackingType + limit + refresh/reset policies).

Parameter Type Required Description
ge_blueprint_path string yes Full asset path of the GE Blueprint.
stacking_type string yes None | AggregateBySource | AggregateByTarget.
stack_limit number no Optional max stack count (int; 0 = no limit).
duration_refresh_policy string no Optional: RefreshOnSuccessfulApplication | NeverRefresh.
period_reset_policy string no Optional: ResetOnSuccessfulApplication | NeverReset.

Returns: { ge_blueprint_path, stacking_type, stack_limit, stacking_matches, set }

unregister_gameplay_tag_event

Destructive, idempotent.

Honestly unbinds a register_gameplay_tag_event subscription (UAbilitySystemComponent::UnregisterGameplayTagEvent, AbilitySystemComponent.h) using the real FDelegateHandle captured at register time, and removes it from the registry. Idempotent: an unknown/already-removed subscription_id is a success with removed:false, not an error.

Parameter Type Required Description
subscription_id number yes subscription_id returned by register_gameplay_tag_event (required)

Returns: { subscription_id: number, removed: bool, was_registered: bool, engine_unregister_ok: bool }