Old School Ops

RF455-056 RF 4.55: stacking EXP jades gives a different bonus depending on hidden bag order (bug or intended?)

Game server RF Online: Dragonborn v0.2.0 low · filed by cybercyber
Fixed

Game: RF 4.55 (Dragonborn), server v0.2.0, Windows build (stock gameserver.exe). Client: the supported Taiwan build, RF_Online.bin SHA-256 46528aac…2bbc558 (2025-07-16), Language=Taiwan.

Question

When you hold several jades that share one effect code (for example Abundance and EXP 100% Increase, both EXP code 2), the bonus you get depends on the order the server walks the bag in. That order is the hidden database slot, not the cell the player sees. Is that intended, or should the result be the same whatever the order?

Repro (two EXP jades)

  • Abundance Jade (ircsa05…): fEffUnit 0.4, fEffUnitMax 2.0.
  • EXP 100% Increase Jade [7-days] (irqsa09): fEffUnit 1.0, fEffUnitMax 1.0.
Order in character_items.slotFoldEXP bonus
2 × Abundance first, then EXP 100%0 → 0.8, then min(0.8 + 1.0, 1.0)+100%
EXP 100% first, then 2 × Abundance0 → 1.0, then min(1.0 + 0.8, 2.0)+180%

Same items, same bag, different bonus. Holding the EXP 100% jade can even lower the bonus: 2 Abundance alone give +80%, and adding the jade in a later slot gives +100% instead of +180%.

Server side (v0.2.0)

  • (*Server).foldHaveEffects (0x1408523a0), inner loop at 0x1408528a3, keeps one running total per code for the whole bag. For each slot it does: if total < itemMax: total = min(total + fEffUnit × count, itemMax). The cap is the fEffUnitMax of the item in that slot, so an item with a lower max clamps what earlier items already added.
  • The bag comes from character.(*Repository).Items (0x14061bb40), ... FROM character_items WHERE character_serial = ? ORDER BY location, slot.
  • slot is invisible to the player:
    • moving an item in the bag (0D/10, handleAlterItemSlot) only rewrites client_index / client_slot;
    • a new item takes the lowest free slot (grantNewItem 0x140938720). So the result depends on when each jade was acquired, and rearranging the bag doesn't change it.

Possible fixes (if it's a bug)

Either of these makes the result order-independent:

  1. Per-item cap, then add: each item contributes min(fEffUnit × count, fEffUnitMax), and the totals for one code add up. Here that is 0.8 + 1.0 = +180% either way.
  2. One cap per code: add everything, then clamp once to the highest fEffUnitMax among the items held for that code. Here that is min(1.8, 2.0) = +180% either way.

Either way, stack count vs. separate slots stays as today: a stack of 5 counts the same as 5 single slots.

Notes

  • Read statically from gameserver.exe v0.2.0 and checked against a live gommo_rf455.db, where 9 of one character's 19 bag rows have slot ≠ client_slot. The EXP difference itself hasn't been measured in game.
  • The same clamp applies to every held-effect code, not just EXP (drop rate, PT, equip level, …). It only shows when two different items share a code and have different maxima.
Reported on version 0.2.0

Replies 1

OSO AI Staff
13h ago

Reported: Holding several jades that share one effect (for example Abundance Jades and the EXP 100% Increase Jade, both EXP bonus) gives a different total depending on a hidden bag order: with two Abundance Jades counted first, adding the EXP 100% jade gives +100% instead of +180%, and two Abundance Jades alone give +80%.

Found: Confirmed as described. The server added held-item bonuses one item at a time and, after each item, capped the running total at that item's own maximum, so whichever jade was counted last decided the cap. The order counted is the order items sit in the bag on the server, which the player cannot see or change. The capping rule copies the original RF server, but a result that depends on a hidden order is treated as a defect.

The same check also skipped every held item with a negative effect, so the Fear Jade and similar items never applied at all.

Fix: held bonuses of the same kind now add up first, and the total is capped once, at the highest limit among the items held for it. Two Abundance Jades plus the EXP 100% jade give +180% in either order, stacks count the same as separate items, and negative effects apply, capped the same way. This ships in the next RF 4.55 update.

Also affected: every held-item bonus where two different items share an effect, and the same rule in the Golden Age, Age of Patron and RF Online 1.5 servers, which get the same change.

Sign in to comment.

Top xp sources

How xp works
Loading…

Open the full search page