Quick Start

1. Enable the plugin

Open Edit -> Plugins, type Crimson in the search box, tick CrimsonEquipment's checkbox (and its dependency CrimsonCommon), and restart the editor when prompted. For a Blueprint project that's the entire install - you never hand-edit the .uproject or any .Build.cs.

Screenshot pendingImages/CrimsonEquipment/qs-enable-plugin.png
Edit -> Plugins -> search 'Crimson' -> tick CrimsonEquipment's Enabled checkbox -> restart the editor.
Blueprint-only project?
Enabling the plugin in Edit -> Plugins is the whole installation - there is no .uproject or .Build.cs to edit. The editor writes the plugin entry for you. The C++ step below is needed only when you reference CrimsonEquipment types from your own C++ code.

C++ projects: after enabling the plugin above, add its module to your build file so your game code can use its types:

csharp
// YourGame.Build.cs
PublicDependencyModuleNames.Add("CrimsonEquipment");

2. Add Components to Your Pawn

cpp
#include "CrimsonEquipmentSlotsComponent.h"
#include "CrimsonEquipmentManagerComponent.h"
AMyCharacter::AMyCharacter()
{
EquipmentSlots = CreateDefaultSubobject<UCrimsonEquipmentSlotsComponent>(TEXT("EquipmentSlots"));
EquipmentManager = CreateDefaultSubobject<UCrimsonEquipmentManagerComponent>(TEXT("EquipmentManager"));
}

3. Define Your Slot Layout

Open the Character Blueprint -> select EquipmentSlots -> set SlotLayout in the Details panel. Each entry is a gameplay tag + count:

SlotTagSlotCountResult
Equipment.Slot.Weapon1One weapon slot
Equipment.Slot.Head1One head slot
Equipment.Slot.Ring2Two ring slots (indices 0 and 1)
Tag Conventions
Define all equipment slot tags in a GameplayTags.ini or in a native UGameplayTagsManager::AddNativeGameplayTag call. The tag string is entirely up to your project - just keep them consistent between UCrimsonEquipmentSlotsComponent and UCrimsonEquipmentDefinition.

4. Create an Equipment Definition

Right-click in the Content Browser -> Blueprint Class -> search for UCrimsonEquipmentDefinition -> create a subclass (e.g. BP_Sword). In the Blueprint defaults, set:

PropertyExample Value
EquipmentSlotTagEquipment.Slot.Weapon
InstanceTypeUCrimsonEquipmentInstance (or your subclass)
AbilitySetsToGrantYour UCrimsonAbilitySet data assets
ActorsToSpawnYour weapon mesh actor class + socket name (e.g. hand_r)

5. Equip an Item

cpp
// Server-side only - BlueprintAuthorityOnly
if (UCrimsonEquipmentManagerComponent* EqMgr =
Pawn->FindComponentByClass<UCrimsonEquipmentManagerComponent>())
{
UCrimsonEquipmentInstance* Instance = EqMgr->EquipItem(
UBP_Sword::StaticClass(),
InventoryItemInstance); // opaque source - cast it back later
}