Brazil's biggest MU Online portal — since 2003
Tutorial Intermediate Tutoriais

How to Configure Custom Drops per Item on MU Server

Learn how to configure custom item drops on your MU Online private server using .bmd files, SQL tables, and drop chance parameters per monster group.

VI ViciadosMU Team · Updated on 3 jul 2026 · ⏱ 12 min read

Introduction

The drop system is one of the most critical components of a private MU Online server. Correctly configuring the items each monster can drop — with the right chances and conditions — determines the server economy balance and the overall player experience.

This tutorial covers custom drop configuration both via data files and SQL Server database tables, applicable to Season 2 through Season 13 versions.


How the Drop System Works

In MuServer, each monster has a DropGroup (drop group). This group is a list of possible items, each with:

  • ItemIndex: numeric identifier of the item
  • ItemLevel: level of the item to be dropped
  • DropChance: drop probability (0 to 9,000,000)
  • MinExcOpt / MaxExcOpt: number of excellent options on the item

The GameServer reads this data on startup from the database or from .bmd files, depending on the installed version.

Nota: Season 6 Episode 3 servers primarily use the file GameServer/Data/Item/ItemBag.bmd in conjunction with the T_ItemDropGroup table in the MuOnline database. Older versions (S1-S4) rely almost entirely on .txt and .bmd files.

Step by Step: Configuration via SQL Server Database

Step 1 — Identify the Monster's DropGroup

Connect to the MuOnline database via SQL Server Management Studio (SSMS) and run:

SELECT MonsterIndex, MonsterName, DropGroup
FROM T_MonsterSetBase
WHERE MonsterName LIKE '%Hydra%'

Note the DropGroup value. This number links the monster to its drop group.

Step 2 — Query the Items in the Drop Group

SELECT *
FROM T_ItemDropGroup
WHERE DropGroup = 12
ORDER BY ItemIndex

This lists all items that the monster with DropGroup = 12 can drop.

Step 3 — Insert a New Item into the Drop Group

To add, for example, a Darkangel Armor +0 with a 0.5% chance:

INSERT INTO T_ItemDropGroup
  (DropGroup, ItemIndex, ItemType, ItemLevel, DropChance, MinExcOpt, MaxExcOpt, MinLuck, MaxLuck, MinSkill, MaxSkill, MinDur, MaxDur, MinOpt, MaxOpt)
VALUES
  (12, 27, 0, 0, 45000, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0)
Dica: The value 45000 represents approximately 0.5% chance. To calculate: 45000 / 9000000 * 100 = 0.5%. Use this formula to adjust any desired probability.

Step 4 — Change the Drop Chance of an Existing Drop

To increase the drop chance of an item already in the group:

UPDATE T_ItemDropGroup
SET DropChance = 90000
WHERE DropGroup = 12
  AND ItemIndex = 27
  AND ItemType = 0

This raises the drop chance to 1%.

Step 5 — Remove an Item from a Drop Group

DELETE FROM T_ItemDropGroup
WHERE DropGroup = 12
  AND ItemIndex = 27
  AND ItemType = 0
Atenção: Never delete records without first backing up the table. Use SELECT to confirm the affected records before executing DELETE.

Step by Step: Configuration via ItemBag.bmd File (Season 6)

For Season 6 servers, drops are also controlled by the binary file ItemBag.bmd, located at:

GameServer/Data/Item/ItemBag.bmd

Step 1 — Open the File with the Correct Editor

Use the ItemBagEditor (Season 6 specific tool) or MuHelper Item Editor. Do not edit the .bmd file with a text editor — it is binary and will be corrupted.

Step 2 — Locate the Drop Group

In the editor interface, locate the BagIndex corresponding to the desired monster. This index must match the DropGroup defined in Monster.txt or in the T_MonsterSetBase table.

Step 3 — Add or Edit Entries

Each entry in ItemBag.bmd contains:

FieldDescription
ItemTypeItem category (0 = Armor, 4 = Weapon, etc.)
ItemIndexItem ID within the category
ItemLevelItem level
DropRateProbability (0-9,000,000)
ExcellentOptionNumber of excellent options

Save and recompile the file if necessary (some editors generate the .bmd directly).

Step 4 — Replace the File on the Server

