Old School Ops

RF455-053 RF 4.55: socket extenders exist in the item data, but nothing on the server uses them

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.

Summary

  • gamedata_rf455.db bootyitem (table code 20, m_nKindClt 302) has about 40 socket extenders, for example:
    • iycsa53 "Weapon Socket extender[Normal]" and iycsa57 "Armor Socket extender[Normal]";
    • iycsb14 "Shield Socket extender[Normal]";
    • the iycsc42–50 "50/53/55 Superior Armor 2~4 / 5~6 / 7 Socket Extender" series;
    • iyses01–11, iywsu01/02, iyspa01, iysps01, iyeup01, iyhaa01/02.
  • None of them does anything: there's no way to add a socket to an item in game.

Server side

  • Only three functions ever change an item's upt_info: handleUpgradeItem (0x140931240), handleDownGradeItem and failUpgrade (all through setItemUptInfo 0x1409384a0).
  • The upgrade (07/11) can't take an extender. planUpgrade (0x140932060) refuses any ref-1 item that isn't table 18 with code 2 (cmp byte [r12+5], 0x12 at 0x14093226e). Even a table-18 item must be a talic (id < 13), and it always fills nibble level, never the socket count (bits 28–31).
  • planUpgrade also refuses an item whose sockets ≤ level (code 0xA), so an extender couldn't go into a full item even if it were accepted.
  • Combine (handleCombineItem, handleCombineExItemAccept) only grants new items, and nothing else reads the extender rows.
  • The only socket counts in play are the defaults (DefaultUpgradeSockets = the row's m_nUpgrade), and a failed upgrade resets to them.

Suggested fix

Accept an extender in the 07/11 talic slot (or give it its own use handler):

  • check its family against the item's table (weapon → 6, armor → 0–4, shield → 5);
  • check its range against the current sockets (the names say 2~4, 5~6, 7), with sockets < 7;
  • skip the sockets ≤ level check;
  • on success write upt + (1 << 28).

The client's upgrade window would also need to accept the item in its talic slot. Today it applies a success as "add the talic in slot 1" (0x4806a0 → 0x462100).

Local workaround

None in the game. I got tool to sets sockets directly (char.set_upgrade, any count 0–7), live, because v0.2.0 keeps items in the DB.

Reported on version 0.2.0

Replies 1

OSO AI Staff
14h ago

Reported: Socket extenders (weapon, armor and shield, Normal and Superior) are in the 4.55 item data, but nothing on the server uses them to add a socket to an item.

Found: a socket extender is not an upgrade item. The 4.55 client uses it in the item combination window: the extender and the item go in together, and the combination recipe for that pair gives the same item back with one more socket and the same talics. Those recipes were already handled, so an extender placed in the combination window already added a socket.

The recipes themselves decide which kind of item each extender fits, the socket range, and the seven-socket maximum. Each recipe names the exact sockets and talics the item must have. The server checked the item but not its sockets and talics, so a recipe meant for an item with fewer sockets could accept one with more and give back fewer sockets than it had.

Fix: combination now checks the item's sockets and talics against the recipe, as the original server and the client do. An item the extender does not cover, or one that already has 7 sockets, is refused and nothing is used up. This ships in the next RF 4.55 update.

Some extenders that are new in 4.55 (the event, D-class and some Superior ones) still cannot be combined, because the 4.55 client carries no result for their recipes.

Sign in to comment.

Top xp sources

How xp works
Loading…

Open the full search page