Reference!
The reward (drop) system in Lineage 2 isn't a one-time randomization, but a cascade of rolls across groups with modifiers. We'll explore how rates, multi-drops, spoils, and adena work, and where the level penalty is hidden.
Lineage 2 Reward System (Drops): Introduction
Why does one mob drop "either A or B," why is adena always higher in premium, and "rates x10" feel like x6? The secret is that in Lineage 2, drops aren't a single dice roll, but a chain of decisions: the server rolls reward groups, within which are specific items, and then applies modifiers (rates, vitality, premium, runes, level penalty, raid boss flag, etc.) on top of everything else. The end result is a "multi-drop" with a high rate, adena saturation, while spoil and regular loot follow adjacent but distinct rules.
In this series, we'll break down the reward system without myths or guesses: how RewardGroups work, how the final rate is calculated, what a split roll is (2 full rolls + 0.7 random roll), why Adena behaves "specially," where exactly the level penalty is applied, and how it all impacts farming. We'll include formulas, examples, and illustrative case studies of "why I didn't get a reward"—and what to do about it.

Lineage 2 Reward System (Drops): Mechanics
When a mob dies, the server does two things:
- distributes exp/sp for damage
- then for each type of reward (regular loot, adena, spoil) it starts a roll:
RewardList.roll(player, mod, isRaid).
Then everything is decided drop groups. Inside the mob, loot is divided into groups. (RewardGroup).
Each group has:
- chance of it working (from a scale of 1,000,000, this is like percentages x10,000),
- list of items with their chances within a group.
Algorithm:
- We throw a group: if we hit it, we spin one item from the list of this group.
- If the overall rates are high, the group can be dropped several times (we'll talk about "multidrop" separately).
Reference!
This is exactly the system that allows one mob to drop either A or B, but not both at once.
Where do “rates” come from?
Before throwing, the server calculates the final rate multiplier (for regular items):
rate = (Config.RATE_DROP_ITEMS + бонус rune/premium игрока)
× персональный множитель игрока
× mod
Where:
- onfig.RATE_DROP_ITEMS — your base server rates,
- player.getVitalityBonus() - bonus from vitalka,
- player.getRateItems() — pers. multiplier (premium/buffs),
- against — the most interesting thing: this is where the penalty for the level difference and other modifiers comes in.
If rate = 2.7, the server makes 2 full group rolls + one more with a probability of 0.7. This is a neat "multidrop".
Adena uses a separate saturation logic to avoid spamming hundreds of throws: with very large mods, the chance is “squeezed” up to 100%, and the amount is scaled.
So, the reward (drop) system in Lineage 2 is a system of "layers": reward groups, an internal item roulette, and the final rate modifier, which includes server rates, vitality, premium/runes, and level penalties. This is where the "multidrop" comes from, as well as the special behavior of adena and the "dropped A instead of B" situations. In the following sections, we'll examine the formulas in more detail using examples and look at where exactly the penalties are applied in the code, so we can understand how to optimize farming for different chronicles and spots.
Want more analysis like this with formulas and case studies? Check out our section. L2 game mechanics — it contains all the materials on chances, rate modifiers, spoils, drop tables, and more.
You can support the project by subscribing to our Telegram channel.