MuHelperPickup

Defines item lists for the five MuHelper pickup categories. The server transmits these category definitions to clients on connect, and the client uses them to control automatic item pickup behavior.

File Location#

Data/Plugins/World/MuHelperPickup.xml

System Architecture#

How MuHelper Pickup Works#

MuHelper has five pickup categories. Based on the standard MU Online client behavior, these categories function as follows:

CategoryTypical Client Behavior
ZenControlled by "Pick up Zen" checkbox
JewelControlled by "Pick up Jewels" checkbox - picks up items in this list
ExcellentControlled by "Pick up Excellent" checkbox - typically auto-detects Excellent items + includes listed items
AncientControlled by "Pick up Ancient/Set" checkbox - typically auto-detects Set items + includes listed items
ExtraControlled by "Event Items" checkbox (on by default) - picks up items in this list

Category Behavior Details (Client-Dependent)#

Jewel Category

  • Typically controlled by "Pick up Jewels" checkbox in MuHelper UI
  • Picks up items explicitly listed in this category
  • Use for jewels and valuable crafting materials

Excellent Category

  • Typically controlled by "Pick up Excellent" checkbox
  • Standard clients auto-detect items with Excellent attribute (Option1)
  • Items listed here can be force-included even without Excellent attribute
  • Use to include special items that should be treated as excellent

Ancient Category

  • Typically controlled by "Pick up Ancient/Set" checkbox
  • Standard clients auto-detect items with Set attribute (ExtOption)
  • Items listed here can be force-included even without Set attribute
  • Use to include special items that should be treated as ancient

Extra Category

  • Controlled by the "Event Items" checkbox in the MuHelper Obtain tab
  • The checkbox is ON by default, also for players with older saved MuHelper settings
  • Like the other categories, it needs "Pick Selected Items" turned on
  • Use for valuable event items, boxes, or server-specific drops

Item Identification#

Item Format#

Each item is defined by three attributes:

AttributeTypeRequiredDescription
SectionintYesItem category (0-15). See section table below.
IndexintYesItem index within section (0-511)
LevelintNoItem level (0-15). Omit to match any level.
NamestringNoHuman-readable name (documentation only, not used by game)

Item Sections#

SectionItem TypeExamples
0SwordsBlade, Legendary Staff
1AxesHand Axe, Battle Axe
2Maces/SceptersMace, Scepter
3SpearsSpear, Dragon Lance
4Bows/CrossbowsShort Bow, Crossbow
5StaffsSkull Staff, Serpent Staff
6ShieldsSmall Shield, Dragon Shield
7HelmsBronze Helm, Dragon Helm
8ArmorsBronze Armor, Dragon Armor
9PantsBronze Pants, Dragon Pants
10GlovesBronze Gloves, Dragon Gloves
11BootsBronze Boots, Dragon Boots
12Wings/OrbsWings of Elf, Orb of Twisting Slash
13Pets/RingsGuardian Angel, Ring of Ice
14ConsumablesPotions, Jewels, Boxes, Scrolls
15ScrollsScroll of Archangel, Blood Bone

Level-Based Item Variants#

Some items share the same Section/Index but have different variants based on Level. This is common for event boxes and special items.

Important Example: Section 14, Index 11#

Section 14, Index 11 has many different items depending on level:

LevelItem Name
0Box of Luck
1Star of Sacred Birth
2Firecracker
6Gold Medal
7Box of Heaven
8Box of Kundun+1
9Box of Kundun+2
10Box of Kundun+3
11Box of Kundun+4
12Box of Kundun+5

Level Matching Rules#

Specify Level - Matches only that specific item variant:

<Item Section="14" Index="11" Level="0" Name="Box of Luck"/>

This picks up only Box of Luck, not other variants.

Omit Level - Matches all variants of that Section/Index:

<Item Section="14" Index="11" Name="All Box variants"/>

This picks up all items at Section 14, Index 11 regardless of level.

Configuration Sections#

Category Element#

Defines a pickup category containing a list of items.

AttributeTypeRequiredValid ValuesDescription
NamestringYesZen
Jewel (or Jewels)
Excellent
Ancient (or Set)
Extra
Category name (case-insensitive). Aliases in parentheses are also accepted.

Item Element#

Defines an item to include in the parent category.

AttributeTypeRequiredValid ValuesDescription
SectionintYes0-15Item section/category
IndexintYes0-511Item index within section
LevelintNo0-15Item level. If omitted, matches any level.
NamestringNoAny textHuman-readable name for documentation

Item Encoding Format#

The plugin encodes items as 32-bit DWORD values for efficient transmission to clients:

Encoding Formula: (ItemCode << 8) | Level

Where:

  • ItemCode = (Section * 512) + Index
  • Level = 0-15 for specific item level
  • Level = 255 (0xFF) means "any level" (when Level attribute is omitted in XML)

