# DA_EquipmentConfig — Data Asset

> **⚡ C++ Status: Stub** — `Source/PG_Framework/Public/Inventory/DA_EquipmentConfig.h` provides `FDamageTypeResistance` struct (DamageType GameplayTag + Resistance float), `Durability`, `Weight`, and `GetResistance()` query. **Create Data Asset instances** (Right-click → Miscellaneous → Data Asset → `DA_EquipmentConfig`), one per equipment piece. Fill in damage resistances per type. See `docs/developer/cpp-integration-guide.md`.
>
> ---

**Parent Class:** `UDataAsset`
**Dependencies:** [`BPC_EquipmentSlotSystem`](../04-inventory/BPC_EquipmentSlotSystem.md)
**Purpose:** Defines equipment slot configurations — which item categories map to which slots, socket names, and auto-equip rules.

---

## Variables / Structure

| Field | Type | Description |
|-------|------|-------------|
| `Slot` | `E_EquipmentSlot` | Equipment slot identifier |
| `SocketName` | `FName` | Character skeletal mesh socket |
| `AllowedCategories` | `TArray<E_ItemCategory>` | Categories allowed in this slot |
| `bAutoEquipOnPickup` | `bool` | Auto-equip matching items on pickup |
| `bMustBeEmptyToEquip` | `bool` | Slot must be empty before equipping |
| `VisualAttachmentClass` | `TSubclassOf<AActor>` | Visual attachment actor class |

---

## Gameplay Tags
- Namespace: `Equipment.Slot.<Name>` (e.g., `Equipment.Slot.Head`, `Equipment.Slot.Torso`)

---

## Validation Rules
- `Slot` must be unique
- `SocketName` must not be empty if visual attachment is used

---

## Example Data

| Field | Value |
|-------|-------|
| Slot | Head |
| SocketName | `head_socket` |
| AllowedCategories | `[Equipment]` |
| bAutoEquipOnPickup | true |

---

## Consumed By
- [`BPC_EquipmentSlotSystem`](../04-inventory/BPC_EquipmentSlotSystem.md)

## Reuse Notes
- Equipment configs are data-driven; new slots added without code changes