Skip to content
Games by Hyper
Sign Up / Login
Games by Hyper

Generic

  • QuickStart
  • Support
  • Purchase Options
  • Roadmap
  • FAQ
  • Learning
  • For Professional Studios

Templates

  • Template Logic and flexibility

Shared Infrastructure

  • Gameplay Tags
  • Datamanagement
  • Folder Structure

Item Management

  • Inventory
  • Jigsaw Inventory
  • List Inventory
  • Respawn Actor Manager
  • Hotbar
  • Crafting
  • Item Allocator
  • Vendor
  • Icon Creator
  • Interactive Foliage
  • Inspection System

Interaction and Feedback

  • Interaction System
  • Outliner System

UI

  • Main Menu
  • HUD
  • Information Prompt

Locomotion

  • Animation Framework
  • Extended Movement Component
  • Leader Posing
  • Custom-Skeletal-Meshes

Combat

  • Attribute Manager
  • Team Affiliation
  • Equipment Manager
  • Ragdoll System
  • Ability System
  • Target Locking
  • Weapon Attachment System
  • Limb System
  • Combat-framework

Construction and Survival Mechanics

  • Building System
  • Mineable Rocks
  • Tree Cutting
  • Farming System
  • Fishing System
  • Swimming System

Game Management

  • Global Save System
  • Respawn System
  • Session Manager
  • Game Mode System
  • Spectate System
  • Player Manager
  • Team Manager
  • Score Manager
  • Guild Manager
  • Party Manager

Multiplayer

  • Online Multiplayer Framework
  • Replication Subsystem
  • Chat System
  • Console Command Manager

AI

  • Basic AI
  • NPC Behavior System
  • Perception System
  • Companion System

Exploration and Narrative

  • Dialogue System
  • Memory System
  • Quest Manager
  • Map System
  • Teleport System
  • Guide System
  • Event Manager
  • Visual Novel System
  • Dungeon Adventure Kit
  • Region Manager

Progression and Leveling

  • Level Manager
  • Unlock System
  • Reputation System

Security and Control Systems

  • Drone System
  • Lock System
  • Security System
  • Defense System
  • Defense System – Modern
  • Defense System – Primitive

Character and Player Systems

  • Character Creator
  • Class System
  • Mount System
  • First Person

Environmental Control and Immersion

  • Time and Day Night Cycle management
  • Weather System
  • Background Music System
  • Footstep System

Environment Building

  • Mesh to Actor Swap System
  • Auto Landscape
  • Cave
  • Deform
  • Ditch
  • Exclusion
  • Forest
  • Forest-Basic
  • Lake
  • Level Instances
  • Mesh
  • Path
  • Props
  • Spline
  • Village
View Categories
  • Home
  • Docs
  • Ability System

Ability System

22 min read

Ability System #

Ability System #

This is a full overview video of the ability system with all most common use cases:

Play

And many like to integrate it with the unlock and level manager:

Play

This is our quick walkthrough of the system

Play

and if you think it is fun you can check out devlogs:

Play
Play

Ability Types #

First, we'll cover the different types of abilities to give you a clear understanding of their foundational structure and how they work.

Abilities are categorized into two main types: Active Abilities and Passive Abilities.

Active Abilities require the player to actively use them by performing an action during gameplay.

Passive Abilities are always active, constantly “listening” for specific conditions or actions to trigger their effects without any direct input from the player.

Both Passive and Active Abilities are dervied from the same base class: BP_Ability_Base

Active Abilities
Active abilities are all derived from a common base class, ActiveAbilityBase, which provides the foundational functionality for all active abilities. There are five types of active abilities that build upon this base:

  • BP_ActiveAbilityBase (default for generic abilities).
  • BP_Ability_Projectile_Base (for abilities that fire projectiles).
  • BP_Ability_Beam_Base (for abilities using continuous beams).
  • BP_Ability_AOE_Base (for area-of-effect abilities).
  • BP_Ability_Summon_Base (for summoning entities).

