interactables

Implement component-based Interactable systems for pickups, buttons, and NPCs.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The Interactable system provides a reusable component pattern that lets players interact with world entities like pickups, buttons, and NPCs, eliminating ad-hoc interaction code scattered across objects.

Core Features & Use Cases

  • Self-listening Interactable components that automatically expose can_use and on_interact hooks for per-object logic.
  • Optional global hooks for game-wide interaction rules (e.g., blocking interactions during cutscenes).
  • Flexible property configuration (radius, prompt_offset, required_hold_time, priority) with editor-friendly setup and dynamic UI prompts.

Quick Start

Create a custom Interactable, implement can_use and on_interact, and register it with ao_start using this->set_listener(this).

Frequently Asked Questions about interactables

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

FAQPage Schema
How do I implement player interaction with NPCs and pickups in game development?

Player interaction with NPCs and pickups is implemented by extending an Interactable component, defining can_use and on_interact hooks, and registering it via this->set_listener(this) in ao_start to enable per-object logic.

What is a component-based interaction system for world entities?

A component-based interaction system applies a reusable pattern to world entities like buttons and NPCs, replacing scattered ad-hoc code with self-listening components that expose automatic UI prompts and configurable properties.

How do I set up dynamic UI prompts for interactable game objects?

Dynamic UI prompts are configured using editor-friendly properties including interaction radius, prompt_offset, required_hold_time, and priority, automatically displaying contextual prompts when players approach interactable entities.

Can I block player interactions globally during cutscenes or specific game states?

Global interaction blocking during cutscenes or specific game states is supported through optional global hooks that apply game-wide interaction rules across all interactable entities simultaneously.

Do I need additional dependencies to use the interactable system?

No additional dependencies are required to use the interactable system, as it operates as a standalone component pattern with no external libraries or modules listed in its dependency chain.

What are the limitations of using a component pattern for world interactions?

The component pattern requires extending the base Interactable class and manually registering listeners, meaning objects lacking this extension or proper configuration will not participate in the interaction system or display UI prompts.