GameServer/Data/Item/ItemBag.bmd  <- replace here
Atenção: Always back up the original ItemBag.bmd before replacing it. A corrupted file will prevent the GameServer from starting.

Configuring Drops with Excellent Options

To configure items that drop with excellent options, adjust the MinExcOpt and MaxExcOpt fields:

UPDATE T_ItemDropGroup
SET MinExcOpt = 1,
    MaxExcOpt = 2,
    DropChance = 9000
WHERE DropGroup = 15
  AND ItemIndex = 35

This makes the item drop with 1 to 2 excellent options, at a 0.1% chance.

Dica: Items with MaxExcOpt = 6 have all excellent options active. Use this sparingly — items with full exc options and a high drop rate will quickly unbalance the server economy.

Creating a Brand New DropGroup

If you want an existing monster to have a completely custom drop group:

1. Choose a free DropGroup number (check existing ones to avoid conflicts):

SELECT DISTINCT DropGroup FROM T_ItemDropGroup ORDER BY DropGroup DESC

2. Insert items for the new group (e.g., DropGroup = 200):

INSERT INTO T_ItemDropGroup (DropGroup, ItemIndex, ItemType, ItemLevel, DropChance, MinExcOpt, MaxExcOpt, MinLuck, MaxLuck, MinSkill, MaxSkill, MinDur, MaxDur, MinOpt, MaxOpt)
VALUES
  (200, 10, 4, 0, 180000, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0),
  (200, 15, 4, 0, 90000,  0, 0, 0, 1, 0, 1, 255, 255, 0, 0),
  (200, 27, 0, 0, 45000,  0, 2, 0, 0, 0, 0, 255, 255, 0, 0)

3. Associate the group with the monster:

UPDATE T_MonsterSetBase
SET DropGroup = 200
WHERE MonsterIndex = 47

4. Restart the GameServer to apply the changes.


Zen (Money) Drops

Zen drop is not controlled by T_ItemDropGroup. It is configured directly in the file:

GameServer/Data/Monster.txt

Each monster line contains columns for MoneyDropMin and MoneyDropMax. Edit the values directly:

// MonsterIndex  Name          ...  MoneyMin  MoneyMax  DropGroup
47               Dark Knight        5000      15000     200

Verifying Drops in Production

After restarting the server, monitor drops with the following query to track the drop history (if your server has a drop log):

SELECT TOP 100 *
FROM T_DropLog
WHERE ItemIndex = 27
ORDER BY LogDate DESC
Nota: Not all servers have the T_DropLog table. If it does not exist, verification must be done in-game by killing monsters and observing the dropped items.

Troubleshooting

The item does not appear in drops:

  • Confirm the monster's DropGroup is correct in T_MonsterSetBase
  • Verify that ItemIndex and ItemType correspond to an existing item in T_Item
  • Restart the GameServer — database changes are not read in real time

The server does not start after editing ItemBag.bmd:

  • Restore the backup of the original file
  • Check whether the editor used is compatible with your server's Season version

Items drop with incorrect options:

  • Review the MinExcOpt/MaxExcOpt and MinSkill/MaxSkill fields in the T_ItemDropGroup table
Dica: Always use a test environment (a local copy of the server) to validate drop configurations before applying them to production.

Perguntas frequentes

Which SQL table controls monster drops?

The main table is T_ItemDropGroup in the MuOnline database. Each row associates a drop group (DropGroup) with a specific item, including its probability and min/max level.

Does the ItemBag.bmd file control drops?

Yes, on Season 6 servers the file GameServer/Data/Item/ItemBag.bmd defines drop groups per monster. It is a compiled binary file and requires a specific tool (ItemBagEditor or MuHelper) to edit.

How do I calculate the drop probability correctly?

The chance is expressed as a value from 0 to 9,000,000 (representing 0% to 100%). For example, 9000 equals a 0.1% chance. Use the formula: Chance% = (value / 9000000) * 100.

Why is the item not dropping even after configuration?

Verify the server was restarted after the changes, that the monster's DropGroup is correctly mapped in T_MonsterSetBase or Monster.txt, and that the ItemIndex corresponds to the intended item.

VI

ViciadosMU Team

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Keep reading

Related articles