MU Online Decoder Implementation

Job ID: 39790162

Budget: $30 – $250 USD

NestJS/TypeScript Developer Needed – MU Online Item Parser/Decoder (IGCN)
Overview

I need a senior TypeScript/NestJS developer to implement a full MU Online item decoder/formatter.
The service must parse hex from Inventory and Warehouse, join data from MSSQL (IGC_HarmonyItemData), read multiple XML configs, and return clean JSON with all real options included.

This must be 100% accurate: no fake options, no placeholders, all options must come from XML/DB.

Tech Stack

TypeScript, NestJS

MSSQL (mssql npm package)

xml2js for XML parsing

Node.js runtime

Required Features

Decode items from raw hex

Split into slots, skip empty slots.

Parse: id, optionByte, durability, serial, exeByte, ancientByte, type, refinery, harmony, sockets.

Attach XML definition (ItemList.xml) for stats and requirements.

Output JSON (per item)
Must include fields:

name, nameType, level, serialDecimal, stats, requirements, usableBy, hasSkill, hasLuck, additionalOption, excellentOptions, ancientSet, harmonyOption, item380Options, socketOptions, earringOptions, pentagramSlots, pentagramBaseOptions, errtelOptions, wingElementalOptions, width, height.

Arrays must contain only real options (no “None” / “Empty”).

Options to implement

Additional: from option byte.

Excellent: from ExcellentOptions.xml + formula evaluation.

Ancient: from Ancient/ItemSetType.xml + ItemSetOption.xml.

Harmony: from DB (IGC_HarmonyItemData) + HarmonyItem_Option.xml.

380 Options: from Item380Option.xml.

Sockets/Seeds: from SocketSystem.xml + SocketOption.xml.

Earrings: from EarringAttribute.xml.

Pentagram/Errtel: from pentagram XMLs.

Wings: include special wing elemental options.

Mastery: from mastery XMLs.

Public API methods

getCharacterInventory(characterName, serverType)

getWarehouse(userId, serverType)

Helpers for harmony, mastery, etc.

Logging & Debug

Print readable “Item Decode Debug” per item (id, bytes, serial, harmony, sockets, etc.).

Acceptance

Must reproduce exactly the expected outputs I’ll provide (e.g. Bone Blade +15 → correct stats, requirements, excellent, harmony options).

No missing options.

No fake/placeholder values.

Deliverables

ItemsService with all decoding logic.

XML loader with per-server caching.

Jest unit tests.

README with setup instructions.

Next Steps

When you apply, please show:

Past work with binary parsing or game server tools.

Experience with NestJS + MSSQL.

How you’ll ensure all options are included correctly.

I will provide:

Access to DB.

All XML config files.

Sample raw hex + expected outputs.

This trimmed version will fit inside the platform’s 10k characters limit.
Once a developer accepts, you can send them the full long spec I wrote earlier (the step-by-step breakdown).