Partial vs total wipe in MU Online: how to do it right
Understand the difference between a partial and a total wipe in MU Online and carry each one out safely, preserving accounts, rankings and the economy when needed.
Few MU Online server-administration decisions carry as much impact as a wipe. Done at the right moment and with the correct method, a wipe renews the economy, corrects accumulated distortions and brings players back to fair competition. Done hastily — without a backup, without warning, or by deletin
Few MU Online server-administration decisions carry as much impact as a wipe. Done at the right moment and with the correct method, a wipe renews the economy, corrects accumulated distortions and brings players back to fair competition. Done hastily — without a backup, without warning, or by deleting the wrong table — it destroys the community's trust and, in the worst case, leaves the database inconsistent and the server unable to come up. This guide separates the two main types of wipe, shows exactly what each one touches in the database and presents a reproducible procedure to carry out each one safely.
Throughout the text the examples use the classic MuServer schema (SQL Server, the MuOnline database, tables like MEMB_INFO, Character, Guild). The table and column names vary by season/emulator — IGCN, MuEMU, X-Files, Season 6 and modern seasons all differ. Treat each command as an example to be adapted to your database, never as something to paste blindly into production.
Prerequisites
Before touching any table, confirm that you have:
- Administrative access to SQL Server (SA or an account with
DELETE,TRUNCATEandBACKUP DATABASEpermissions) via SQL Server Management Studio orsqlcmd. - Access to the server panel/services to stop GameServer, ConnectServer, JoinServer and any auxiliary daemons (event server, ranking, site).
- A complete, tested backup of the database before you start. If you don't have a backup workflow yet, solve that first — see the step below.
- A defined maintenance window communicated to the players.
- Your distribution's schema documentation, so you know which tables hold progress and which hold configuration.
If you're setting the server up now and don't yet have that foundation, start with the guide on how to create a MU Online server and come back here once the environment is stable.
What a partial wipe is and what a total wipe is
The terms are used loosely in the community, so it's worth pinning down operational definitions:
Total wipe (full wipe / world reset). Deletes all game data: characters, items, zen, resets, guilds, rankings, warehouse, events. In practice the server starts over from scratch. There are two variants: preserve the accounts (MEMB_INFO) so players keep their login and password, or delete the accounts too (a "hard" wipe, rare and aggressive).
Partial wipe (soft wipe). Zeroes out only a subset of the progress, preserving the rest. Common examples: zeroing only resets and the ranking while keeping items; zeroing zen and the economy while keeping characters; removing a specific item introduced by a bug; or zeroing only the scores of a seasonal event.
The table below summarizes the typical scope of each approach. The table names are examples and vary by season/emulator.
| Data | Typical table | Partial wipe (economy) | Partial wipe (resets) | Total wipe (keeps accounts) |
|---|---|---|---|---|
| Accounts/login | MEMB_INFO | Preserved | Preserved | Preserved |
| Characters | Character | Preserved | Zeroes resets/level | Deleted |
| Zen | Character.Money | Zeroed | Preserved | Deleted (with the char) |
| Equipped items/inventory | Character.Inventory | Clears items | Preserved | Deleted |
| Warehouse (chest) | warehouse | Cleared | Preserved | Deleted |
| Guilds | Guild, GuildMember | Preserved | Preserved | Deleted |
| Ranking/resets | Character.ResetCount, rank views | Preserved | Zeroed | Deleted |
| Events (CS, BC) | event tables | Optional | Optional | Deleted |
When to do each type
Choosing the wrong type is the most expensive mistake. Use these criteria:
Do a partial wipe when the problem is localized. A dupe bug that injected millions of zen? Zero the economy without deleting characters. The ranking got distorted by a reset exploit? Zero only resets and rebuild the rank. A bugged item circulating? Remove only that item. A partial wipe preserves the player's emotional bond with their character and reduces churn.
Do a total wipe when the distortion is systemic and unrecoverable: an economy collapsed on several fronts, illegitimate items scattered with no traceability, or a season/rate change so large that old progress no longer makes sense. It's also the path for planned relaunches ("grand opening") designed to attract a new wave of players.
> Rule of thumb: if you can write a WHERE that isolates the problem, a partial wipe probably fixes it. If the problem is everywhere, a total wipe is more honest and cheaper to maintain.
Step 1 — Complete and verified backup
Never skip this step. The backup is your only way back.
-- Full backup of the game database before the wipe
BACKUP DATABASE MuOnline
TO DISK = 'D:\Backups\MuOnline_pre_wipe_2024-04-22.bak'
WITH FORMAT, INIT, NAME = 'PreWipe Full', STATS = 10;
GO
-- (Optional, recommended) verify the integrity of the generated file
RESTORE VERIFYONLY
FROM DISK = 'D:\Backups\MuOnline_pre_wipe_2024-04-22.bak';
GO
If there's a separate account database (some distributions use MuOnline for the game and another for ranking/events), back up all of them. Copy the .bak to a second location (another disk or the cloud) before proceeding.
Step 2 — Stop all services
Shut them down in this order, so that nobody can log in during the process and to keep the GameServer cache from rewriting data:
- ConnectServer — blocks new client connections.
- GameServer(s) — flushes characters from memory to the database and releases locks.
- JoinServer / EventServer / ranking daemons.
- Site services that write to the database (cash shop, donation, VIP).
Confirm that nothing is connected to SQL before continuing:
-- Check active sessions on the game database
SELECT session_id, login_name, host_name, program_name, status
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID('MuOnline');
GO
If GameServer sessions appear, they're still alive — stop the process before going on. Running the wipe with the GS on is the number-one cause of "I did the DELETE but the items came back": the in-memory cache overwrote your changes on the next shutdown.
Step 3 — Execute a partial wipe
Below are the three most-requested partial wipes. Adapt the column names to your season/emulator and run them inside a transaction so you can roll back.
Zero the economy (zen) while keeping characters
USE MuOnline;
GO
BEGIN TRANSACTION;
-- Zero the zen of every character
UPDATE Character SET Money = 0;
-- (Optional) set a default starting zen instead of zero
-- UPDATE Character SET Money = 1000000;
-- Check the number of affected rows before confirming
-- If it's correct:
COMMIT; -- or ROLLBACK; if something looks wrong
GO
Zero resets and ranking while keeping items
USE MuOnline;
GO
BEGIN TRANSACTION;
UPDATE Character
SET ResetCount = 0, -- column name varies (Resets, ResetCount, etc.)
cLevel = 1, -- back to level 1 (adjust to your rule)
Experience = 0;
-- If the ranking is materialized in its own table, clear it:
-- TRUNCATE TABLE RankingReset;
COMMIT;
GO
Remove a specific item introduced by a bug
In the classic MuServer, items live in binary blobs (Inventory, warehouse), which makes surgical removal complex and dependent on the distribution's format. When there's a relational item table (some modern seasons), removal is straightforward:
-- Example: a distribution with a relational item table
DELETE FROM ItemInventory
WHERE ItemGroup = 12 AND ItemIndex = 15; -- indexes vary by season
GO
For the binary format, the safe path is to use the distribution's own tool/panel or an official cleanup script — editing the blob manually without knowing the layout corrupts the whole inventory.
Step 4 — Execute a total wipe
The total wipe (preserving accounts) deletes the game data while keeping MEMB_INFO. Do it in a transaction and respect the order of the foreign keys (delete children before parents).
USE MuOnline;
GO
BEGIN TRANSACTION;
-- 1) Character/guild-dependent data first
DELETE FROM GuildMember;
DELETE FROM Guild;
DELETE FROM warehouse; -- chests/storage
DELETE FROM AccountCharacter; -- account<->slots link (name varies)
-- 2) Characters
DELETE FROM Character;
-- 3) Event/ranking tables (names vary by season/emulator)
-- TRUNCATE TABLE Event_CastleSiege;
-- TRUNCATE TABLE Ranking;
-- MEMB_INFO is NOT touched: accounts and passwords remain.
COMMIT;
GO
After the COMMIT, it's good practice to shrink/reindex so the server comes up clean:
-- Rebuild indexes on the large tables
ALTER INDEX ALL ON MEMB_INFO REBUILD;
GO
DBCC SHRINKDATABASE (MuOnline, 10); -- optional, frees log space
GO
If you go with the "hard" wipe (deleting accounts too), add DELETE FROM MEMB_INFO; last — but weigh it carefully, because it forces everyone to register again and usually burns a large part of the player base.
Step 5 — Preserve what matters in a relaunch
A total wipe doesn't have to be scorched earth. You can selectively carry things over:
- Account and guild names: export
MEMB_INFO(login) and the list of guild names before the wipe to offer a "nick/guild reservation" at relaunch. - Founder rewards: keep a list of who played in the previous season to give a loyalty gift on their return.
- Configuration: procedures, triggers and configuration tables are NOT progress — don't delete them. A wipe is about player data, not the database structure.
-- Export guild names before a total wipe (for reservation at relaunch)
SELECT G_Name, G_Master
INTO GuildNames_Backup_20240422
FROM Guild;
GO
Step 6 — Bring the server up and validate
With the wipe done:
- Bring up JoinServer → ConnectServer → GameServer, the reverse of the shutdown order.
- Create a test character and validate: level/reset zeroed (or as expected), correct zen, clean inventory, ranking starting over.
- Check the GameServer logs for table-read errors (they indicate a missing column or an incompatible type).
- Only then open public access.
Common errors and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Items/zen "come back" after the wipe | GameServer was on; the cache rewrote them at shutdown | Stop all GS before the wipe and redo the procedure |
Foreign key error when deleting Character | Child tables (guild, warehouse) still reference the char | Delete the dependents first; follow the order in Step 4 |
| Server won't come up after a total wipe | A procedure/trigger was deleted along with it | Restore only the structure from the backup; don't delete configuration objects |
| Players can't log in | MEMB_INFO was truncated by mistake | Restore MEMB_INFO from the pre-wipe backup |
| Ranking shows old data | The materialized view/table wasn't recalculated | Run the recompute job or TRUNCATE the ranking table |
| DELETE was slow and froze the server | A huge transaction with no batching, full log | Use DELETE TOP (N) in batches or TRUNCATE when there's no FK |
Launch checklist
- Full backup made, copied to a second location and verified with
RESTORE VERIFYONLY - Wipe type decided (partial or total) and scope documented
- Player announcement published at least 7 days in advance
- All services stopped (Connect, Game, Join, event, site) and SQL sessions cleared
- Wipe commands tested in a transaction, with the row count checked before the COMMIT
- Account/guild names exported (if it's a relaunch with nick reservation)
- Reindex/shrink run after a total wipe
- Test character validated (level, zen, inventory, ranking)
- GameServer logs free of table/column errors
- Post-wipe backup (a new clean baseline) taken before opening access
- Public access reopened and the "we're live" announcement published
Frequently asked questions
Does a partial wipe delete players' accounts?
No. A partial wipe preserves the MEMB_INFO table and usually the characters. It zeroes out only the chosen progress — resets, zen, ranking or items — keeping each player's login and password.
What's the practical difference between a total wipe and recreating the database?
A total wipe deletes all game data but keeps the database structure and procedures. Recreating the database from scratch also recreates tables and configuration, requiring you to reimport your distribution's schema.
Do I need to stop the server to do a wipe?
Yes, always. GameServer, ConnectServer and any process that keeps a connection to SQL must be shut down before the wipe, otherwise the in-memory cache overwrites your changes and corrupts records.
How do I warn players without losing the player base?
Announce it at least 7 days in advance, offer founder rewards and migrate account/guild names. Retention depends more on communication than on the wipe itself.
Does a wipe fix zen inflation and duplicated items?
A total wipe fixes it, since it zeroes the economy. A partial wipe of zen and items helps too, but if the cause (a dupe bug, a misconfigured drop) isn't fixed first, inflation comes back within weeks.