CrimsonEquipment
CrimsonEquipment is a slot-based equipment system. Equipping a piece of gear grants ability sets to the pawn's ASC, spawns visual actors attached to sockets, and fires lifecycle hooks on the instance. Unequipping reverses all of that in the correct order.
No CrimsonAbilitySystem or CrimsonInventory Dependency
CrimsonEquipment discovers the ASC via the engine accessor
UAbilitySystemGlobals::GetAbilitySystemComponentFromActor (which honors IAbilitySystemInterface) and grants UCrimsonAbilitySets to it directly. It knows nothing about inventory items - the source object bridge passes any UObject* opaquely and lets the caller cast it to their type.Two-Component Pattern
Every equipped pawn needs exactly two components:
| Component | Responsibility |
|---|---|
UCrimsonEquipmentSlotsComponent | Declares the slot layout - which slot types exist and how many of each (e.g. 1 weapon, 2 rings). Read by the manager during EquipItem to validate availability. |
UCrimsonEquipmentManagerComponent | Runtime manager - owns the replicated equipment list, grants/revokes ability sets, spawns/destroys visual actors, handles save/restore. |
Crimson Plugin Dependencies
| Plugin | Why |
|---|---|
| CrimsonCommon | Logging macros; the UCrimsonAbilitySet data asset + FCrimsonAbilitySet_GrantedHandles used to grant/revoke ability sets |
Engine Module Dependencies
| Module | Visibility | Purpose |
|---|---|---|
| Core / CoreUObject / Engine | Public | Base UE types |
| GameplayTags | Public | FGameplayTag for slot identification |
| GameplayAbilities | Public | UAbilitySystemComponent, UCrimsonAbilitySet grant, UGameplayAbility base for FromEquipment |
| ModularGameplay | Public | UPawnComponent base for UCrimsonEquipmentManagerComponent |
| NetCore | Public | FFastArraySerializer for replicated equipment list |
| DeveloperSettings | Public | UCrimsonEquipmentSettings project settings |
| IrisCore | Private | Iris replication support |