//===== Hercules Documentation =============================== //= Item Database //===== By: ================================================== //= Hercules Dev Team //===== Current Version: ===================================== //= 20120904 //===== Description: ========================================= //= Explanation of the item_db.conf file and structure. //============================================================ item_db: ( { // =================== Mandatory fields =============================== Id: ID (int) AegisName: "Aegis_Name" (string, optional if Inherit: true) Name: "Item Name" (string, optional if Inherit: true) // =================== Optional fields ================================ Type: Item Type (int, defaults to 3 = etc item) Buy: Buy Price (int, defaults to Sell * 2) Sell: Sell Price (int, defaults to Buy / 2) Weight: Item Weight (int, defaults to 0, units in Weight/10 ) Atk: Attack (int, defaults to 0) Matk: Magical Attack (int, defaults to 0, ignored in pre-re) Def: Defense (int, defaults to 0) Range: Attack Range (int, defaults to 0) Slots: Slots (int, defaults to 0) Job: { (defaults to all job) All: true/false (boolean, defaults to false) Novice: true/false (boolean, defaults to false) Swordsman: true/false (boolean, defaults to false) Magician: true/false (boolean, defaults to false) Archer: true/false (boolean, defaults to false) Acolyte: true/false (boolean, defaults to false) Merchant: true/false (boolean, defaults to false) Thief: true/false (boolean, defaults to false) Knight: true/false (boolean, defaults to false) Priest: true/false (boolean, defaults to false) Wizard: true/false (boolean, defaults to false) Blacksmith: true/false (boolean, defaults to false) Hunter: true/false (boolean, defaults to false) Assassin: true/false (boolean, defaults to false) Crusader: true/false (boolean, defaults to false) Monk: true/false (boolean, defaults to false) Sage: true/false (boolean, defaults to false) Rogue: true/false (boolean, defaults to false) Alchemist: true/false (boolean, defaults to false) Bard: true/false (boolean, defaults to false) Gunslinger: true/false (boolean, defaults to false) Ninja: true/false (boolean, defaults to false) Taekwon: true/false (boolean, defaults to false) Star_Gladiator: true/false (boolean, defaults to false) Soul_Linker: true/false (boolean, defaults to false) Gangsi: true/false (boolean, defaults to false) Death_Knight: true/false (boolean, defaults to false) Dark_Collector: true/false (boolean, defaults to false) Kagerou: true/false (boolean, defaults to false) Rebellion: true/false (boolean, defaults to false) Summoner: true/false (boolean, defaults to false) } Job: Job mask (alternate synxtax, int, defaults to all jobs = 0xFFFFFFFF) Upper: Upper mask (bitmask array, string or int, defaults to "ITEMUPPER_ALL") Gender: Gender (string, defaults to "SEX_ANY") Loc: Equip location (bitmask array, string or int, required value for equipment) WeaponLv: Weapon Level (int, defaults to 0) EquipLv: Equip required level (int, defaults to 0) EquipLv: [min, max] (alternative syntax with min / max level) Refine: Refineable (boolean, defaults to true) Subtype: Item Subtype (int, defaults to 0) ViewSprite: Sprite view ID (int, defaults to 0) BindOnEquip: true/false (boolean, defaults to false) ForceSerial: true/false (boolean, defaults to false) BuyingStore: true/false (boolean, defaults to false) Delay: Delay to use item (int, defaults to 0) KeepAfterUse: true/false (boolean, defaults to false) DropAnnounce: true/false (boolean, defaults to false) ShowDropEffect: true/false (boolean, defaults to false) DropEffectMode: Effect Type (int, default to 0) Trade: { (defaults to no restrictions) override: GroupID (int, defaults to 100) nodrop: true/false (boolean, defaults to false) notrade: true/false (boolean, defaults to false) nostorage: true/false (boolean, defaults to false) nocart: true/false (boolean, defaults to false) noselltonpc: true/false (boolean, defaults to false) nomail: true/false (boolean, defaults to false) noauction: true/false (boolean, defaults to false) nogstorage: true/false (boolean, defaults to false) partneroverride: true/false (boolean, defaults to false) } Nouse: { (defaults to no restrictions) override: GroupID (int, defaults to 100) sitting: true/false (boolean, defaults to false) } Stack: [amount, flag] (int, defaults to 0) Sprite: SpriteID (int, defaults to 0) Script: <" Script (it can be multi-line) "> OnEquipScript: <" OnEquip Script (can also be multi-line) "> OnUnequipScript: <" OnUnequip Script (can also be multi-line) "> // =================== Optional fields (item_db2 only) ================ Inherit: true/false (boolean, if true, inherit the values that weren't specified, from item_db.conf, else override it and use default values) }, ... ) Id: Item id AegisName: Server name to reference the item in scripts and lookups. Allowed characters: [A-Za-z0-9_] Name: Name in English for displaying as output for @ and script commands. Type: 0 Healing item. 2 Usable item. 3 Etc item 4 Weapon 5 Armor/Garment/Boots/Headgear 6 Card 7 Pet egg 8 Pet equipment 10 Ammo (Arrows/Bullets/etc) 11 Usable with delayed consumption (item is lost from inventory after selecting a target, for use with skills and pet lures) 18 Another delayed consume that requires user confirmation before using item. Buy: Default buying price. When not specified, becomes double the sell price. Sell: Default selling price. When not specified, becomes half the buy price. Weight: Item's weight. Each 10 is 1 weight. When not specified, becomes 0. Atk: Weapon's attack. When not specified, becomes 0. Matk: Weapon's magical attack (only used in renewal mode, ignored in pre-renewal). When not specified, becomes 0. Def: Armor's defense. When not specified, becomes 0. Range: Weapon's attack range. When not specified, becomes 0. Slots: Amount of slots the item possesses. When not specified, becomes 0. Job: Job restrictions. If this block is omitted, item can be equipped by all class All the settings in this group are boolean values, Default value is false (restriction not set) for any missing setting. Alternate Format: Equippable jobs. Uses the following bitmask table: (S.) Novice (2^00): 0x00000001 Swordman (2^01): 0x00000002 Magician (2^02): 0x00000004 Archer (2^03): 0x00000008 Acolyte (2^04): 0x00000010 Merchant (2^05): 0x00000020 Thief (2^06): 0x00000040 Knight (2^07): 0x00000080 Priest (2^08): 0x00000100 Wizard (2^09): 0x00000200 Blacksmith (2^10): 0x00000400 Hunter (2^11): 0x00000800 Assassin (2^12): 0x00001000 Unused (2^13): 0x00002000 Crusader (2^14): 0x00004000 Monk (2^15): 0x00008000 Sage (2^16): 0x00010000 Rogue (2^17): 0x00020000 Alchemist (2^18): 0x00040000 Bard/Dancer (2^19): 0x00080000 Unused (2^20): 0x00100000 Taekwon (2^21): 0x00200000 Star Gladiator (2^22): 0x00400000 Soul Linker (2^23): 0x00800000 Gunslinger (2^24): 0x01000000 Ninja (2^25): 0x02000000 Gangsi (2^26): 0x04000000 Death Knight (2^27): 0x08000000 Dark Collector (2^28): 0x10000000 Kagerou/Oboro (2^29): 0x20000000 Rebellion (2^30): 0x40000000 Summoner (2^31): 0x80000000 Some other commonly used values: All except novice: 0xFFFFFFFE All (default value): 0xFFFFFFFF Upper: Equippable upper-types. Uses the following bitmasks: Normal jobs: ITEMUPPER_NORMAL (0x01) Upper jobs: ITEMUPPER_UPPER (0x02) Baby jobs: ITEMUPPER_BABY (0x04) Third jobs: ITEMUPPER_THIRD (0x08) Upper Third jobs: ITEMUPPER_THIRDUPPER (0x10) Baby Third jobs: ITEMUPPER_THIRDBABY (0x20) Under pre-re mode third classes are considered upper, making use of the ITEMUPPER_THIRD and above masks is therefore not necessary unless in renewal mode. When no value is specified, all classes (mask ITEMUPPER_ALL = 0x3f) are able to equip the item. Gender: Gender restriction. Available genders: SEX_FEMALE: 0 SEX_MALE: 1 SEX_ANY: 2 When not specified, becomes "SEX_ANY". Loc: Equipment's placement. A value needs to be specified if the item is an equipment piece. Values are (bitmask arrays are supported): Lower Headgear: EQP_HEAD_LOW (2^00 = 0x000001) Weapon: EQP_HAND_R or EQP_WEAPON (2^01 = 0x000002) Garment: EQP_GARMENT (2^02 = 0x000004) Accessory 1: EQP_ACC_L (2^03 = 0x000008) Armor: EQP_ARMOR (2^04 = 0x000010) Shield: EQP_HAND_L or EQP_SHIELD (2^05 = 0x000020) (Both Hands): EQP_ARMS (EQP_HAND_L | EQP_HAND_R = 0x000022) Footgear: EQP_SHOES (2^06 = 0x000040) Accessory 2: EQP_ACC_R (2^07 = 0x000080) (Both Accessories): EQP_ACC (EQP_ACC_R | EQP_ACC_L = 0x000088) Upper Headgear: EQP_HEAD_TOP (2^08 = 0x000100) Middle Headgear: EQP_HEAD_MID (2^09 = 0x000200) (T+M+B Headgear): EQP_HELM (EQP_HEAD_LOW | EQP_HEAD_MID | EQP_HEAD_TOP = 0x000301) Costume Top Headgear: EQP_COSTUME_HEAD_TOP (2^10 = 0x000400) Costume Mid Headgear: EQP_COSTUME_HEAD_MID (2^11 = 0x000800) Costume Low Headgear: EQP_COSTUME_HEAD_LOW (2^12 = 0x001000) Costume Garment/Robe: EQP_COSTUME_GARMENT (2^13 = 0x002000) Ammunition: EQP_AMMO (2^15 = 0x008000) Shadow Armor: EQP_SHADOW_ARMOR (2^16 = 0x010000) Shadow Weapon: EQP_SHADOW_WEAPON (2^17 = 0x020000) Shadow Shield: EQP_SHADOW_SHIELD (2^18 = 0x040000) (Shadow 2H Weapon): EQP_SHADOW_ARMS (EQP_SHADOW_WEAPON | EQP_SHADOW_SHIELD = 0x060000) Shadow Shoes: EQP_SHADOW_SHOES (2^19 = 0x080000) Shadow Accessory 2: EQP_SHADOW_ACC_R (2^20 = 0x100000) Shadow Accessory 1: EQP_SHADOW_ACC_L (2^21 = 0x200000) (Shadow Accessories): EQP_SHADOW_ACC (EQP_SHADOW_ACC_R | EQP_SHADOW_ACC_L = 0x300000) WeaponLv: Weapon level. Becomes 0 when not specified. EquipLv: Base level required to be able to equip. It is possible to specify two values, if an item has a maximum level, by using the following syntax: EquipLv: [minLv, maxLv] If only one value is specified, maxLv becomes the current server's MAX_LEVEL. If no values are specified, minLv becomes 0. Refineable: true if the item can be refined, false otherwise. If no value is specified, it defaults to true. ViewSprite: Defines a replacement view-sprite for the item (eg: Making apples look like apple juice). Subtype: For weapons and ammo, indicates the weapon-class of the item. For weapons, the types are: W_FIST 0: Bare fist W_DAGGER 1: Daggers W_1HSWORD 2: One-handed swords W_2HSWORD 3: Two-handed swords W_1HSPEAR 4: One-handed spears W_2HSPEAR 5: Two-handed spears W_1HAXE 6: One-handed axes W_2HAXE 7: Two-handed axes W_MACE 8: Maces W_2HMACE 9: Unused W_STAFF 10: Staves W_BOW 11: Bows W_KNUCKLE 12: Knuckles W_MUSICAL 13: Musical instruments W_WHIP 14: Whips W_BOOK 15: Books W_KATAR 16: Katars W_REVOLVER 17: Reveolvers W_RIFLE 18: Rifles W_GATLING 19: Gatling guns W_SHOTGUN 20: Shotguns W_GRENADE 21: Grenade launchers W_HUUMA 22: Fuuma shurikens W_2HSTAFF 23: Two-handed staves For ammo, the types are: A_ARROW 1: Arrows A_DAGGER 2: Throwable daggers A_BULLET 3: Bullets A_SHELL 4: Shells A_GRENADE 5: Grenades A_SHURIKEN 6: Shuriken A_KUNAI 7: Kunai A_CANNONBALL 8: Cannon balls A_THROWWEAPON 9: Throwable items (Sling Item) BindOnEquip: Whether the item will automatically bind to the character when it is equipped for the first time. An item that has this field set, will display a confirmation dialog the first time it is equipped, and, if accepted, the item will become character-bound. ForceSerial: Whether the item will be given new unique id or not. When the item have this field as true, the item will be unstackable and new uniqueID will be given to each item. BuyingStore: Whether the item can be sold via buyingstore, one must also edit data\buyingstoreitemlist.txt for client to accept item. DropAnnounce: Enables global announcement of the selected item when dropped by monster. Delay: Delay for an item to be used again. Value is in milliseconds. There is a max concurrent number of entries modifiable in src/map/itemdb.h as MAX_ITEMDELAYS. Trade: Item trade restrictions. If this block is omitted, the item will have no trade restrictions. All the settings in this group are boolean values, unless otherwise specified. Default value is false (restriction not set) for any missing setting. Allowed settings in this block are: override: If specified and in the interval [1:100], sets the minimum GM Group ID that can bypass the defined trade restrictions. This is an integer value. nodrop: Item can't be dropped. notrade: Item can't be traded (nor vended). partneroverride: Wedded partners can override the notrade setting. noselltonpc: Item can't be sold to NPCs. nocart: Item can't be placed in the cart. nostorage: Item can't be placed in the storage. nogstorage: Item can't be placed in the guild storage. nomail: Item can't be attached to mail messages. noauction: Item can't be auctioned. Nouse: Defines if an item cannot be used under certain circumstances. If this block is omitted, there will be no usage restrictions. All the settings in this group are boolean values, unless otherwise specified. Default value is false (restriction not set) for any missing setting. Allowed settings in this block are: override: If specified and in the interval [1:100], sets the minimum GM Group ID that can bypass the defined usage restrictions. This is an integer value. sitting: Item can't be used while sitting. Stack: Prevents an item to be stacked more than x times in given inventory types. Generally used by 3rd class related skill items. Syntax: [amount, type] Available types: 1: Character inventory restriction 2: Character cart restriction 4: Account storage restriction 8: Guild storage restriction Note: Stack limit of 0 will disable a restriction. Sprite: SpriteID will be sent to the client instead of ItemID. NOTE: Replaces an item client-side while keeping them separate server-side. Think of it as a way to disguise items. Script: Script to execute when the item is used/equipped. OnEquipScript: Script to execute when the item is equipped. Warning, not all item bonuses will work here as expected. OnUnequipScript: Script to execute when the item is unequipped. Warning, not all item bonuses will work here as expected. Inherit: This can be used only in item_db2.conf, and if set to true, and the item already exists in item_db.conf, all the missing fields will be inherited from there rather than using their default values. ShowDropEffect: Allow showing an effect when the item dropped by a monster. [ZERO client or PACKETVER >= 20180418] DropEffectMode: Set attribute for ShowDropEffect. [ZERO client or PACKETVER >= 20180418] 0 - Client Based (itemInfo EffectID) 1 - White effect 2 - Blue effect 3 - Yellow effect 4 - Purple effect 5 - Orange effect