Extension APIs
CAT provides two primary Blueprint extension models. Choose by lifetime and output type, not only by where the Blueprint is authored.
| Extension model | Lifetime | Use it for |
|---|---|---|
| Assembly Controller | One UObject per active Control Session | Continuous input that produces a complete Motor and Fan output frame. |
| Part Gameplay Feature | One UObject per Part instance and Feature ID | Part-scoped lifecycle behavior and discrete gameplay actions. |
Assembly Controller
An Assembly Controller runs only while its Control Session is active. It receives semantic slot values from the Control Station and writes actuator output during CAT's scheduled Controller update.
Input contract and routing
- Declare semantic Input Slots in the Controller Class Defaults. Each slot has a stable ID, required value type, tooltip, and required/optional state.
- In the Control Station, assign an Input Action to each slot.
- Provide an active Input Mapping Context that maps player input to those actions.
- During the Control Session, the Assembly Interactor routes action values into the matching Controller slots.
Input Slots describe intent such as Move, Throttle, or Attitude; they do not define keyboard or device mappings.
Lifecycle events
On Controller Started: Called once after the session-owned Controller is initialized.On Controller Update: Reads current input and writes the complete actuator output frame. Use the suppliedDelta Seconds; this is not Event Tick.On Controller Stopped: Called before the Controller instance is released and includes the stop reason.
Input and state queries
CAT Get Input BoolCAT Get Input Axis 1D,2D, and3DCAT Was Input StartedandCAT Was Input Released- Control transform, basis directions, and view-forward direction
- Control Body transform, linear/angular velocity, local velocity, and speed
Actuator queries
CAT Find MotorsandCAT Find FansCAT Find Actuators By TagorCAT Find Actuators By Part- Actuator axis, position, body transform, linear velocity, and angular velocity
- Actuator Auto Control Strength
Actuator Handles are valid only for the Controller instance, Control Session, and Assembly Revision that produced them. Resolve them again after the Assembly structure changes.
Output transaction
Output functions are valid only during On Controller Update. Write every intended actuator value for the current frame instead of replacing the scheduled update with Event Tick.
CAT Set Actuator InputandCAT Clear Actuator InputCAT Set Motor InputandCAT Set Fan Input- Advanced Motor torque multiplier and Fan world-up projection output
CAT Apply Axis Heading Motor Control- Built-in Watercraft and Aircraft rotation-control helpers
Built-in Controller classes
- CAT Ground Drive Controller
- CAT Aircraft Controller
- CAT Watercraft Controller
Derive from a built-in class and adjust its Class Default settings when its input contract and behavior already fit. Derive directly from CAT Assembly Controller when you need a different slot contract or actuator algorithm.
Part Gameplay Feature
A Part Gameplay Feature attaches behavior to a Part Model without requiring a separate Actor for each feature. CAT creates one runtime feature instance for each Part instance and Feature ID.
Authoring and input routing
- Declare semantic Input Slots in the Feature Class Defaults.
- Add a Gameplay Behavior definition to a Part Model and select the Feature class.
- Assign an Input Action and Server Delivery policy to each slot.
- Provide an active Input Mapping Context for those actions.
- During an active Control Session, the Assembly Interactor routes matching actions to the feature.
Use CAT Gameplay Input: SlotId Blueprint events for slot-specific input. Receive Gameplay Input is the corresponding general override. Legacy direct InputActions and CAT Input Action nodes remain supported for migration but are deprecated.
Lifecycle events
On Feature Activated: Initialize transient state after the runtime feature instance is attached to its Part.CAT Gameplay Input: SlotId/Receive Gameplay Input: Receive the semantic slot ID, action value, and Enhanced Input trigger event.On Feature Deactivated: Release delegates, timers, and transient resources.
Runtime context
- Owning Assembly and Part
- Feature ID
- Current Control Station Part
- Control instigator
- Owning Part world transform
Server delivery
Each Input Binding configures Disabled, Reliable, or Unreliable delivery independently for Started, Ongoing, Triggered, Completed, and Canceled. The default is Reliable for every event.
Gameplay Feature input is best for actions such as fire, activate, toggle, or release. Use an Assembly Controller for continuous steering, propulsion, or attitude control that must produce a complete actuator output frame.
See Controller and Gameplay Features for complete workflows.