Abilities and Unusual Skills System

Purpose and Scope

The Abilities and Unusual Skills system controls character progression, special powers and long‑term bonuses through a shared skill tree managed by BP_AbilityComponent. Unusual Skills form a dedicated subset of abilities: telekinesis, teleports, scanners, vision modes, squad summons and other high‑impact features that sit on top of the regular stat and damage perks.

This document describes the core ability system, its data model, the relationship with the State System, and a catalog of the key Unusual Skills currently implemented in RPG Engine v6.

Core Ability System (BP_AbilityComponent)

BP_AbilityComponent is the central module that owns the character’s abilities and skill tree state.

At runtime it is responsible for:

  • Tracking experience and current level.
  • Tracking which skills are unlocked for the character.
  • Driving the unlock flow: validating requirements and applying effects when a skill is learned.
  • Integrating with the State System by activating the CharacterState tag that represents each learned skill.

Hotkeys for Unusual Skills are defined through dedicated Input Actions per skill. At runtime, ability logic listens to these actions and checks whether the corresponding skill state is present before executing the skill behaviour. Rebinding of these Input Actions is handled by the global input/rebind system and is not part of BP_AbilityComponent itself.

Relationship with the State System

Every skill in the tree is represented by a CharacterState Gameplay Tag.

  • When a skill is learned, BP_AbilityComponent activates the state from the Add New Character Tag field of its data row.
  • The presence of this state is the single source of truth for “does the character have this skill”.
  • Other systems (stats, buffs, combat, effects, interaction, AI) only look at the active state tags, not at the data table directly.

This keeps the ability system fully aligned with the global, server‑authoritative State System.

Skills Data Model (DT_Skills and S_Skills_List)

All skills are defined in a single data table DT_Skills. Each row uses the S_Skills_List structure.

S_Skills_List Fields

  • PreviousSkills (array of DataTableRowHandle → DT_Skills)
    List of skills that must be learned before the current skill becomes available for unlocking.
  • Each Previous Skill (bool)
    When true, the character must learn every skill listed in PreviousSkills.
    When false, it is enough to satisfy the project’s “any of” rule (for example, at least one branch).
  • Name (Text)
    Display name shown in the skill tree UI.
  • Description (Text)
    Description used in tooltips and details panels.
  • Required Points (int)
    How many skill points are consumed to learn this skill.
  • Required Level (int)
    Minimum character level required before this skill can be learned.
  • Additional Data (BP_DA_Skills_Additional and children)
    Optional data asset for extended parameters that do not fit into the core structure.
    Known children include:

    • BP_DA_HealAround
    • BP_DA_Resistance
    • BP_DA_Squad
  • Skill Category (E_SkillCategory)
    Category that determines which branch of the tree the skill appears in.
    Current values:

    • Player
    • Melee
    • Fire Weapon
    • Craft
  • Stat Type (E_StatType)
    Which stat parameter this skill modifies (for stat‑driven skills).
  • Change Value Rule (E_ChangeValueRule)
    How Value is applied:

    • Plus – add a flat amount.
    • Multiply – multiply the base value.
    • Percent – apply a percentage‑based change.
  • Value (float)
    Numeric change applied according to Change Value Rule and Stat Type.
  • Add New Character Tag (Gameplay Tag)
    CharacterState tag that is activated when the skill is learned.
    This tag is used throughout the project as the unique runtime identifier of the skill.
  • IconSprite (PaperSprite)
    Icon rendered in the skill tree grid.
  • Skill Preview (Material Interface)
    Preview material shown in the details panel when the player selects this skill.

Skill Tree and Progression

The skill tree is built by combining Skill Category, PreviousSkills and level/point requirements.

Tree Structure

  • Skills are grouped into branches by Skill Category:
    • Player‑oriented progression.
    • Melee‑focused progression.
    • Firearms‑focused progression.
    • Crafting‑focused progression.
  • Dependencies are defined through PreviousSkills:
    • If Each Previous Skill is true, every listed prerequisite must be learned.
    • If false, the project can treat the list as “one of” or “subset” depending on the concrete design of that branch.

The tree UI and unlock logic read this structure from DT_Skills and visualize valid next steps for the player.

Progression Flow

BP_AbilityComponent owns:

  • Current XP amount.
  • Current level.
  • The set of learned skills (implicitly via active CharacterStates).

When the player attempts to learn a new skill:

  1. BP_AbilityComponent checks:
    • character level against Required Level,
    • available skill points against Required Points,
    • prerequisite skills via PreviousSkills and Each Previous Skill.
  2. On success:
    • it consumes the required number of points;
    • requests activation of the CharacterState from Add New Character Tag through the state mediator;
    • any modules that care about this state react via BPI_StateMachine.

