> For the complete documentation index, see [llms.txt](https://axiomemu.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axiomemu.gitbook.io/docs/data/item/itemmove.md).

# ItemMove

This configuration file defines movement restrictions for items, controlling what actions players can perform with specific items.

## File Location

```
Data/Item/ItemMove.xml
```

## Dependencies

| Depends On                          | Purpose                   |
| ----------------------------------- | ------------------------- |
| [Item.xml](/docs/data/item/item.md) | Item definitions by Index |

See also: [ItemValue.xml](/docs/data/item/itemvalue.md) for pricing, [ItemOption.xml](/docs/data/item/itemoption.md) for stat effects of rolled options.

## How It Works

1. When a player attempts an action (drop, sell, trade, personal store, vault, guild vault), the server calls an ItemMove check for that item and level.
2. The server looks up the entry by the composite key `(Index, Level)`. If the player's item +level has a specific-level entry, that entry is used. Otherwise the wildcard entry (`Level="*"`) for that Index is used, if present.
3. If no entry matches, ALL actions are allowed (default).
4. Only add items here to RESTRICT certain actions.

## Structure

```xml
<Item Index="7181" AllowDrop="0" AllowSell="1" AllowTrade="1"
      AllowVault="1" AllowStore="1" AllowGuildVault="1"
      Name="Jewel of Bless"/>
```

## Attributes

| Attribute         | Type   | Default | Description                                                                                               |
| ----------------- | ------ | ------- | --------------------------------------------------------------------------------------------------------- |
| `Index`           | int    | -       | Item index (Category \* 512 + Type)                                                                       |
| `Level`           | string | `*`     | Item +level to match. `*` = any level, or `0-15` for a specific level. Forms a composite key with `Index` |
| `AllowDrop`       | int    | 1       | 1 = can drop on ground, 0 = cannot drop                                                                   |
| `AllowSell`       | int    | 1       | 1 = can sell to NPC, 0 = cannot sell                                                                      |
| `AllowTrade`      | int    | 1       | 1 = can trade with players, 0 = cannot trade                                                              |
| `AllowVault`      | int    | 1       | 1 = can store in personal vault, 0 = cannot                                                               |
| `AllowStore`      | int    | 1       | 1 = can place in personal store, 0 = cannot                                                               |
| `AllowGuildVault` | int    | 1       | 1 = can store in guild vault, 0 = cannot                                                                  |
| `Name`            | string | -       | Item name (optional, for reference)                                                                       |

All six `Allow*` flags are enforced by the server.

## Examples

{% tabs %}
{% tab title="Prevent Dropping" %}

```xml
<!-- Jewels cannot be dropped (prevent accidental loss) -->
<Item Index="7181" AllowDrop="0" AllowSell="1" AllowTrade="1"
      AllowVault="1" AllowStore="1" AllowGuildVault="1"
      Name="Jewel of Bless"/>
<Item Index="7182" AllowDrop="0" AllowSell="1" AllowTrade="1"
      AllowVault="1" AllowStore="1" AllowGuildVault="1"
      Name="Jewel of Soul"/>
```

Players can trade/sell/store, but cannot drop on ground.
{% endtab %}

{% tab title="Prevent Trading" %}

```xml
<!-- Wizard's Ring cannot be traded or vaulted -->
<Item Index="6676" AllowDrop="1" AllowSell="1" AllowTrade="0"
      AllowVault="0" AllowStore="1" AllowGuildVault="1"
      Name="Wizards Ring"/>

<!-- Moonstone Pendant cannot be traded -->
<Item Index="6694" AllowDrop="1" AllowSell="1" AllowTrade="0"
      AllowVault="1" AllowStore="1" AllowGuildVault="1"
      Name="Moonstone Pendant"/>
```

Bind-on-pickup style restrictions.
{% endtab %}

{% tab title="Event Item" %}

```xml
<!-- Event item - cannot trade or vault -->
<Item Index="7232" AllowDrop="1" AllowSell="0" AllowTrade="0"
      AllowVault="0" AllowStore="1" AllowGuildVault="1"
      Name="Cursed Castle Water"/>
```

Event items often have strict restrictions to prevent exploitation.
{% endtab %}

{% tab title="Fully Restricted" %}

```xml
<!-- Archangel Weapon - very restricted -->
<Item Index="6675" AllowDrop="1" AllowSell="0" AllowTrade="0"
      AllowVault="0" AllowStore="1" AllowGuildVault="1"
      Name="Absolute Weapon of Archangel"/>
```

Cannot sell, trade, or vault - only can drop or store.
{% endtab %}
{% endtabs %}

## Common Restriction Patterns

### Prevent Accidental Loss

```xml
<!-- High-value items: prevent dropping -->
AllowDrop="0" AllowSell="1" AllowTrade="1" AllowVault="1" AllowStore="1" AllowGuildVault="1"
```

### Account Bound

```xml
<!-- Character-bound: prevent trading, sell, store, guild vault -->
AllowDrop="1" AllowSell="0" AllowTrade="0" AllowVault="1" AllowStore="0" AllowGuildVault="0"
```

### Event Item

```xml
<!-- Event item: block every out-of-character movement -->
AllowDrop="0" AllowSell="0" AllowTrade="0" AllowVault="0" AllowStore="0" AllowGuildVault="0"
```

### Vendor Only

```xml
<!-- Player can sell and vault the item, nothing else -->
AllowDrop="0" AllowSell="1" AllowTrade="0" AllowVault="1" AllowStore="0" AllowGuildVault="0"
```

## Important Behavior

{% hint style="info" %}
**Default Allowed**: Items NOT in this file have ALL actions allowed. Only add items to this file to RESTRICT actions.
{% endhint %}

{% hint style="info" %}
**Index Required**: Each entry must have a valid Index matching an item in Item.xml.
{% endhint %}

{% hint style="warning" %}
**No Default Values**: If you omit an attribute, it defaults to 1 (allowed). Be explicit about restrictions.
{% endhint %}

{% hint style="warning" %}
**Per-Item Not Per-Category**: Each item Index must be listed separately. There is no category-level wildcard. Wildcards are supported only on the `Level` attribute: use `Level="*"` to apply the restriction to any +level of that Index. Specific-level entries take priority over the wildcard entry.
{% endhint %}

## Common Issues

* **Restriction not working** - verify the `Index` matches the exact item, check for attribute-name typos, confirm `Level` matches the item's +level (or use `*`)
* **Action still allowed** - omitted attributes default to `1`. Explicitly set `AllowX="0"` for each restriction you want

{% hint style="warning" %}
**Action Still Allowed**: Remember omitted attributes default to 1. Explicitly set AllowX="0" for each restriction.
{% endhint %}

{% hint style="danger" %}
**Wrong Index**: Double-check Index = Category \* 512 + Type. A wrong index means the restriction applies to the wrong item (or no item).
{% endhint %}
