Home › Guides › Extending the framework

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.

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.