Passive Abilities
Passive abilities are all derived from a shared base class as well, BP_PassiveAbilityBase, which provides the core structure for passive mechanics. There are five specialized types of passive abilities:

  • BP_PassiveAbility_ConstantAttribute (Always active, applying constant attribute effects).
  • BP_PassiveAbility_OnEquipment (Activates conditionally based on specific equipment being used).
  • BP_PassiveAbility_OnGettingHit (Triggers when the player is hit).
  • BP_PassiveAbility_OnHit (Activates when the player lands a hit).
  • BP_PassiveAbility_OnKil (Triggers upon killing an enemy).

Each of these types can be configured with multiple conditions, allowing for flexible behaviors based on gameplay scenarios.

Active ability Base
We use Active Ability Base for generic abilities. Generic abilities can:

  • Apply Impact (Damage, Healing, Attributes, Buffs and Knockback.
  • Spawn area-of-effects (AOE)
  • Spawn Niagara effects
  • Use a mesh for visual representation
  • Play sound effects.
  • Apply Screen Shake

Projectile Base
Projectile Base is used for abilities that shoot projectiles from the player. In addition to the basic features of Active Ability Base, it offers:

  • Launching the projectile at a specified speed.
  • Targets can be automatically tracked and followed.
  • The projectile can pass through multiple targets.
  • The projectile can be affected by gravity.
  • The projectile has a specified collision
  • The projectile can expire after a set duration.

Beam Base
Beam Base is designed for continuous abilities, such as lasers, that remain active while held and end upon release. These abilities apply their effects while being attached to the player and can target one or multiple enemies within a set range. In addition to the core features of Active Ability Base, it provides:

  • Performs a box trace from the player in the direction of the camera to detect targets within range.
  • Applies impact effects to one or multiple enemies detected by the box trace
  • Plays Niagara effects and sound for the beam.

AOE Base
AOE Base is used for area-of-effect abilities, which can be spawned directly or from another ability. These abilities can:

  • Find targets through a sphere, box, or cone.
  • Apply Impact to multiple targets
  • Have a lifetime that defines how long the effect lasts.
  • Apply Impact at set intervals if a lifetime is set.
  • Spawn decals for visual markers in the affected area.

Custom Abilities
Some abilities fall outside the scope of these generic functionalities. For such cases, you can create a custom ability. A custom ability should be a direct or indirect child of Active Ability Base. To implement its functionality, override the 'Apply Ability Effect' function and define the custom behavior within it.


Creating an Active Ability #


Let's create an ability together to better understand the process. We'll go step by step, starting with defining the type of ability and setting up its functionality. Let's make something simple yet practical: a Power Strike that deals damage to enemies in front of you.

Start by adding a new row to DT_ActiveAbilities and assigning it a name, description, and icon under the generic attributes. Set its ability type to Offensive. This ensures the icon displays with the correct background color. Since this is an AOE Ability, we want the Ability to Active be an BP_Ability_AOE_Base. Finally, assign an ability tag to identify it. For this example, add a new tag: 'Ability.Active.Power Strike'.

We want this ability to function as an AOE directional Ability that spawns on the player. To achieve this, adjust the Targeting Attributes. Set the targeting type to 'Attach to Self' and the trace type to 'Directional Based'. Since the ability should only affect enemies, assign the 'Affect These Targets' attribute the tag 'Target.Enemy'.

Let's add cooldowns to the ability. Set the cooldown to 8 seconds and the maximum charges to 2. You can configure these settings in the Cooldown Attributes.

Now let's set up the casting for this ability. Since we want a striking animation to play before the impact, enable casting. Go to the Casting Attributes and tick Uses Casting. Then, under Generic, we need the Cast Type Auto Release so the ability automatically activates after the animation. Typically, when using charges, it's common to skip attribute costs. Note that we do not have to change anything under Generic.

Since we have a singular animation, this ability only requires one animation stage, so we'll focus on configuring the Release Stage. This stage also ensures that cooldowns and costs are applied. Tick Uses This Cast Stage under Release Cast. For Root Motion Montage, select Anim_PowerStrike_RootMotion_Montage. For the In Motion Montage, select Anim_PowerStrike_UpperBody_Montage.

We need particles to play in the animation. Select the NS_Power_Strike_Adjusted as Niagara System on Notify. Since the Niagara effect has an incorrect angle and spawns inside the player, adjust the offsets to fix it.

If you'd like a sound effect to trigger, you can configure one under Sound Effect On Notify.

Next, open the Animation Montage to configure when the ability should spawn, trigger and when the Niagara should spawn. At the frame where the hit lands, add a new Montage Notify. Right-click on the first track at the desired frame, select Add Notify, and name it Attach. This marks the moment the ability spawns. For AOE abilities, we don't need an 'Apply Effect' Notify. The ability will do this. Directly after the first notify, add a second one and name it: 'Niagara'

For the AoE attributes, start by triggering 'Uses AoE Effect.' Exclude the player from the effect. Use a box trace for this ability, as box traces are used for abilities where we want to trace in front of the player rather than around them (Note that this only works with a Directional Based Trace Type in Targetting Attributes) . In box extents, define the width, depth, and height. Set the ability's lifetime to 1 second to allow the Niagara effect to complete. Do not assign an interval, as we only want the effect to trigger once. A decal is not needed.

The ability has no impact yet. Let's create it. Go to the Impact Attributes and open AOE Attributes. Now let's start with the Damage Attributes. Enable Does Damage to make the ability deal damage. For now, leave the remaining settings at their default values.

Note that a sound can be added by creating a notify: 'Sound' and adding a sound in the Cast Stage Attributes of this Montage.

Creating Buffs #

Buffs
Buffs are effects with a duration that can grant the owner attributes or deal damage. Like active abilities, you can implement custom logic if needed. By default, we provide the standard functionality a buff can offer. Keep in mind that buffs can also have negative effects, functioning as debuffs.

Buffs are defined in the DT_Buffs datatable. Here, you can configure their appearance, effects, stacking behavior, application interval, and associated Niagara effects. Note that the buff's lifetime is not configured in this datatable–it is set in the ability that applies the buff.

When an ability applies a buff, you can hover over the ability to see the buffs it applies. Additionally, hovering over a buff will display its description.

You may want an ability to activate a buff upon impact. In this context, buffs include both positive effects (like increased stats or damage) and negative effects (such as reduced stats or debuffs). These buffs need to be created in the DT_Buffs datatable.

Let's create a buff and add it to one of the existing preview abilities, Blazing Speed. We will name the buff the same as the ability, so it's easy to identify that this buff comes from Blazing Speed.

Buffs share the same Generic Attributes struct as Active Abilities but require a different Ability to Activate: BP_Ability_Buff_Base. Set the Ability Type to Buff so the player can easily identify it as a buff. Assign a tag of type Ability.Buff and use the same icon as the ability to visually connect the buff to the ability.

Buffs also share the same Impact Attributes as abilities. For this buff, we want to add movement speed to the player as long as it remains active. In Attributes to Give to Target, add a Persistent Attribute, since movement speed is a persistent effect. Click on the + icon under Attributes and select the tag: Attribute.Persistent.Character Movement Speed. Set a value under Added to display the added value of the buff in the UI.

In the Buff Attributes, we apply settings specific to how the buff behaves. For this buff, we don't want it to stack, as stacking would double its effect. Additionally, we don't want this bonus to apply at intervals. We do want a Niagara effect to display the blazing speed, so select NS_Fire_Trail. This effect doesn't require a socket or an offset.

Adding buff to ability: go to ability’s impact attributes.

Creating Passive Abilities

Sometimes, we want an effect to trigger based on certain conditions without having to activate an ability. These are called passive abilities. We don’t equip them, as they are always listening for specific events. Since these events are very generic, we’ve created the most common ones.

A passive ability can activate by:

  • Constantly (e.g., increasing strength by 5% at all times).
  • Equipping certain equipment.
  • On Getting Hit.
  • On Doing Hit.
  • On Kill.

When creating a passive ability, first determine if it can be achieved using the generic implementations provided. If not, you can either inherit from one of the triggers we’ve implemented or create a custom trigger.

If you inherit from BP_PassiveAbility_OnGettingHit, BP_PassiveAbility_OnHit, or BP_PassiveAbility_OnKill, you can override the Apply Custom Effect on Target and Apply Custom Effect on Owner functions. These are automatically called when the trigger activates.

For custom triggers, ensure the ability has a trigger type of 'Other Conditional Modifier.' This prevents effects from being applied to unrelated modifiers.

Let's create a passive ability. When the player gets hit, this ability will grant a regeneration buff. To balance the effect, we’ll add a cooldown to the ability.

Since passive abilities share the same Generic Attributes, we now know how to configure them. It's important to note that the Ability to Spawn should be set to the Passive Ability Type. In this case, it will be BP_PassiveAbility_OnGettingHit. Additionally, we need to set the Trigger Type to On Getting Hit for this ability.

To prevent spamming and stacking the buff on getting hit, we need to add a cooldown to this ability.

For the application, we don't want the effect to affect other targets. We won't directly apply attributes or damage, but we do want to apply a buff. Lastly, we don't need a Niagara effect for this trigger, as the buff will apply its own effect.

We want to configure the On Getting Hit requirements. In this section, tick Always Apply on Getting Hit. This will ensure the ability always attempts to apply the effect, although the cooldown will prevent it from applying constantly.


Struct Active Ability Explanation #

  • Generic Attributes: Struct_Ability_Generic_Attributes
    • Name:Text
      • Name displayed to the player.
    • Description: Text
      • Description displayed to the player.
    • Icon: Texture
      • Icon of the ability.
    • Preview Video: File Media Source
      • This is a preview video of the ability that is displayed in the UI.
    • Ability Type: Enum_AbilityTypes
      • determines the background texture
    • Ability To Activate: AbilityBase
      • Reference to any ability actor that is child of BP_Ability_Base
      • This actor is spawned in the world.
    • Ability Tag: Gameplay Tag
      • Used by the system for looking up the ability.
  • Targeting Attributes: Struct_Ability_Targetting_Attributes
    • Ability Target Type: Enum_Ability_Target_Type
      • Used to determine spawn location and target.
    • Trace Type: Enum_Ability_Trace_Type
      • Determines if we should use the projectile or line trace logic.
    • Affects these targets: Gameplay Tag Container
      • Uses the tag ‘Target.’.
      • E.g. ‘Target.Enemy’ used to abilities that target enemies.
  • Equip Attributes: Struct_Ability_Equip_Attribtues
    • Has Weapon Requirements: Boolean
      • Does this ability have any required weapons to be equipped?
    • Compatible With These Weapon Types: Gameplay Tag Container
      • Makes use of the tags: ‘Equipment.’
      • E.g. Equipment.Bow
    • Attach ability to socket: Boolean
      • Is this Ability Attached to a socket?
    • Attach to this socket: Name
      • E.g. ‘weapon_r’. Mainly used for particle based spells to attach something to your hand
    • Should Rotate With Socket: Boolean
      • Should the rotation of the socket affect the rotation of the ability?
    • Spawn Offset:Struct_Transform
      • This is used to give the ability an offset when attached to a socket.
      • Can offset location and rotation.
    • Anim Layer to Use: Anim Instance
      • ???????
  • Cooldown Attributes: Struct_Ability_Cooldown_Attributes
    • Has Cooldown: Boolean
      • Does this Ability have cooldowns?
    • Cooldown in Seconds: Float
      • How much cooldown has it?
    • Has Charges: Boolean
      • Does this ability use charges? Abilities can be used while the player has one or more charges if this ability uses charges.
    • Max Charges: Integer
      • How many charges can this ability get?
  • Casting Attributes: Struct_Ability_Casting_Attributes
    • Uses Casting: Boolean
      • Do we want casting for this ability?
      • Note that abilities can not have animations when there is no casting.
    • Generic Casting
      • Cast Type: Enum_Cast_Type
        • Casting can be separated into three different types: Auto-Release, Continuous and Chargeable.
        • Auto-Release:
          • Hotkey is pressed and the ability is released automatically.
        • Continuous:
          • Hotkey is pressed and hold to continuously fire.
        • Chargeable:
          • Hotkey is pressed and hold to charge the ability.
          • Ability has more effect the longer its hold
          • Ability is automatically released when the maximum charge time is reached.
      • Is Interruptible: Boolean
        • Can we interrupt this ability by e.g. stuns?
          • Currently not implemented
      • Ability Costs: Gameplay Tag Container
        • Gameplay Tag combined with a value is used here.
        • E.g. ‘Attribute.Non-Persistent.Character.Magic’ and value: 10.
      • Hide Primary and Offhand While Casting: Boolean
        • Weapons will be hidden if this is ticked.
      • Wait For Ability Spawn When Charge Released: Boolean
        • The ability is spawned somewhere in the casting animation.
        • When release is pressed it waits for the ability to spawn first if this is ticked. This means that the animation is not instantly canceled when it waits.
    • Cast Stages: Struct_Ability_Casting_Stages
      • Start Cast: Struct_Ability_Cast_Stage
        • This stage is used when more than one animation is used. Always use this when loop stage is used.
      • Loop Cast: Struct_Ability_Cast_Stage
        • This stage can make the casting take longer. Override the Manual Cast Time for this to work when using Auto-released abilities.
        • Always use this stage with chargeable and continuous abilities.
      • Release Cast: Struct_Ability_Cast_Stage
        • On this stage abilities are set to cooldown and costs are spend.
        • Always use this stage.
      • Cancel Cast: Struct_Ability_Cast_Stage
        • This stage is used when an ability cast is canceled.
        • Currently not implemented.
  • Impact Attributes: Struct_Ability_Impact_Attributes
    • What to do on impact?
  • Projectile Attributes: Struct_Ability_Projectile_Attributes
    • Should Spawn Projectile on Release: Boolean
      • Only for instant or chargeable ability types
      • Use this Boolean for projectile abilities.
    • Projectile Lifetime: Float
      • We don’t want abilities to life forever when a target is not found.
    • Initial Velocity: Float
      • Spawning velocity
    • Max Velocity: Float
      • Final Velocity
      • Make tis different from Initial Velocity if the projectile should speed up.
    • Projectile Niagara Effect: Niagara System
      • The Niagara used for the projectile.
      • E.g. Fireball only uses Niagara.
      • Leave empty if not used.
    • Projectile Mesh: Static Mesh
      • Static Mesh used by the projectile.
      • Leave empty if not used.
    • Projectile Mesh Scale: Vector
      • Scaling of the mesh.
    • Is Affected by Gravity: Boolean
      • Do we want gravity to affect this ability?
    • Gravity Scale: Float
      • How much do we want gravity to affect this ability?
    • Is Piercing: Boolean
      • Do we want this ability to pierce enemies?
    • Maximum Piercing Targets: Integer
      • The maximum amount of targets to pierce before the ability is destroyed.
    • Hit Box Extends: Vector
      • This is the hit box of the ability.
    • Can Go Vertically: Boolean
      • Some abilities we only want to shoot forward, even though the camera is aimed up.
    • Projectile Sound: Sound Base
      • What sound do we want the projectile to have?
      • E.g. Fireball has a fire sound.
  • Line-Trace Based Attributes: Struct_Ability_Line_Traced_Based_Attributes
    • Is line trace based casting: Boolean
      • Is this a line traced ability?
    • Range: Float
      • What is the range of the trace that is done?
  • Beam Attributes: Struct_Ability_Beam_Attributes
    • Is a Beam: Boolean
      • Used for continuous abilities.
      • Tick this when the ability is a continuous beam.
    • Beam Effect Niagara: Niagara System
      • Niagara System used by the beam
      • E.g. Flamethrower uses a fire Niagara.
    • Beam Sound: Sound Base
      • The sound used by the beam.
    • Beam Range: Float
      • The range of the beam.
    • Beam Box Half Size: Vector
      • The hitbox width of the beam.
    • Can Hit Multiple Targets: Boolean
      • Do we want this beam to be AOE?
    • Beam Interval: Float
      • The time in seconds of the interval that impact is applied.
  • Summon Attributes: Struct_Ability_Summon_Attributes
    • Is a Summon Ability: Boolean
      • Use this for summon abilities.
    • Summoned actor Lifetime: Float
      • The lifetime of this summon.


Used child structures #

  • Struct_Ability_Impact_Attributes (The effects to apply on Impact)
    • Impact Delay: Float
      • Sometimes you want to wait for the impact niagara to visually hit the target. Use this float for a delay for the impact.
    • Attributes to Give to Target: Struct_Assigned_Attributes
      • This struct is used for attributes to give to the target. Use this for any attributes but damage.
      • Currently only useful for non persistent attributes. E.g. Healing the target or giving it mana.
    • Damaging Attributes: Struct_Ability_Damage_Attributes
      • This struct is used to apply damage.
    • Buffs to Apply to Target with Lifetime: Struct_Gameplay_Tag_Value_container
      • This can apply buffs with a lifetime to the target.
      • Buffs are defined with a Gameplay Tag.
      • Buffs are stored in DT_Buffs
      • Lifetime is in seconds.
    • Impact Niagara: Niagara_System
      • This Niagara is spawned when the target is hit and the effect is applied.
    • Impact Sound: Sound_Base
      • This sound is spawned when the target is hit and the effect is applied.
    • Knockback Strength: Float
      • This knockback always applied on impact.
      • Keep on 0 when you want no knockback.
    • AOE Impact Attributes: Struct_Ability_AOE_Impact_Attributes
      • An ability can both spawn single target impact and AOE.
        • E.g. A bomb thrown on an enemy, explodes and also deals damage to nearby enemies.
      • Use this when the ability uses AOE Impact.
    • Camera Shake Class: Camera Shake
      • Use this if you want the camera to shake on impact.
  • Struct_Ability_AOE_Impact_Attributes
    • Exactly the same as struct above but then for AOE.
  • Struct_Ability_Cast_Stage
    • Uses This Cast Stage: Boolean
      • Tick this when the cast stage is used.
    • Override With Manual Cast Time: Boolean
      • Tick this when you want a manual cast time for this stage.
    • Manual Cast Time: Float
      • The actual cast time.
      • Only used when the above Boolean is ticked.
    • Root Motion Montage: Anim_Montage
      • Use this animation when you want the player to not be able to move when the ability is cast.
    • Can Move While Playing Montage: Boolean
      • Tick this when you want the player to be able to move while in this stage.
      • If this is false and the player is moving, the Root Motion Montage is used.
    • In Motion Montage: Anim_Montage
      • The animation that is used when the player is moving.
      • Only used when the above Boolean is true.
    • Niagara Effect on Notify: Niagara System
      • This Niagara system is spawned at the location of the ability when the Anim Notify: ‘Niagara’ is triggered in the Animation Montage.
    • Sound Effect on Notify: Sound Base
      • This sound is spawned at the location of the ability when the Anim Notify: ‘Sound’ is triggered in the Animation Montage.
    • Niagara Socket: Name
      • Use this if you want the Niagara to spawn at a socket.
    • Niagara Offset: Struct_Transform
      • The offset to use for the Niagara.
  • Struct_Ability_Damage_Attributes
    • Does Damage: Boolean
      • Does this ability deal damage?
    • Damage Curve: Curve Float
      • This curve is used to calculate damage based on character level.
    • Minimal Charge Damage Multiplier: Float
      • When a charging ability is used and the ability is quickly released, we look to this multiplier for the minimum damage of this ability.
    • Critical Hit Multiplier: Float
      • When a critical hit is done, we check this value to calculate the crit damage.
      • Some abilities can have more crit damage than others.
    • Can Crit: Boolean
      • Can this ability crit?
    • Damage Type: DT_Base
      • Type of damage that is applied.

Enums #

  • Enum_Ability_Type
    • Mainly used for categorization in UI
      • Offensive
        • (Fireball (projectile (optional AOE on impact), physics force(projectle, Shadow strike (animation), Flamethrower (Beam), ShrugForce (AOE on char loc), Touch of Zeus (Lightning strike directly on looked at actor (instant)))
      • Defensive
        • (Shield Wall, Fortify, slow time on enemy, freeze enemy)
      • Buffs:
        • (Heal, extra damage, etc)
      • Utility
        • (Teleport, Invisibility, telelenessis, spawn light)
      • Summoning
        • (Raise undeath, Summon Ally)
  • Enum_Ability_Cast_Type
    • Mainly used to differentiate cast methods like not charagable, beam effect (cotinuous) and charagable things like kamehamehaaaa)
      • Auto Release (auto finishes the Start, Loop & Release state),
      • Continuous ( continuously release as long as holding the loop),
      • Chargeable (hold on loop stage, manually release)
  • Enum_Ability_Target_Type
    • Used to determine
      • Attach to Self (e.g. Self heal, self buff, self shield)
      • Drop on Location (basically spawn on self char location) (e.g. mines, AOE heal auras)
      • Aimed (e.g. projectiles, AOE pools, Heals, Beams) (Used the Enum_Ability_Trace_Type)
  • Enum_Ability_Trace_Type
    • Used to determine to switch between a projectile or a line trace.
      • Projectile Based
      • Line trace Based (trace forward to max range to instantly spawns the impact)

Struct_Passive_Ability_Explanation #

  • Generic Attributes: Struct_Ability_Generic_Attributes
    • This is the same struct used by the active abilities.
    • All fields have the same purpose.
  • Trigger Type: Enum_passive_Ability_Trigger_type
    • How is this passive ability triggered?
  • Cooldown: Struct_passive_Ability_Cooldown
    • Has Cooldown: Boolean
      • Does this passive ability have cooldown?
    • Cooldown in Seconds:Float
  • Application on Player: Struct_Passive_Ability_Application
  • Application on Target: Struct_Passive_Ability_Application
  • On Kill Requirements: Struct_Passive_Ability_On_Kill_Modifier
    • Always Apply on Kill: Boolean
      • Do we want this to always apply on kill?
    • Applies on These Enemies: Gameplay Tag Container
      • When killing what type of enemies do we want to apply this?
  • On Hit Requirements: Struct_Passive_Ability_On_Hit_Modifier
    • Always Apply on Getting Hit: Boolean
    • Applies on Critical Hit: Boolean
    • Applies From Behind: Boolean
  • On Equipped Requirements: Struct_Passive_Ability_On_Equipment_Modifier
    • Triggers on This Equipment Slot Type: Enum_Equipment_Slots_Type
      • What slot do we want to check for?
    • Affects These Equipment Types: Gameplay Tag Container
      • What type of equipment triggers this?
      • E.g. ‘Equipment.Bow’ for bows.
    • Applies on Dual Wielding: Boolean
      • Do we want this to only apply when dual wielding?
  • On Getting Hit Requirements: Struct_Passive_Ability_On_Getting_Hit_Modifier
    • Always Apply on Getting Hit: Boolean
      • Do we want this to always apply?
    • Applies Below Percentage Health: Boolean
      • Do we want this to only apply on a certain percentage of health?
    • Percentage Health Threshold: Float
      • At what percentage do we want this to apply?
    • Applies on Crowd Control: Boolean
      • Do we want this to only apply on crowd control?
    • Crowd Control This Applies to: Gameplay Tag Container
      • Type of crowd control this applies to.

Child Structures used #

  • Struct_Passive_Ability_Application
    • Effect Applies in Range: Boolean
      • Do we want to affect other players?
    • Affects These Targets: Gameplay Tag Container
      • What target types do we want to affect?
      • Check Active Ability explanation for how to use this.
    • Effect Range: Float
      • The range used for other targets.
    • Attributes to Give: Struct_Assigned_Attributes
      • Both non-persisent and persistent attributes can be of use here.
      • E.g. 200 maximum hp extra for you and allies within range.
    • Damage to Apply: Struct_Ability_Damage_Attributes
      • Check Active Ability documentation for how to use this.
    • Buffs to Apply with Lifetime: Struct_Gameplay_Tag_Value_Container
      • Check Active Ability documentation for how to use this.
    • Niagara to Apply: Niagara System
    • The Niagara to spawn on the target on application.

Enums #

  • Enum_passive_Ability_Trigger_type
    • Constant Attribute Modifier
      • Used for abilities with constant attributes modification
      • E.g. 200 maximum hp extra when this passive ability is equipped at all times.
    • Getting Hit Modifier
      • Used for application that triggers on getting hit
    • Hit Modifier
      • Used for application that triggers on doing a hit.
    • Kill Modifier
      • Used for application that triggers when killing an enemy.
    • Equipment Modifier
      • Used for application that triggers on certain equipment.
    • Other Conditional Modifier
      • This is used for custom events for triggering application.

Struct_Buff explanation #

  • Generic Attributes: Struct_Ability_Generic_Attributes
    • Check Active abilities for explanation
  • Impact Attributes: Struct_Ability_Impact_Attributes
    • Check Active abilities for explanation
  • Buff Attributes: Struct_Buff_Attributes
    • Is Stackable: Boolean
      • Is this buff stackable?
    • Has a Maximum Amount of Stacks: Boolean
      • Does this have a maximum amount of stacks?
      • When the maximum is reached, the buff lifetime is extended if applied to the player.
    • Maximum Amount of Stacks: integer
    • Buff Apply Interval: Float
      • The interval to apply impact in seconds.
    • Niagara: Niagara System
      • The Niagara system the buff uses.
    • Niagara Socket: Name
      • The socket the Niagara spawns at.
    • Niagara Offset: Vector
      • The offset of this Niagara.
    • Buff Sound: Sound Base
      • The sound used by the buff.
What are your Feelings
Still stuck? How can we help?

How can we help?

Table of Contents
  • Ability System
    • Ability System
    • Ability Types
    • Creating an Active Ability
    • Creating Buffs
    • Struct Active Ability Explanation
    • Used child structures
    • Enums
    • Struct_Passive_Ability_Explanation
    • Child Structures used
    • Enums
    • Struct_Buff explanation

© 2025 Games by Hyper

X Reddit Patreon Discord Linkedin YouTube

Review Cart

No products in the cart.

We noticed you're visiting from Netherlands. We've updated our prices to Euro for your shopping convenience. Use United States (US) dollar instead. Dismiss

  • Hyper Bundle Configurator
  • Shop
    • Game Templates
    • Courses
    • Loyalty Store
    • Survival Modules
    • RPG Modules
    • Environment Building
    • Browse All
  • My account
  • Become a Member
  • Cart
  • Get Help
    • FAQ
    • Upgrade your Game Template
    • Documentation
  • About Hyper
  • News & Updates