ItemMove Configuration
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 | Item definitions by Index |
See also: ItemValue.xml for pricing, ItemOption.xml for stat effects of rolled options.
How It Works#
- 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.
- 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. - If no entry matches, ALL actions are allowed (default).
- Only add items here to RESTRICT certain actions.
Structure#
<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#
<!-- 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.
<!-- 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.
<!-- 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.
<!-- 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.
Common Restriction Patterns#
Prevent Accidental Loss#
<!-- High-value items: prevent dropping -->
AllowDrop="0" AllowSell="1" AllowTrade="1" AllowVault="1" AllowStore="1" AllowGuildVault="1"
Account Bound#
<!-- Character-bound: prevent trading, sell, store, guild vault -->
AllowDrop="1" AllowSell="0" AllowTrade="0" AllowVault="1" AllowStore="0" AllowGuildVault="0"
Event Item#
<!-- Event item: block every out-of-character movement -->
AllowDrop="0" AllowSell="0" AllowTrade="0" AllowVault="0" AllowStore="0" AllowGuildVault="0"
Vendor Only#
<!-- Player can sell and vault the item, nothing else -->
AllowDrop="0" AllowSell="1" AllowTrade="0" AllowVault="1" AllowStore="0" AllowGuildVault="0"
Important Behavior#
Common Issues#
- Restriction not working - verify the
Indexmatches the exact item, check for attribute-name typos, confirmLevelmatches the item's +level (or use*) - Action still allowed - omitted attributes default to
1. Explicitly setAllowX="0"for each restriction you want