> For the complete documentation index, see [llms.txt](https://dante-3.gitbook.io/dante-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dante-3.gitbook.io/dante-docs/modular-attachment-system/getting-started.md).

# Getting Started

## Requirements

| Requirement         | Minimum                         |
| ------------------- | ------------------------------- |
| Unreal Engine       | 5.7+                            |
| Engine Modules      | `GameplayTags`                  |
| Platforms (Runtime) | Win64, Mac, Linux, Android, iOS |
| Platforms (Editor)  | Win64, Mac, Linux               |

## Installation

1. Copy the `ModularAttachmentSystem/` folder into your project's `Plugins/` directory.
2. Regenerate project files (right-click `.uproject` → **Generate Visual Studio project files**).
3. Open the project — the plugin loads automatically.

{% hint style="info" %}
Verify by opening **Edit → Project Settings → Gameplay Tags**. You should see tags under `ModularAttachment.*` — these are registered automatically by the plugin's `StartupModule`.
{% endhint %}

## Quick Start — 5 Minutes to First Attachment

{% stepper %}
{% step %}

#### Create a Fragment Blueprint

1. **Content Browser** → Right-Click → **Modular Attachment System** → **Attachment Fragment Blueprint**
2. Name it `BP_Fragment_RedDotSight`
3. Open the Blueprint and set its parent to `ModularAttachmentFragment_StaticMesh`
4. In the **Details** panel:
   * `FragmentTag` → `ModularAttachment.Fragment.Mesh.Static`
   * `Mesh` → assign your static mesh asset
   * `AttachSocketName` → `OpticSocket` (must exist on your weapon skeleton)
   * `RelativeTransform` → adjust offset as needed
     {% endstep %}

{% step %}

#### Create a Definition

1. **Content Browser** → Right-Click → **Modular Attachment System** → **Attachment Definition**
2. Name it `DA_RedDotSight`
3. Open it — the custom **Attachment Definition Editor** opens with three panels:
4. In the **Details** panel, add `BP_Fragment_RedDotSight` to the `AttachmentFragments` array.

<figure><img src="https://4216330531-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYsGXprPiDJ68FN8HnOaN%2Fuploads%2FqSpgP1oO4lgG2POoEDXk%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202026-04-01%20112208.png?alt=media&amp;token=3b4884ed-b35b-4a00-ae30-4bfd659d58d3" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Add a Component to Your Actor

1. Open your weapon or character Blueprint
2. **Add Component** → `ModularAttachmentComponent`
3. Set `ComponentTag` → `ModularAttachment.Slot.Optic`
4. Set `AttachmentDefinitionAsset` → `DA_RedDotSight`
   {% endstep %}

{% step %}

#### Play

On `BeginPlay` the component automatically:

1. Streams the definition asset (Phase 1)
2. Streams all soft-referenced meshes and materials (Phase 2)
3. Applies all fragments — spawns mesh components (Phase 3)
4. Fires `OnAttachmentLoadCompleted`

No additional Blueprint logic is required.
{% endstep %}
{% endstepper %}

## Video Overview - Setup

{% embed url="<https://www.youtube.com/watch?v=5cYgqo0IUCg>" %}

## Runtime Swap

Use the **Equip Attachment** async Blueprint node to swap attachments at runtime:

```
EquipAttachment
├── Target Actor       Self (or any AActor*)
├── Definition         DA_HolographicSight
├── Slot Tag           ModularAttachment.Slot.Optic
│
├─► OnEquipped         → UModularAttachmentComponent*
└─► OnFailed           → UModularAttachmentComponent* (null definition or load error)
```

The node automatically:

1. Finds (or creates) a `UModularAttachmentComponent` with the matching `ComponentTag`
2. Calls `SwapAttachment(NewDefinition)` — unloads current, loads new
3. Fires the appropriate output pin when complete

## Next Steps

* [Core Concepts](/dante-docs/modular-attachment-system/core-concepts.md) — Fragment, Definition, Component, Subsystem, Event system
* [Gameplay Tags](/dante-docs/modular-attachment-system/gameplay-tags.md) — Slot, Fragment, Event, Value, State tags
* [Creating Fragments](/dante-docs/modular-attachment-system/creating-fragments.md) — C++ and Blueprint authoring guide
* [API Reference](/dante-docs/modular-attachment-system/api-reference.md) — Full class and method reference
