> 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/id-assets.md).

# ID Assets

## Overview

The Super Item System is held together by **ID assets**: small ScriptableObjects carrying a unique integer and a name. They exist so an item never has to reference a Transform, a component, or a character.

A sword says "I go in the Right Hand". It does not say "I go in `Human Player/Root/Hips/Spine/.../RightHand/Equip Point R-Hand`". The character resolves the ID. That indirection is what makes one prefab work everywhere.

Every ID derives from the shared Malbers `IDs` base class and auto-assigns itself a unique integer on creation.

***

## The IDs

| Asset          | Create menu                                         | Identifies                         |
| -------------- | --------------------------------------------------- | ---------------------------------- |
| `SuperItemID`  | `Malbers Animations ▸ ID ▸ Super Item ID`           | What kind of item this is.         |
| `EquipPointID` | `Malbers Animations ▸ Super Item ▸ Equip Point ID`  | Where an item is held.             |
| `HolsterID`    | `Malbers Animations ▸ ID ▸ Holster ID`              | Where an item is stored.           |
| `ItemActionID` | `Malbers Animations ▸ Super Item ▸ Item Actions ID` | Which input an Action responds to. |
| `ProjectileID` | `Malbers Animations ▸ ID ▸ Projectile`              | Which ammo type.                   |

***

## Super Item ID

The item's type. It drives three things:

1. The `Left Item Type` / `Right Item Type` Animator parameter, and therefore which arm layer plays.
2. Every Condition that asks whether a kind of item is equipped or holstered.
3. The key of both offset tables in the [Item Offsets](/animal-controller/super-item/super-item-system/super-item-manager/item-offsets.md) asset.

{% hint style="info" %}
`SuperItemID` derives from `ModeID`, not from `IDs` directly. One asset can therefore both identify the item and name a Mode — which is why the Animator parameter and the Mode share a value.
{% endhint %}

**Granularity matters.** One `Sword` ID shared by every sword means one animator layer and one set of offsets to author. A separate ID per sword means separate offsets for each, and a Condition can tell them apart. When you want both — a distinguishable item that animates like a generic one — give it its own ID and set the **Anim Type** override in the Item Offsets asset.

***

## Equip Point ID

Where an item is held, plus a **Side** field (`Right`, `Left`, `None`) that decides which Animator hand parameter the item writes, whether it counts toward dual wielding, and which hand it takes away from the rein while riding.

Provided: **Right Hand**, **Left Hand**, **Head**, **Left Forearm**.

Full details on the [Equip Points](/animal-controller/super-item/super-item-system/super-item-manager/equip-points.md) page.

***

## Holster ID

Where an item is stored — and, because it doubles as the ability index of the draw/store Mode, *which animation plays* when it is drawn.

Provided by `Reset`: **Left Holster**, **Right Holster**.

Full details on the [Holsters](/animal-controller/super-item/super-item-system/super-item-manager/holsters.md) page.

***

## Item Action ID

Connects an Action to an input through the Super Item Manager's **Actions Input** list, and names the Action for the [Block Actions](/animal-controller/super-item/super-item-system/item-processors/item-block-actions.md) processor and the `[Super Item] Is Action Playing` condition.

Provided: **Attack**, **Attack Light**, **Attack Heavy**, **Aim**, **Parry**, **Reload**, **Interact**. The Manager's `Reset` maps `Action1`–`Action4`, `Reload` and `Interact`.

{% hint style="warning" %}
Do **not** create one Action ID per weapon. The ID names *the input*, not the weapon — a sword's Attack and a rifle's Attack should share the `Attack` ID so they both fire from the same button.
{% endhint %}

***

## Projectile ID

Names an ammo type. It links the [Pouch Manager](/animal-controller/super-item/super-item-system/pouch-manager.md) entry (prefab, reserve, pool) to the [Projectile - Fire](/animal-controller/super-item/super-item-system/item-processors/projectile-fire.md) and [Projectile - Reload](/animal-controller/super-item/super-item-system/item-processors/projectile-reload.md) processors that consume it.

Provided: **Arrow**, **Arrow Fire**, **Bullet**, **Fireball**, **Grenade**.

***

## Duplicating an ID asset

{% hint style="danger" %}
Duplicating an ID asset with `Ctrl+D` copies its integer too. Two assets with the same value collide in the dictionaries the Manager builds on `Awake`, and one of them silently stops working.

After duplicating, right-click the new asset and choose **Get ID** to regenerate it.
{% endhint %}

***

## Where they live

| Assets          | Folder                                        |
| --------------- | --------------------------------------------- |
| Super Item IDs  | `Common/Scriptable Assets/IDs/Super Item ID/` |
| Equip Point IDs | `Common/Scripts/Super Item/Equip Points/`     |
| Item Action IDs | `Common/Scripts/Super Item/Item Actions/`     |
| Projectile IDs  | `Common/Scripts/Super Item/Projectile IDs/`   |
