
godot-ability-system
Expert patterns for RPG/action ability systems including cooldown strategies, combo systems, ability chaining, skill trees with prerequisites, upgrade paths, and resource management. Use when implementing unlockable abilities, character progression, or complex skill systems. Trigger keywords: PlayerAbility, AbilityManager, cooldown, SkillTree, SkillNode, prerequisites, canuse, execute, ComboSystem, abilitychain, globalcooldown, chargesystem, upgradepath.
- Installs
- 421
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/thedivergentai/game-dev-agentic-skills --skill godot-ability-system- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads godot-ability-system automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Architecture Decision: Where Does the Manager Live?
| Scope | Policy | Script |
|---|---|---|
| Per character / enemy / turret | Scene-scoped manager as child (default) | ability_manager.gd or composition ability_container.gd on the entity |
| Shared unlock / loadout catalog across scenes | Autoload catalog / progression only (ranks, unlock flags) — not live cast state | Thin Autoload data; casts still go through the entity manager |
| Global "cast any ability anywhere" Autoload | Avoid | Breaks encapsulation and multiplayer authority |
Resolved policy: Live cooldowns, GCD, and execute() run on a scene-scoped AbilityManager / AbilityContainer under the caster. Autoloads may store unlock ranks; they must not be the combat cast oracle. Skill-tree UI reads/writes progression data, then calls into the caster’s manager — never /root/AbilityManager.use_* for combat.
NEVER Do
- NEVER tick cooldowns / status durations in
_process()— Use_physics_process(delta)or one-shot Timers so cooldowns stay deterministic under frame spikes. - NEVER forget global cooldown (GCD) when design needs anti-spam — Small shared lock (0.5–1.5s) between casts when required.
- NEVER hardcode ability effects in the manager — Strategy: each ability is a Resource / node with
execute()(ability_resource.gd). - NEVER allow casts during animation lock — Gate on
is_casting/ anim signals. - NEVER save remaining cooldown floats without time normalization — Persist absolute end timestamps (
Time.get_unix_time_from_system() + remaining). - NEVER put live combat cast state in a global Autoload — Scene-scoped manager (see decision table). Progression Autoloads are fine.
- NEVER blindly ban or blindly require object pools — GDScript refcounting makes pool-optional for light VFX; do pool when spawn/despawn of projectiles/AoE is high-frequency or allocation shows up in the profiler. Prefer instantiate/
queue_freeuntil measured otherwise. - NEVER grow deep ability inheritance trees — Compose Resources + containers (godot-composition).
Golden Path (MANDATORY)
- ability_resource.gd — data + virtual
execute() - ability_manager.gd or ability_container.gd — scene-scoped cast/cooldown
- buff_stat.gd — when buffs/modifiers exist
- Damage resolution → godot-combat-system
Do NOT paste inline AbilityManager / ComboSystem / SkillTreeManager novels into scenes. Skill trees are progression UI + prerequisite graphs that grant Resources to the caster’s container.
Available Scripts
- ability_resource.gd — MANDATORY before new abilities
- ability_manager.gd — MANDATORY Resource-driven cooldown registry (scene-scoped)
- ability_container.gd — MANDATORY alternative: node/Timer composition per ability
- buff_stat.gd — modular buff stats (Do NOT Load if no buffs)
- combo_tracker.gd — windowed combo chains → finisher abilities
- charge_ability.gd — multi-charge recharge (Flash-style)
- skill_node.gd / skill_tree_manager.gd — prerequisite graphs + point spend (progression only)
- status_effect.gd / status_effect_manager.gd — ticking DoTs/buffs (
duplicate(true)required) - ability_caster_network.gd — predict locally, authority validates RPC shell
Cooldown & Status Timing Contract
- Cooldown registry updates and status
process_tickmust use physics-frame delta (_physics_process) orTimernodes owned by the container. - Hit detection from abilities stays on the physics tick when applying impulses / queries.
- UI may read cooldown progress in
_process; it must not own the truth.
Expert Techniques (short)
- Dependency injection: parents inject caster context; abilities do not
get_node("/root/Player"). - Duck-typed hits:
has_method(&"take_damage")/ combat DamageData — see combat skill. - AoE:
call_groupor space queries; do not scan the whole tree each cast. - Networking: predict locally, authority validates
can_use+ costs (godot-multiplayer-networking). - Skill-tree visualizer:
@toolGraphEdit for design-time graphs; runtime still grants Resources to scene managers.
Status Effects & Combos (critical WHY)
CAUTION: Status/buff templates applied at runtime must use
duplicate(true). One poisoned.tresmutates every character sharing that asset — see status_effect_manager.gd.
- Combos: combo_tracker.gd — sequence window + recipe table; finishers remain normal
AbilityResourceentries. - Charges: charge_ability.gd — recharge ticks belong on
_physics_process, not UI_process. - Skill trees: skill_tree_manager.gd grants abilities to the caster's scene manager — progression Autoloads hold ranks only.
- Save cooldowns: persist absolute end timestamps (
Time.get_unix_time_from_system() + remaining), not raw remaining floats — prevents clock/load exploits.
MANDATORY for combos/charges/skill-tree/status/network depth beyond bullets above: elite-ability-patterns.md. Do NOT Load for a first AbilityResource + AbilityManager pass.
Reference
Progressive disclosure: Skim Official Documentation only for the APIs you are implementing (Resources, timers, signals, save, multiplayer). Open Related Skills when wiring adjacent systems—do not preload the whole lattice.
Official Documentation
- Resources — Ability definitions, buffs, and status effects should be
Resourcedata (not hardcoded manager switches) so designers can author and share assets. - Resource — Use
duplicate(true)when applying a status/buff template at runtime so one character’s ticking state cannot mutate the shared.tresfor everyone. - GDScript exports —
@export/@export_grouppower Inspector-tuned costs, cooldowns, prerequisites, and effect arrays on ability Resources. - Using signals — Emit
ability_cast,ability_ready, and cooldown lifecycle signals so UI and VFX subscribe without coupling to AbilityManager internals. - Scene organization — Keep “signals up, calls down”: parents/UI listen; managers call into ability Resources/nodes rather than reaching globally for combat state.
- Idle and Physics Processing — Tick cooldowns and GCD in
_physics_process(fixed delta); avoid_processfor cooldown math that desyncs under frame spikes. - Timer — One-shot
Timerchildren are a clean composition pattern for per-ability cooldowns in container-style managers. - SceneTreeTimer —
create_timer()/ await patterns fit cast times and short buff durations without adding persistent Timer nodes for every cast. - Groups — AoE abilities should
call_group(or query groups) instead of hand-rolled scene scans for every hit target. - Time — Persist cooldown end timestamps (
get_unix_time_from_system()+ remaining), not raw remaining floats, across save/load. - Saving games — Serialize ability unlock ranks and absolute cooldown end times with the rest of player progression data.
- High-level multiplayer — Authoritative cast validation +
@rpcconfirmation/cancel is the engine baseline for predicted ability casts.
Related Skills
Prerequisites
- godot-resource-data-patterns — Abilities, buffs, and skill-tree nodes are Resource-first; load this before inventing custom serialization or inheritance trees for ability data.
- godot-signal-architecture — Cast/ready/cooldown signals and UI hooks depend on disciplined signal ownership so AbilityManager stays decoupled from characters and HUD.
- godot-composition — Prefer AbilityContainer / component nodes over deep
BaseAbility → MagicAbility → FireAbilityinheritance for runtime behavior. - godot-gdscript-mastery — Virtual
execute()/can_cast(), typed Resources, and await-on-timer cast flows assume solid GDScript patterns.
Complements
- godot-combat-system — Damage, hit reactions, and targeting pipelines consume ability
execute()results; keep DamageData separate from ability metadata. - godot-rpg-stats — Mana/stamina costs, stat bonuses from skill ranks, and buff multipliers need a consistent stats/modifier layer.
- godot-input-handling — Hotbar / action-map input should call
can_use/use_abilityrather than embedding cooldown logic in input callbacks. - godot-animation-player — Animation lock and cast telegraphs gate ability spam; wire AnimationPlayer start/finish into
is_casting. - godot-state-machine-advanced — Cast, channel, and interrupt states belong in a character state machine that asks the ability manager, not the other way around.
- godot-save-load-systems — Skill ranks, unlock flags, and absolute cooldown end times must round-trip through the project save schema.
Downstream / consumers
- godot-monte-carlo-balancer — After cooldowns, costs, and damage/effect Resources are tunable, Monte Carlo loadout sims prove ability DPS/uptime bands before shipping curves.
- godot-multiplayer-networking — Predicted casts, authority checks, and rollback of failed RPCs build on the ability manager’s can_use / execute split.
- godot-genre-action-rpg — Action-RPG skill bars, skill trees, and ability chaining assemble this skill with combat, stats, and progression genre glue.
- godot-inventory-system — Consumable scrolls, skill books, and equipment that grants abilities bridge inventory grants into AbilityManager registration.
Master
- godot-master — Library router and mirrored module entry; use when discovering peer skills or syncing shared script mirrors after Domain Skill edits.
FAQ
What does the godot-ability-system skill do?
Expert patterns for RPG/action ability systems including cooldown strategies, combo systems, ability chaining, skill trees with prerequisites, upgrade paths, and resource management. Use when implementing unlockable abilities, character progression, or complex skill systems. Trigger keywords: PlayerAbility, AbilityManager, cooldown, SkillTree, SkillNode, prerequisites, canuse, execute, ComboSystem, abilitychain, globalcooldown, chargesystem, upgradepath.
How do I install godot-ability-system?
Run npx skills add https://github.com/thedivergentai/game-dev-agentic-skills --skill godot-ability-system in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/godot-ability-system/ (personal) or .claude/skills/godot-ability-system/ (project).
Which AI agents can use godot-ability-system?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is godot-ability-system safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains godot-ability-system?
It is published by thedivergentai in thedivergentai/game-dev-agentic-skills. It has 421 recorded installs.
More from thedivergentai/game-dev-agentic-skills
godot-master
thedivergentai/game-dev-agentic-skills
Consolidated expert library for professional Godot 4.7+ game and application development. Orchestrates 92 Domain Skills through architectural workflows, anti-pattern catalogs, performance budgets, and Server API patterns. Use when: (1) starting a new Godot project, (2) designing game or app architecture, (3) building entity/component systems, (4) debugging performance or physics issues, (5) choosing between 2D/3D approaches, (6) implementing multiplayer, (7) optimizing draw calls or script time, (8) porting between platforms, (9) migrating from 4.6 to 4.7. Primary entry point for ALL Godot development tasks. Keywords: Godot 4.7, AreaLight3D, HDR, Asset Store, godot-master.
godot-shaders-basics
thedivergentai/game-dev-agentic-skills
Expert Godot shader patterns for batch-safe hitflash, alpha-scissor foliage/dissolve, screenspace postFX, depth reconstruction, triplanar, and instance uniforms — not first-shader tutorials. Trigger on draw-call batching breaks, discard vs depth-prepass, foliage shadows, post-process quads, or world-position FX. Keywords: instance uniform, ALPHASCISSOR, hintscreentexture, hintdepthtexture, global uniform, sampler2DArray, canvasitem, spatial, post-processing.
godot-2d-animation
thedivergentai/game-dev-agentic-skills
Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs. Use when implementing sprite frame animations, procedural animation (squash/stretch), cutout bone hierarchies, or frame-perfect timing systems. Trigger keywords: AnimatedSprite2D, SpriteFrames, animationfinished, animationlooped, framechanged, frameprogress, setframeandprogress, cutout animation, skeletal 2D, Bone2D, procedural animation, animation state machine, advance(0).
godot-ui-theming
thedivergentai/game-dev-agentic-skills
Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling. Covers StyleBoxFlat/Texture, theme inheritance, dynamic theme switching, and font variations. Use when implementing consistent UI styling OR supporting multiple themes. Keywords Theme, StyleBox, StyleBoxFlat, addthemeoverride, font, theme inheritance, dark mode.
godot-gdscript-mastery
thedivergentai/game-dev-agentic-skills
Expert GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration. Use for code review, refactoring hot paths, or project standards. Trigger keywords: statictyping, signalarchitecture, uniquenodes, @onready, classname, signalupcalldown, Callable.bind, typedcollections, awaitsequence.
godot-particles
thedivergentai/game-dev-agentic-skills
Expert blueprint for GPU particle systems (explosions, magic effects, weather, trails) using GPUParticles2D/3D, ParticleProcessMaterial, gradients, sub-emitters, and custom shaders. Use when creating VFX, environmental effects, or visual feedback. Keywords GPUParticles2D, ParticleProcessMaterial, emissionshape, colorramp, subemitter, oneshot.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available