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

How to set up Ruud and the Ruud shop in MU Online

Learn how to set up the Ruud currency, its income sources, the Ruud shop with exclusive items, and the economic balance on your MU Online server.

GA Gabriel · Updated on Dec 14, 2024 · ⏱ 15 min read
Quick answer

Ruud is one of the most important special currencies on modern MU Online servers. Unlike Zen — which is abundant and serves day-to-day needs — Ruud was designed as an endgame progression currency: you earn it in difficult content and spend it on items that make a real difference to your character. T

Ruud is one of the most important special currencies on modern MU Online servers. Unlike Zen — which is abundant and serves day-to-day needs — Ruud was designed as an endgame progression currency: you earn it in difficult content and spend it on items that make a real difference to your character. That's why configuring Ruud is not just about flipping on a column in the database; it's about designing a complete economic circuit where the income sources, the Ruud shop, and the balancing all talk to each other. A poorly calibrated circuit breaks the server in two ways: if Ruud is too easy to get, exclusive items lose value and the endgame evaporates; if it's too hard, the casual player never reaches anything and quits.

This guide covers the full cycle: understanding where Ruud lives in the data, enabling its income sources, building the shop with exclusive items, placing the vendor NPC and — the point most people ignore — balancing the currency's inflow and outflow. I use table and file names as examples; the architecture is common to almost every emulator, but the exact names vary by emulator. If you're still building the foundation, first check out the tutorial on how to create a MU Online server.

