Home › Guides › Conventions & guidelines
Conventions & guidelines
The rules the framework follows internally. Following them in your own content keeps everything consistent and makes the framework's own tooling work on your assets.
Naming
| Prefix | Meaning |
|---|---|
BP_ | Actor or object Blueprint |
BPC_ | Component |
BPI_ / Interface_ | Blueprint interface |
WBP_ / AF | Widget Blueprint (AF for design-system primitives) |
PDA_ / DA_ | Primary data asset class / instance |
FL_ / BFL_ | Blueprint function library |
ML_ | Blueprint macro library |
ST_ / Struct_ | Struct |
E_ | Enum |
SM_ / M_ / MI_ / T_ | Static mesh / material / material instance / texture |
Plugin prefixes are AFS_ for systems, AFM_ for modules, AFA_ for assets, AFE_ for
environments and AFU_ for utilities.
Folder layout inside a plugin
Blueprints, Components, DataAssets, Enums, Helper, Interfaces, Libraries, Structs,
Widgets. Helper actors spawned at runtime go in Helper; anything a user places goes in
Blueprints.
Design rules
- Prefer tags over classes when looking components up.
GetComponentsByTaglets a user add several instances with different roles;GetComponentByClassdoes not. - Prefer blockers over booleans. Never set
bEnableddirectly on an ability — use the blocker API so other systems can suppress it independently. - Pass Source Info through every interaction. Even when unused.
- Veto through interfaces, not through subclassing. If behaviour needs to be conditional, implement the interface rather than deriving a new component class.
- Keep theme code in
WidgetElement_UpdateTheme. Styling anywhere else will not update on a live theme change.