> For the complete documentation index, see [llms.txt](https://malbersanimations.gitbook.io/animal-controller/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://malbersanimations.gitbook.io/animal-controller/super-item/super-item-system/requirements.md).

# Requirements

## Overview

The Super Item System sits on top of the Animal Controller and reuses its Modes, Stances, States, Stats and Reactions. This page lists everything that must exist before an item can be equipped, and what happens when a piece is missing.

***

## On the character

Add the **Super Item Manager** component to the character root (`Malbers ▸ Interaction ▸ Super Item Manager`). On `Reset` it looks for everything below and wires what it finds.

| Component           | Required                          | What it is used for                                                                                                                                         |
| ------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `MAnimal`           | **Yes**                           | State / Mode / Stance events, Strafe, Stance switching. The Manager subscribes to `ModeStart`, `ModeEnd`, `OnState` and `OnStance`.                         |
| `Animator`          | **Yes**                           | The `Left Item Type`, `Right Item Type` and `Mirror` parameters that drive the arm layers.                                                                  |
| An `IInputSource`   | **Yes**                           | Routing Item Action inputs and Holster inputs. Usually `MInput` or the Input System integration.                                                            |
| `PouchManager`      | Only for projectiles              | The ammo reserve and the projectile object pools.                                                                                                           |
| `ComboManager`      | Only for combos                   | Required by the **Combo** processor.                                                                                                                        |
| `IKManager`         | Only for IK                       | Drives the Action Set `IK Profile`, and holds the rig-specific `IK Set Remap`. Without it, IK profiles are ignored.                                         |
| `Aim`               | Only for aiming / ranged          | Aim direction, aim origin and the aim target that feeds the item's `Target`.                                                                                |
| `MInteractor`       | Only for pick-up                  | Focusing and picking up items in the world. Without it, items must be equipped from code.                                                                   |
| `IRider` (`MRider`) | Only for riding                   | Rein hand-off (a hand holding an item cannot hold the rein) and the `Riding` Action Set Auto Activation. Found automatically on `Awake`; nothing to assign. |
| `Stats`             | Only for character-sourced damage | Holds the character Stat a Damager processor reads when its **Stats From** is set to `From Character`.                                                      |

{% hint style="warning" %}
`Animal`, `Aim`, `Pouch` and `Combo Manager` are marked `[RequiredField]` in the Inspector — they are drawn in red when empty. Red does not always mean broken: `Aim`, `Pouch` and `Combo Manager` are only used by the processors that need them. `Animal` genuinely is mandatory.
{% endhint %}

***

## Animator parameters

The Super Item Manager writes three Animator parameters. Their names are configurable on the Manager's **General** tab, under *Animator Parameters*; the defaults match the shipped controllers.

| Parameter       | Type   | Default name      | Meaning                                                                                                                           |
| --------------- | ------ | ----------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Right Item Type | `int`  | `Right Item Type` | The `Item Type` ID of the item held on a Right-side Equip Point. `0` when the hand is empty.                                      |
| Left Item Type  | `int`  | `Left Item Type`  | Same, for Left-side Equip Points.                                                                                                 |
| Mirror          | `bool` | `Mirror`          | `true` when the item's animations should be mirrored. Set automatically when an item lands on the hand opposite to its home side. |

{% hint style="info" %}
A parameter that does not exist on the Animator Controller is silently skipped — the Manager resolves the hashes on `Awake` and stores `0` for anything it cannot find. This is intentional so the system works with third-party controllers, but it also means a typo in the parameter name fails quietly. If the arm layer never activates, check the spelling here first.
{% endhint %}

***

## Equip Points

At least one **Equip Point** must exist on the Manager, with:

* an `EquipPointID` asset (Right Hand, Left Hand, Head, Left Forearm are provided),
* a `Point` Transform — an empty GameObject parented to the bone the item attaches to.

`Reset` on the Super Item Manager creates `Equip Point R-Hand` and `Equip Point L-Hand` under the humanoid hand bones automatically.

***

## On the item

| Requirement                    | Notes                                                                                                                              |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `SuperItem` component          | `Malbers ▸ Interaction ▸ Super Item` on the item root.                                                                             |
| `Item Type` (`SuperItemID`)    | Mandatory. Drives the Animator arm layer and every Condition that asks "is a sword equipped?".                                     |
| `Equip Point` (`EquipPointID`) | Mandatory. Must exist in the Manager's Equip Points list.                                                                          |
| `Holster` (`HolsterID`)        | Needed to store the item. Without a matching holster on the Manager the item is dropped instead of stored, with a console warning. |
| `Rigidbody`                    | Added by `Reset`. Used for the dropped/world state; disabled while held.                                                           |
| Colliders                      | Auto-collected on `Awake`. Disabled while the item is held.                                                                        |
| At least one Action Set        | An item with no Action Sets logs a warning on `Awake` and does nothing.                                                            |
| `Stats` component              | Only when a processor references a `StatID` (Attack, Chamber, Charge). Several processors add it for you when created.             |
| `TriggerProxy` children        | Required by every **Damager** processor and by **Surface Hit**. Auto-collected from the item's children on `OnEnable`.             |

***

## Modes on the Animal

Drawing and storing items plays Modes on the `MAnimal`. The defaults assigned by `Reset` on the `SuperItem` are:

| Field          | Default Mode         | When it plays                                        |
| -------------- | -------------------- | ---------------------------------------------------- |
| `Equip Mode`   | `Weapon Draw`        | While the item travels from the holster to the hand. |
| `Unequip Mode` | `Weapon Store`       | While the item travels from the hand to the holster. |
| `Pick Mode`    | `PickUp` ability `1` | When the item is picked up from the world.           |
| `Drop Mode`    | `PickUp` ability `2` | When the item is dropped.                            |

The **Ability index** of the Equip / Unequip mode is the **Holster ID value**, signed by the side the item is on: positive for a Left-side equip point, negative for Right. That is how one Mode plays the correct draw animation for every holster and hand.

{% hint style="info" %}
Any of these Mode fields can be left empty. An empty `Equip Mode` (or an `Equip Duration` of `0`) equips the item instantly, with no animation — the equivalent of *Ignore Draw* on the old Weapon Manager.
{% endhint %}