Prerequisites

  • Modern server files with Ruud support (very old files don't have the currency natively).
  • Database access with write permission on the game database (MuOnline in most cases).
  • Access to the GameServer data folder, typically GameServer/Data/.
  • A text editor with the correct encoding to edit .txt and .ini files without corrupting them.
  • A full backup of the database and configurations before any change.
  • A test GM character to validate balance, shop, and purchase limits.
Atenção: Any change to shop tables or configuration files must be made with the GameServer shut down. Editing while it's hot risks losing the changes on the next save or creating an inconsistency between memory and disk.

Step 1: Understand the Ruud circuit

Before touching anything, picture Ruud as a three-stage circuit:

  1. Income (inflow) — where Ruud comes from: events, maps, quests, bosses, invasion rewards.
  2. Storage — where the balance is recorded: usually a column in the character table.
  3. Spending (outflow) — where Ruud goes: the Ruud shop and its exclusive items.

Balancing is nothing more than keeping inflow and outflow in equilibrium. If the average monthly inflow of an active player is X and the most desired item costs far more than a few months of X, the item is a long-term goal. If it costs less than a week, it's disposable. You decide where each item falls on that scale.

Step 2: Locate and verify Ruud storage

The first technical task is confirming where the balance lives. In most emulators, it's a column in the character table:

USE MuOnline
GO
-- Check whether the Ruud column exists in the character table
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Character' AND COLUMN_NAME = 'Ruud'
GO

If the column doesn't exist and your emulator expects it to, create it with a zeroed default value:

USE MuOnline
GO
ALTER TABLE Character ADD Ruud INT NOT NULL DEFAULT 0
GO
Nota: Some emulators store Ruud per account, in a separate account table, instead of per character. In that case, all characters on the same account share the balance. Confirm your server's model before assuming it's per character — the difference changes the entire balancing.

To inspect a character's current balance:

USE MuOnline
GO
SELECT Name, Ruud FROM Character WHERE Name = 'YourGMChar'
GO

Step 3: Configure the Ruud income sources

Here is the heart of inflow balancing. Each source you enable adds Ruud to the economy; the sum of all of them sets the pace at which players accumulate. The classic sources:

SourceCharacteristicRole in the economy
Timed events (Blood Castle, Chaos Castle, Devil Square)Reward per round/levelPredictable, regular flow
Endgame bossesOccasional dropIncome spikes for organized groups
High-level mapsDiluted per-kill incomeContinuous long-term farming
Quests and achievementsOne-time rewardOnboarding incentive and milestones
Custom invasionsCollective rewardCommunity engagement

Event reward configuration usually lives in a rewards .ini file or in a configuration table. Example in .ini (illustrative — varies by emulator):

; Ruud reward per event and level
[BloodCastle]
BC1_Ruud=200
BC4_Ruud=500
BC7_Ruud=1000

[DevilSquare]
DS1_Ruud=150
DS5_Ruud=700

[ChaosCastle]
CC1_Ruud=100
CC7_Ruud=800

Or via a configuration table:

USE MuOnline
GO
-- Adjust an event's Ruud reward (illustrative names)
UPDATE T_EventRuudConfig
SET RuudReward = 1500
WHERE EventType = 1 AND EventLevel = 7
-- EventType 1 = Blood Castle (example; varies by emulator)
GO
Dica: Start conservative on income rates. It's much easier to raise a reward later (players love it) than to reduce it (players hate it and feel cheated). An inflated economy is nearly impossible to fix without unpopular measures.

Step 4: Build the Ruud shop

The Ruud shop is the currency's main outflow. It's usually defined by a table that lists each available item, with its price and restrictions. An exploratory query to see the structure:

USE MuOnline
GO
SELECT TOP 20
    ShopCode, ItemGroup, ItemIndex, ItemLevel, ItemOption,
    Price, ClassFlag, BuyLimit, Enabled
FROM T_RuudShopList
ORDER BY ShopCode
GO

The most relevant fields (illustrative names):

FieldPurpose
ItemGroup / ItemIndexIdentify which item is for sale
ItemLevel / ItemOptionLevel and options already embedded in the item sold
PriceCost in Ruud
ClassFlagBitmask of classes allowed to buy
BuyLimitPurchase limit per character/account
EnabledTurns the offer on/off without deleting it

To add an exclusive item — for example, an endgame wing for 15,000 Ruud, available to all classes:

USE MuOnline
GO
INSERT INTO T_RuudShopList
    (ShopCode, ItemGroup, ItemIndex, ItemLevel, ItemOption, Price, ClassFlag, BuyLimit, Enabled)
VALUES
    (1, 12, 36, 0, 0, 15000, 255, 0, 1)
-- ClassFlag 255 = all classes; BuyLimit 0 = no limit
GO

To adjust the price of an already registered item:

USE MuOnline
GO
UPDATE T_RuudShopList
SET Price = 8000
WHERE ShopCode = 1 AND ItemGroup = 13 AND ItemIndex = 0
GO
Dica: The class field is usually a bitmask: each class is worth a power of 2 (1, 2, 4, 8, ...) and you add the values to unlock multiple classes. A "full" value (like 255) unlocks all of them. Use this to sell class-specific items only to those who can use them, avoiding accidental purchases.

Step 5: Set purchase limits

The purchase limit is the most important tool against imbalance. Very strong items need a per-character cap so that the advantage isn't merely a function of who has more free hours.

USE MuOnline
GO
-- Limit a special item to 1 purchase per character
UPDATE T_RuudShopList
SET BuyLimit = 1
WHERE ShopCode = 1 AND ItemGroup = 12 AND ItemIndex = 36

-- Remove the limit from a consumable item
UPDATE T_RuudShopList
SET BuyLimit = 0
WHERE ShopCode = 1 AND ItemGroup = 14
GO

If the emulator records purchase history, you can audit who bought what:

USE MuOnline
GO
SELECT TOP 50 CharName, ItemGroup, ItemIndex, Price, BuyDate
FROM T_RuudShopBuyLog
ORDER BY BuyDate DESC
GO

Step 6: Place the vendor NPC

The shop needs an NPC to be accessible in the world. Placement is usually done in a monster/NPC spawn file (for example GameServer/Data/Monster/MonsterSetBase.txtvaries by emulator). Each line defines the NPC index, map, coordinates, and direction:

// Ruud Shop NPC - starting town
// Index  Map  X    Y    Dir  Action  Range
658    0    136  140  0    0       50

To offer the shop in more than one town, replicate the line with different maps and coordinates:

658    3    170  100  0    0       50
658    51   215  45   0    0       50
Atenção: The coordinates must fall within a walkable area of the map. An NPC placed on a wall or off the grid may not appear, may appear inaccessible, or may freeze anyone who tries to interact. Use the client with coordinate display enabled to find a valid spot in the center of town.

Step 7: Balance inflow and outflow

With the sources and shop ready, do the math that sustains the economy. Estimate the average monthly inflow of an active player by adding up the realistic rewards from the sources they frequent. Then look at the shop prices and classify each item:

Price range vs. monthly inflowPlayer perceptionRecommended use
Less than 1 week of farmingDisposableConsumables and conveniences
~1 month of farmingMedium-term goalSolid build upgrades
Several months of farmingEndgame goalPrestige and high-power items

Adjust until the curve makes sense for your server's audience. A "hard" server pushes everything to the right; an "easy/fun" server concentrates on the left. The fatal mistake is mixing them without intent — cheap powerful items next to expensive cosmetics confuse and frustrate.

Nota: Reassess the balancing periodically. As the population levels up and masters the content, the real Ruud inflow grows and items that were once expensive become trivial. A good server introduces new Ruud sinks (new items, upgrades) to absorb the excess currency.

Step 8: Test the full cycle

Before opening to players, close the loop with the GM character:

  1. Add test Ruud to the character.
  2. Go to the placed NPC and open the shop.
  3. Confirm that the items appear with correct prices and restrictions.
  4. Buy an item with a limit and try to buy it again — the limit must block it.
  5. Confirm in the database that the correct amount of Ruud was deducted.
USE MuOnline
GO
-- Credit test Ruud
UPDATE Character SET Ruud = Ruud + 50000 WHERE Name = 'YourGMChar'
-- Check the balance after the test purchase
SELECT Name, Ruud FROM Character WHERE Name = 'YourGMChar'
GO

Common errors and fixes

SymptomLikely causeFix
Shop opens emptyNo item with Enabled = 1 for the NPC's ShopCodeEnable items and check the NPC's shop code
NPC doesn't appear on the mapInvalid coordinates or wrong NPC indexFix the spawn and use walkable coordinates
Ruud isn't deducted after purchaseThe purchase routine doesn't write to the balance columnCheck the emulator's purchase stored procedure/routine
Item bought without limit despite BuyLimitLimit not tracked due to missing purchase logEnable purchase history logging
Wrong class buys an exclusive itemMiscalculated ClassFlagRecalculate the allowed-class bitmask
Economy inflates quicklyIncome sources too generousReduce event rewards and create new sinks
Ruud balance resets after relogPersistence doesn't save the balance columnConfirm that the character save includes the Ruud field

Launch checklist

  • Full backup of the database and configurations made and verified
  • Ruud balance column/table confirmed and in the right model (account or character)
  • Income sources enabled with calibrated rewards
  • Ruud shop built with exclusive items and defined prices
  • Purchase limits applied to strong items
  • Class restrictions (bitmask) checked on each item
  • Vendor NPC placed at a valid coordinate and tested
  • Monthly inflow estimated and prices classified on the balancing scale
  • Full cycle (earn, open shop, buy, deduct) tested on the GM
  • Balance persistence confirmed after relog and restart
  • Periodic balancing reassessment plan defined

Frequently asked questions

From which Season does Ruud exist in MU Online?

Ruud was introduced in the more modern Seasons of MU Online as a currency tied to endgame content. In older server files (such as vanilla Season 6) it does not exist by default and needs to be implemented or emulated. In modern files it already comes ready, although the names of the tables and files vary by emulator.

Where is each character's Ruud balance stored?

Usually in a dedicated column in the game database's character table, something like the Ruud column in the Character table. Some emulators store Ruud per account rather than per character. Check your database structure before writing any balance command.

Can I limit how many times a Ruud shop item can be purchased?

Yes, most emulators expose a purchase-limit field per character or per account in the shop table. Setting this limit is essential for very strong items, preventing a single player from accumulating a disproportionate advantage just by having more farming time.

How do I make Ruud drop from a specific event?

You tie the Ruud reward to the event's configuration — whether in a rewards .ini file or in an event configuration table. The amount granted per round and per event level is defined there. The granularity and exact names vary by emulator.

If I change an item's price in the Ruud shop, are players who already bought it affected?

No. The price only applies at the moment of purchase. Changing the value in the table changes the cost of future purchases, but it does not apply retroactively to items already acquired, nor refund or charge a difference to anyone who bought earlier.

GA
Guides & builds editor

Gabriel covers gameplay, class builds, PvP and progression. He tests every strategy on a live server before publishing.

Keep reading

Related articles