There is no separate “unlearn” flow in this document; it focuses on the standard forward progression.

Runtime Integration and Modules

Unlocking a skill only adds a CharacterState. All concrete behaviour is implemented in domain‑specific modules reacting to those states.

Key participants:

  • BP_AbilityComponent
    Owns skill progression, unlock checks and requests state activation when a skill is learned.
  • BP_StatsComponent
    Applies stat changes based on:

    • Stat Type,
    • Change Value Rule,
    • Value.
      It reacts to presence of specific skill states that represent stat bonuses (healing, damage resistance, etc.).
  • BP_BuffComponent
    Handles buffs/debuffs that are effectively “always on” or long‑term, when a skill is meant to be represented as a buff.
  • BP_EffectsComponent
    Drives audiovisual feedback for skill usage:

    • camera effects,
    • vision modes (night and thermal),
    • special VFX and SFX for unusual abilities such as telekinesis, teleport or AoE healing.
  • Other systems
    • Interaction and telekinesis logic may use skill states like TelekFind / TelekFindThrProp to enable or expand telekinetic behaviours.
    • AI modules may use states such as TelekFastPushAI and squad skills for AI‑driven unusual abilities.
    • Crafting systems use CharacterStates.Craft.* states to gate recipes and stations.

All Unusual Skills are purely character‑based: they do not depend on equipping specific items or devices. Items can still provide their own abilities, but the skills described here are unlocked and controlled entirely through the ability system and state tags.

Unusual Skills Catalog

The catalog below lists the key Unusual Skills and advanced perks, grouped by functional area. Each row references the CharacterState tag that identifies the skill at runtime.

Health and Survivability

AspectDetails
Item typeProtective clothing/armor Clarification-type assets
Typical slotsHelmet, vest, body armor, etc.
ProtectionReduces damage by type/zone (caliber, damage type, hit zone)
DurabilityEach armor piece has its own durability/health
World actorBP_Inter_Master_Cloth (with Health and UseCustomHealth)
Equipped effectsIntegrated into damage pipeline and hitzone checks

Damage and Combat Focus

Skill TagDisplay NameCategoryTypeUsed ModulesHigh-level Effect
CharacterStates.SkillTree.Damage.TelekFastPushTelek Fast PushPlayerUnusual damage skillAbility, Effects, Melee/CombatOn key press, pushes back and lightly damages all nearby players and AI around the character.
CharacterStates.SkillTree.Damage.IDColdWeapons1Cold Weapons Mastery IMeleeMelee damageAbility, Stats, MeleeIncreases damage dealt by melee weapons.
CharacterStates.SkillTree.Damage.IDColdWeapons2Cold Weapons Mastery IIMeleeMelee damageAbility, Stats, MeleeFurther increases damage dealt by melee weapons.
CharacterStates.SkillTree.Damage.ClosingBlowClosing BlowMeleeMelee finisherAbility, MeleeUnlocks finisher attacks marked as ClosingBlow=true in the chooser table.
CharacterStates.SkillTree.Damage.SpecialPunchSpecial PunchPlayerSpecial melee strikeAbility, Melee, EffectsEnables a powerful punch that can be triggered via a specific input combo.
CharacterStates.SkillTree.Damage.IDFireWeapons1Firearms Mastery IFire WeaponFirearms damageAbility, Stats, FirearmsIncreases damage dealt by firearms.
CharacterStates.SkillTree.Damage.IDFireWeapons2Firearms Mastery IIFire WeaponFirearms damageAbility, Stats, FirearmsFurther increases damage dealt by firearms.
CharacterStates.SkillTree.Damage.RicochetChanceBullet Ricochet ChanceFire WeaponBallistics behaviourAbility, Firearms, EffectsIncreases the ricochet chance for bullets that support ricochet.
CharacterStates.SkillTree.Damage.BulletEnergyLooseBullet Penetration EnergyFire WeaponPenetration behaviourAbility, Firearms, StatsIncreases how many objects a penetrating bullet can pass through before losing all its energy.
CharacterStates.UnusualSkills.TelekFastPushAITelek Fast Push (AI)AIUnusual damage skillAbility, AI, EffectsSame as Telek Fast Push but for AI bots, allowing them to push and damage nearby targets.

Specials and Unusual Skills

