abilities

Define per-player abilities with lifecycle callbacks and UI buttons.

Updated Feb 7, 2026
One-click install
npx skills add https://github.com/All-Out-Games/reusable-weapons-csl --skill abilities
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: abilities
Source: https://github.com/All-Out-Games/reusable-weapons-csl/tree/main/.claude/skills/abilities
Command: npx skills add https://github.com/All-Out-Games/reusable-weapons-csl --skill abilities

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The ability system provides a framework for creating player abilities with cooldowns, input handling, and UI buttons.

Core Features & Use Cases

  • Per-player abilities: Each player has its own list of abilities.
  • Draw in ao_late_update: Ability buttons render during the player's late update inside is_local_or_server checks.
  • Implement callbacks: Abilities define on_init, on_update, and optionally can_use and on_draw_button.

Quick Start

Create a new ability by subclassing Ability_Base and implement on_init, on_update, and optionally can_use and on_draw_button.

Frequently Asked Questions about abilities

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

FAQPage Schema
How do I create per-player abilities with cooldowns in a game framework?

To create per-player abilities with cooldowns, subclass Ability_Base and implement the on_init and on_update lifecycle callbacks to manage ability state and timing for each player individually.

How does input handling work for player abilities during the game update loop?

Input handling for player abilities is processed within the on_update callback, while UI buttons render during the player's late update inside is_local_or_server checks using the optional on_draw_button callback.

What lifecycle callbacks do I need to implement for a custom ability system?

A custom ability system requires implementing on_init for setup and on_update for per-frame logic, while can_use and on_draw_button are optional callbacks for usage validation and UI button rendering.

Can I use this ability framework for local multiplayer with separate player ability lists?

Yes, the ability framework supports local multiplayer by maintaining a separate list of abilities per player, ensuring each player's cooldowns and input handling are managed independently within the game.

What is the best way to render ability UI buttons in an action game?

The best way to render ability UI buttons is implementing the on_draw_button callback within your Ability_Base subclass, which automatically wires into the ao_late_update rendering phase for proper draw ordering.

When should I use the can_use callback when defining player abilities?

Use the can_use callback when you need to validate custom conditions before an ability activates, such as checking resource costs or state restrictions, returning false to prevent ability execution during cooldowns.