ItemDrop
Specific item drops with full control over options, separate from normal monster drops
This configuration file defines specific items that can drop from monsters with full control over their options. This is a separate system from normal monster drops (MonsterItem.txt).
File Location
GameServer/Data/Item/ItemDrop.xmlDependencies
ItemOptionRate.xml
Option indices reference rate tables here
ExcellentOptionRate.xml
Determines which excellent bits apply
Item.xml
Item definitions that can be dropped
MapManager.xml
ExcItemDropRate affects normal drops, not this system
How It Works
When a monster dies, the server:
Filters by map - RuleDrop MapNumber (-1 = all maps)
Filters by monster - MonsterIndex (-1 = any monster)
Filters by monster level - MonsterMinLevel/MonsterMaxLevel
Rolls against DropRate - Chance out of 1,000,000
Selects item - If multiple items pass, weighted random by inverse DropRate
Resolves options - Uses ItemOptionRate.xml for each option type
Drops item - Creates the item on the ground
Weighted Selection: When multiple items pass all filters, items with LOWER DropRate have HIGHER weight. This means rare items are more likely to be selected when the roll succeeds.
Structure
Attributes
RuleDrop Container
MapNumber
int/*
-1 or map ID
Map filter (-1 or * = all maps)
Item Attributes
Item Identification
Cat
int
Item category (0-15)
Index
int
Item index within category (0-511)
Level
int
Item level (0-15), used when LevelOption=-1
Item Index Calculation: Internal index = Cat 512 + Index. For example, Jewel of Bless (Cat=14, Index=13) = 14 512 + 13 = 7181.
Option Indices
These reference sections in ItemOptionRate.xml. Use -1 to disable that option type.
LevelOption
int
Level rate table index (-1 = use Level directly)
SkillOption
int
Skill option rate table index
LuckOption
int
Luck option rate table index
JoLOption
int
JoL (additional damage/defense) rate table index
ExcOption
int
Excellent options count rate table index
SetOption
int
Set tier rate table index
SocketOption
int
Socket count rate table index
Common Option Index Values
-1
Disabled - no option or use default value
0
Common rates (from Index 0 in ItemOptionRate)
1
Excellent rates (typically guaranteed/high quality)
2
Set rates
12-15
Guaranteed 1-4 excellent options (for ExcOption)
Skill Option Note: If SkillOption resolves to "has skill" but the item doesn't support skills (SkillIndex=0 in Item.xml), the skill option is automatically removed.
Drop Filters
Duration
int
0
Item duration in seconds (0 = permanent)
MonsterIndex
int/*
-1
Monster class ID (-1 or * = any monster)
MonsterMinLevel
int/*
-1
Minimum monster level (-1 or * = no minimum)
MonsterMaxLevel
int/*
-1
Maximum monster level (-1 or * = no maximum)
DropRate
int/*
Required
Chance out of 1,000,000 (-1 or * = 100% when checked)
DropRate Scale
1000000
100%
Testing / guaranteed drops
100000
10%
Very common drops
10000
1%
Common drops
1000
0.1%
Uncommon drops
100
0.01%
Rare drops
10
0.001%
Very rare drops
Crywolf Penalty: Jewel of Chaos, Bless, Soul, Life, Creation, and Guardian are affected by Crywolf occupation state. If Crywolf is occupied by Balgass and penalty is active, these jewels have reduced drop chance.
Examples
All option indices are -1 because jewels don't have options.
Different item levels drop based on monster level ranges.
Using MonsterIndex to restrict drops to a specific monster.
LevelOption=1: Uses excellent level rates (guaranteed +0)
SkillOption=1: Guaranteed skill
LuckOption=1: Low luck chance (1% for luck)
JoLOption=1: No JoL bonus (guaranteed 0)
ExcOption=1: 75% one exc, 25% two exc
Using RuleDrop MapNumber to restrict drops to specific maps.
Important Behavior
Separate from MonsterItem.txt: This system runs independently from the normal monster drop system. Items configured here are additional drop chances, not replacements.
Multiple Items Passing: If multiple items pass all filters and their DropRate rolls, ONE is randomly selected. Items with lower DropRate have higher selection weight (inverse weighting).
Option Index -1 vs 0: Using -1 disables that option type entirely. Using 0 uses the "Common" rate table from ItemOptionRate.xml, which typically has low chances for good options.
Common Issues
Item Not Dropping: Check all filters - MapNumber, MonsterIndex, MonsterMinLevel, MonsterMaxLevel must ALL match. A single mismatch prevents the drop.
Wrong Item Level: If you set Level="5" but LevelOption="0", the level will be randomized using Common rates (mostly +0). Use LevelOption="-1" to use the Level value directly.
Duration Confusion: Duration is in SECONDS, not minutes. A value of 3600 = 1 hour. Use 0 for permanent items.
Excellent Options Not Appearing: ExcOption controls the COUNT of options. The actual option types are determined by ExcellentOptionRate.xml based on item index ranges.
Last updated