Skill TagDisplay NameCategoryTypeUsed ModulesHigh-level Effect
CharacterStates.SkillTree.Specials.HealAroundHeal AroundPlayerArea supportAbility, Stats, Effects, BuffOn key press, finds nearby allied players and friendly bots and restores their health.
CharacterStates.SkillTree.Specials.HealAroundAdvHeal Around AdvancedPlayerAdvanced area supportAbility, Stats, Effects, Buff, VehicleSame as Heal Around but also heals nearby vehicles.
CharacterStates.SkillTree.Specials.RookieSquadRookie SquadPlayerSummon / squadAbility, AI, EffectsSpawns several weaker friendly fighters for a short duration.
CharacterStates.SkillTree.Specials.ProfessionalSquadProfessional SquadPlayerSummon / squadAbility, AI, EffectsSpawns several stronger friendly fighters for a short duration.
CharacterStates.SkillTree.Specials.NightVisionNight VisionPlayerPerception / visionAbility, EffectsAllows activating night vision without any devices.
CharacterStates.SkillTree.Specials.ThermalVisionThermal VisionPlayerPerception / visionAbility, EffectsAllows activating thermal vision without any devices.
CharacterStates.SkillTree.Specials.SmellSmell SensePlayerPerceptionAbility, Effects / AIEnables smell‑based detection, such as sensing enemies, corpses or environmental dangers.
CharacterStates.SkillTree.Specials.TelekFindTelek FindPlayerTelekinesis / lootAbility, Interaction, Equipment, EffectsPerforms a fast loot sweep: finds interactable objects around the player and pulls them into inventory.
CharacterStates.SkillTree.Specials.TelekFindThrPropTelek Throw PropPlayerTelekinesis / offenseAbility, Interaction, EffectsAllows grabbing special nearby props and throwing them at enemies to deal damage.
CharacterStates.SkillTree.Specials.TeleportTeleportPlayerMobilityAbility, Movement/Teleport, EffectsLets the player spawn two teleport points for a short time and move between them.

Crafting Skills

Skill TagDisplay NameCategoryTypeUsed ModulesHigh-level Effect
CharacterStates.Craft.MeleeCraft: Melee WeaponsCraftCrafting unlockAbility, CraftingUnlocks crafting recipes and/or stations related to melee weapons.
CharacterStates.Craft.AmmoExplosiveCraft: Explosive AmmoCraftCrafting unlockAbility, CraftingUnlocks crafting for explosive ammo types.
CharacterStates.Craft.AmmoElectroCraft: Electro AmmoCraftCrafting unlockAbility, CraftingUnlocks crafting for electroshock ammo types.
CharacterStates.Craft.FirearmsCraft: FirearmsCraftCrafting unlockAbility, CraftingUnlocks crafting recipes for firearms.
CharacterStates.Craft.NylonCraft: NylonCraftCrafting unlockAbility, CraftingUnlocks crafting using nylon as a resource.
CharacterStates.Craft.LeatherCraft: LeatherCraftCrafting unlockAbility, CraftingUnlocks crafting using leather as a resource.
CharacterStates.Craft.RubberCraft: RubberCraftCrafting unlockAbility, CraftingUnlocks crafting using rubber as a resource.
CharacterStates.Craft.MicrochipsCraft: MicrochipsCraftCrafting unlockAbility, CraftingUnlocks crafting that uses microchips and electronic components.
CharacterStates.Craft.LegendaryFirearmsCraft: Legendary FirearmsCraftCrafting unlockAbility, CraftingUnlocks crafting of legendary‑grade firearms.
CharacterStates.Craft.LegendaryMeleeCraft: Legendary MeleeCraftCrafting unlockAbility, CraftingUnlocks crafting of legendary‑grade melee weapons.
CharacterStates.Craft.BasicMilitaryCraft: Basic MilitaryCraftCrafting unlockAbility, CraftingUnlocks basic military‑grade crafting options and related recipes.

Typical Flows

Learning a New Skill

  1. The player selects a skill in the tree UI.
  2. BP_AbilityComponent validates:
    • level and available skill points,
    • prerequisites in PreviousSkills and Each Previous Skill.
  3. On success, it:
    • spends the required points,
    • requests activation of the CharacterState from Add New Character Tag via the mediator.
  4. Stats, buffs, combat and effects modules react to the new active state and apply their own changes.

Using an Unusual Vision Mode

  1. The player has learned NightVision or ThermalVision.
  2. On input, the vision toggle logic checks whether the corresponding skill state is active.
  3. If active, BP_EffectsComponent enables the correct post‑process / vision mode.
  4. Deactivation clears the effect but the state remains as a permanent unlock.

Using Telekinesis‑Based Loot (TelekFind)

  1. The player has learned TelekFind.
  2. On key press, the TelekFind logic:
    • scans around the character for valid interactable objects,
    • performs interaction/loot actions and adds valid items directly to the inventory.
  3. Effects and UI can provide feedback through BP_EffectsComponent and inventory widgets.
  • ./stats-and-survival-system.md
  • ./buffs-and-debuffs.md (when available)
  • ./crafting-system.md (when available)
  • ./ai-system.md (when available)
  • ./state-system/state-system.md
  • ./character-modules/character-modules.md