---
title: Extending the framework
product: Advanced Framework Pro
version: 1.0
engine: Unreal Engine 5.8
updated: 2026-10-05
canonical: https://docs.human-codeable.com/guides/extending.html
---

# Extending the framework

The general patterns for building on the framework rather than forking it.

## Adding a new interaction type

1. Derive a component from `BPC_Interaction`.
2. Add a matching interface with a `CanBe…` function returning an override flag and an answer.
3. Add a pawn or controller ability that traces and calls into your interaction, passing Source Info.
4. Call `TickHighlight` on the interaction while hovering so highlighting works for free.

`AFS_UX_Select` is the smallest complete example to copy the shape from.

## Adding a new ability

Derive from `BPC_PawnAbility` for a whole-player ability or `BPC_ControllerAbility` for a per-hand one. Override `ComponentActivated` and `ComponentDeactivated` to add and remove your input mapping context — this is what makes the blocker system automatically manage your input.

## Adding a new highlight style

Derive from `BPC_Highlight`, override `StartHighlight`, `EndHighlight` and `UpdateColor`. See [Custom highlight style](../workflows/custom-highlight-style.html).

## Adding a new widget

Derive from `WBP_Base` and implement `BPI_WidgetElement`. Put styling in `WidgetElement_UpdateTheme`, content in `WidgetElement_Initiate`, and nothing in Construct.

## Adding a value type

Implement `BPI_Value` on your object and every settings widget binds to it. Derive from `BPC_State` if you want a component rather than an object.

## Adding a platform pawn

Derive from an existing pawn, implement `BPI_PawnInfo`, and return the appropriate `E_Pawn_Type`. Assign it in `PDA_Level`.
