Quick Start
Goal: a character with a weapon slot and a head slot, one sword definition that attaches a mesh to the hand, equipped by the server and visible on every client - in Blueprint and C++, with no other Crimson plugin required.
1. Enable the plugin
Open Edit -> Plugins, type Crimson in the search box, tick CrimsonEquipment, and restart when prompted. For a Blueprint project that is the entire installation - there is no .uproject or .Build.cs to hand-edit.
2. Author your slot tags
The plugin ships no slot tags. A slot is any gameplay tag you choose, and the same tag has to appear in two places: the pawn's slot layout, and every definition that fills that slot. Author them first.
Open Project Settings -> Project -> GameplayTags -> Manage Gameplay Tags -> Add New Gameplay Tag and create the two tags this Quick Start uses:
| Tag | What it will be |
|---|---|
Equipment.Slot.Weapon | One weapon slot. |
Equipment.Slot.Head | One head slot. |
EquipmentSlotTag nor FCrimsonEquipmentSlotDefinition::SlotTag filters the tag picker, so any tag works - Gear.MainHand, Slot.Trinket, anything. Pick a prefix and hold to it.FGameplayTag property in the editor.3. Add the slots component and author the layout
UCrimsonEquipmentSlotsComponent declares which slots the pawn has. It is not replicated - it is authored in defaults, so every machine builds the same layout from the same Blueprint.
Open your character Blueprint -> Add Component -> Crimson Equipment Slots. Select it and fill the Slot Layout array in the Details panel, one entry per slot type.
| Slot Tag | Slot Count | Result |
|---|---|---|
Equipment.Slot.Weapon | 1 | One weapon slot, index 0. |
Equipment.Slot.Head | 1 | One head slot, index 0. |
Slot Count = 2 on a ring slot gives you indices 0 and 1 and lets a character wear two rings. It clamps to a minimum of 1.4. Add the manager component
UCrimsonEquipmentManagerComponent is the runtime half - it owns the replicated equipment list, grants abilities, spawns actors, and implements ICrimsonEquipmentHost. It replicates, so it is added on the server and reaches clients through replication.
Open your character Blueprint -> Add Component -> Crimson Equipment Manager Component, alongside the slots component from step 3.
To add it from a Game Feature instead - so a pawn class gains equipment without being edited at all - see How-To: Add Slots with a Game Feature.
5. Create an equipment definition
A definition is a Blueprint class, not a data asset instance - the plugin reads it off the class default object and never instantiates it. Right-click in the Content Browser -> Add -> Crimson Plugins -> Equipment -> Equipment Definition, name it BP_Sword, and set these in Class Defaults:
| Property | Value for this Quick Start |
|---|---|
Equipment Slot Tag | Equipment.Slot.Weapon |
Instance Type | Leave as Crimson Equipment Instance. |
Granted Abilities | Leave empty - How-To: Grant Abilities from Equipment fills it in. |
Actors To Spawn | One entry: leave Actor To Spawn empty, set Static Mesh to a sword mesh, set Attach Socket to hand_r. |
Actor To Spawn empty makes the plugin spawn the shipped ACrimsonEquipmentDisplayActor and push your mesh into it - collision off, overlaps off, navigation off, purely cosmetic. Author an actor class only when the gear needs behavior of its own.Every property on a definition is EditDefaultsOnly, so this whole step happens in BP_Sword's Class Defaults panel. There is nothing to wire.
BP_Sword's Class Defaults show the weapon slot tag and one entry under Actors To Spawn whose Attach Socket reads hand_r.6. Equip it on the server
Equip Item is BlueprintAuthorityOnly. Call it from somewhere that only ever runs on the server - a GameMode, an authority-branched pawn event, or your own Server_ RPC.
In your character Blueprint: Event BeginPlay -> Has Authority (Branch, True) -> Get Component By Class (Crimson Equipment Manager Component) -> Equip Item (Equipment Definition = BP_Sword, Source Object = empty, Specific Slot Index = -1).
Specific Slot Index of -1 means pick the first free index for this slot tag. Pass 0 or 1 to force a particular index.
hand_r in both windows - each client spawns its own cosmetic copy when the instance replicates in, so a late joiner sees it too. Tick bVerboseLogging in Project Settings -> Crimson -> Crimson Equipment and LogCrimsonEquipment reports the equip and every spawned actor.Equipment.Slot.* tag set on top of this plugin (CrimsonCore - requires all Crimson plugins). Open CrimsonCore -> Inventory UI and skip to the verify steps above.