Example Encoding:

  • Section=14, Index=11, Level=0 (Box of Luck) → ItemCode=7179 → Encoded as (7179 << 8) | 0 = 1837824
  • Section=14, Index=11, Level omitted (Any box variant) → ItemCode=7179 → Encoded as (7179 << 8) | 255 = 1838079

The server sends these encoded values to the client when players connect.

Important Behavior#

Automatic Transmission on Connect#

When a player connects, the server automatically sends all non-empty category definitions to the client. The client stores these definitions and applies them based on its pickup logic.

Level Matching Algorithm#

Category membership is resolved with a two-pass match:

  1. Exact match: item's Section, Index, and Level exactly match an entry
  2. Any-level match: item's Section and Index match an entry whose Level is 255

Exact matches win over any-level matches.

Empty Categories#

If a category is empty (no items defined), no packet is sent to the client for that category. For Excellent and Ancient categories, this is acceptable since standard clients auto-detect items with Excellent/Set attributes anyway. The category list defines additional items to include.

Failed-Pickup Blacklist#

When MuHelper asks the server to pick up a ground item and the server rejects it (the item is out of range, already taken, no free inventory slot, or otherwise not grantable), the client marks that specific ground item as failed and skips it for 5 seconds before trying again. This stops MuHelper from spamming pickup requests at an item it cannot grab and getting stuck on it instead of moving to the next target. No configuration controls this; it applies to every pickup category. There is nothing to tune in this file.

Category IDs#

Categories the plugin ships with:

IDName
0Zen
1Jewel
2Excellent
3Ancient
4Extra

Other server features (custom events, reward systems) may reference these IDs when deciding what counts as a pickup category.

Examples#

Standard jewel pickup configuration:

<Category Name="Jewel">
    <Item Section="14" Index="13" Name="Jewel of Bless"/>
    <Item Section="14" Index="14" Name="Jewel of Soul"/>
    <Item Section="14" Index="16" Name="Jewel of Life"/>
    <Item Section="14" Index="22" Name="Jewel of Creation"/>
    <Item Section="14" Index="41" Name="Gemstone"/>
    <Item Section="14" Index="42" Name="Jewel of Harmony"/>
    <Item Section="14" Index="43" Name="Lower Refining Stone"/>
    <Item Section="14" Index="44" Name="Higher Refining Stone"/>
    <Item Section="12" Index="15" Name="Jewel of Chaos"/>
</Category>

In standard clients, players enable "Pick up Jewels" checkbox to auto-pickup these items.

Common Issues#

Configuration Template#

<?xml version="1.0" encoding="utf-8"?>
<MuHelperPickup>

    <!-- JEWEL CATEGORY -->
    <!-- Standard clients: Controlled by "Pick up Jewels" checkbox -->
    <Category Name="Jewel">
        <Item Section="14" Index="13" Name="Jewel of Bless"/>
        <Item Section="14" Index="14" Name="Jewel of Soul"/>
        <Item Section="14" Index="16" Name="Jewel of Life"/>
        <Item Section="14" Index="22" Name="Jewel of Creation"/>
        <Item Section="12" Index="15" Name="Jewel of Chaos"/>
        <!-- Add more jewels here -->
    </Category>

    <!-- EXCELLENT CATEGORY -->
    <!-- Standard clients: Controlled by "Pick up Excellent" checkbox -->
    <!-- Standard clients auto-detect items with Excellent attribute -->
    <!-- Add items here to include them in excellent pickup -->
    <Category Name="Excellent">
        <!-- Example: <Item Section="0" Index="25" Name="Special Sword"/> -->
    </Category>

    <!-- ANCIENT CATEGORY -->
    <!-- Standard clients: Controlled by "Pick up Ancient/Set" checkbox -->
    <!-- Standard clients auto-detect items with Set attribute -->
    <!-- Add items here to include them in ancient pickup -->
    <Category Name="Ancient">
        <!-- Example: <Item Section="7" Index="30" Name="Special Helm"/> -->
    </Category>

    <!-- EXTRA CATEGORY -->
    <!-- Controlled by "Event Items" checkbox (on by default) -->
    <Category Name="Extra">
        <Item Section="14" Index="11" Level="0" Name="Box of Luck"/>
        <Item Section="14" Index="11" Level="7" Name="Box of Heaven"/>
        <Item Section="14" Index="17" Name="Old Scroll"/>
        <!-- Add valuable event items and server-specific drops here -->
    </Category>

</MuHelperPickup>
  • Item Configuration - item definitions and attributes referenced by Section/Index/Level
  • ItemDrop Configuration - monster drop tables that produce the items this plugin filters
  • common.dat - per-server identity; category data is sent once per connect on this server
  • command.dat - unrelated to pickup but listed for cross-reference when tuning class loadouts

Last updated October 1, 2026