UCrimsonEquipmentSlotsComponent

Declares the complete slot layout for a pawn. The manager reads this to validate slot availability when EquipItem is called. Not replicated - slot layout is configured in Blueprint defaults and is assumed to be identical on server and client.

FCrimsonEquipmentSlotDefinition

FieldTypeDescription
SlotTagFGameplayTagIdentifies this slot type. Must match EquipmentSlotTag on UCrimsonEquipmentDefinition.
SlotCountint32How many items of this type can be equipped simultaneously. E.g. 2 for rings -> indices 0 and 1 are both valid.

Dynamic Slot Layouts

Call SetSlotLayout at runtime to change slot availability (e.g. a character who unlocks a second weapon slot mid-game). Call it server-side before any EquipItem call that uses the new slot.

cpp
// Unlock a second weapon slot at runtime
TArray<FCrimsonEquipmentSlotDefinition> NewLayout = SlotsComp->GetSlotLayout();
FCrimsonEquipmentSlotDefinition& WeaponSlot = NewLayout[0]; // find by tag in practice
WeaponSlot.SlotCount = 2;
SlotsComp->SetSlotLayout(NewLayout);

Slot Index Selection

When EquipItem is called with SpecificSlotIndex == -1 (default), the manager auto-selects the first empty index for the slot type. Pass an explicit index (0, 1, ...) to force placement in a particular slot. If that index is occupied, the existing item is unequipped first.