ability-system

Implements data-driven character abilities in Godot 4.x using Resources, components, and gameplay tags.

657|31|Updated Apr 3, 2026
One-click install
npx skills add https://github.com/jame581/GodotPrompter --skill ability-system
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ability-system
Source: https://github.com/jame581/GodotPrompter/tree/main/skills/ability-system
Command: npx skills add https://github.com/jame581/GodotPrompter --skill ability-system

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Building character abilities in Godot often leads to tangled code where cooldowns, costs, buffs, and stat changes are hardcoded per ability. This Skill provides a complete architecture for a data-driven ability system where designers can create and balance abilities as Resources without touching code.

Core Features & Use Cases

  • Resource-Based Abilities: Define abilities as Godot Resources with cost, cooldown, and cast time, activated through an AbilityComponent node that enforces validation and emits signals.
  • Buffs, Debuffs & Stat Modifiers: Timed effects with apply/tick/expire lifecycle, plus a StatSet pipeline computing final stats via ADD, MULTIPLY, and OVERRIDE passes with clamping.
  • Gameplay Tags & HUD Binding: Gate ability activation with required/blocked tags, block effects via immunity tags, and bind cooldown sweeps and effect icons to component signals without per-frame polling.
  • Use Case: Add a stun effect to an enemy that applies a 'status.stunned' tag, automatically blocking their fireball ability until the effect expires, with the HUD cooldown sweep updating via signals.

Quick Start

Ask your agent to build a Godot ability system with Resource-based abilities, cooldowns, buffs, and gameplay tags for your character.

Frequently Asked Questions about ability-system

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build an ability system in Godot 4?

Define abilities as Resource subclasses with cost, cooldown, and can_activate/activate methods, then add an AbilityComponent node to each entity to grant and trigger them. The component validates cost and cooldown before activation and emits signals for HUD updates.

How to implement buffs and debuffs in Godot?

Create Effect Resources with duration and tick_interval, then use an EffectHolder node that calls on_apply, on_tick, and on_expire at the right times. Effects modify stats through StatModifier entries added to and removed from a StatSet Resource.

Does this ability system work with both GDScript and C#?

Yes, every component including Ability, AbilityComponent, Effect, EffectHolder, StatSet, and GameplayTagContainer is provided in both GDScript and C# with equivalent behavior. Both versions target Godot 4.3 and later.

How do I block abilities when a character is stunned in Godot?

Add a GameplayTagContainer node to the character and set the ability's blocked_tags to include the stun tag. A StunEffect adds the tag on apply and removes it on expire, causing can_activate to fail while the tag is present.

Why do stat modifiers stack incorrectly in my Godot game?

Stacking issues occur when modifiers from the same source are added repeatedly instead of refreshed. Key each modifier by its source in the StatSet so re-applying replaces the old entry, while different sources stack independently.

How do I show ability cooldowns in a Godot HUD?

Connect a TextureProgressBar in radial fill mode to the AbilityComponent's cooldown_started and cooldown_finished signals, then lerp its value in _process. Bind signals in a dedicated init call rather than _ready so the HUD can exist before the player.