How to Configure Custom Invasions on MU Online Server
Learn to configure custom boss invasions on your MU Online server with SQL commands, .ini files, and scheduled timetables.
Introduction
Custom invasions are one of the most effective tools for keeping players engaged on MU Online private servers. Properly configuring spawn schedules, maps, and boss attributes requires editing both GameServer configuration files and SQL Server database tables.
This guide covers the complete setup for Season 6 Episode 3 servers (the most common in private communities), with notes for other seasons where behavior differs.
Step 1: Understand the Invasion System Structure
The MuServer invasion system operates across two layers:
- Configuration files — define which monsters exist, their attributes, and base spawn positions
- Database — controls schedules, enabling/disabling, and dynamic parameters
The relevant files are located at:
GameServer/
└── Data/
├── Monster.txt ← monster attributes (HP, damage, level)
├── MonsterSpawn.txt ← fixed spawn positions
└── BossInvasion.ini ← event-based invasion config (Season 6+)
The main tables in the MuOnline database are:
T_AttackEvent -- invasion schedules and configuration
T_MonsterAI -- monster behavior during invasions
EventSchedule -- (some versions) global event scheduling
Step 2: Define the Invasion Monster in Monster.txt
Open GameServer/Data/Monster.txt and locate or create an entry for your custom boss. The format for each line is:
// Index / Name / Level / HP / MP / Atk / Def / MoveSpeed / AtkSpeed / AtkRange / ViewRange / MoveRange / Regen / MaxItemDrop / Money / AI / Element
Monster 400 CustomBoss 120 5000000 0 8500 1200 35 700 4 8 5 3 90000 100 0
- Index 400 — use a free index (confirm no other monster uses the same number)
- HP 5000000 — adjust based on your server's progression curve
- AI 100 — aggressive mode with active pursuit behavior
Step 3: Configure Spawn in BossInvasion.ini
Open GameServer/Data/BossInvasion.ini. Each invasion block uses this format:
[BossInvasion]
Enable = 1
BossType = 400
MapNumber = 0
PosX = 130
PosY = 125
Count = 5
RespawnTime = 180
InvasionTime = 60
NotifyMessage = The Custom Boss is invading Lorencia!
KillMessage = The Custom Boss has been defeated!
Required fields explained:
| Field | Description | Example value |
|---|---|---|
BossType | Monster.txt index | 400 |
MapNumber | Map number (0=Lorencia, 2=Noria, 3=Devias) | 0 |
PosX / PosY | Spawn coordinates on the map | 130 / 125 |
Count | How many bosses spawn simultaneously | 5 |
RespawnTime | Seconds before respawn after death | 180 |
InvasionTime | Total invasion duration in minutes | 60 |
To run invasions on multiple maps, add separate blocks:
[BossInvasion]
Enable = 1
BossType = 400
MapNumber = 2
PosX = 180
PosY = 110
Count = 3
RespawnTime = 180
InvasionTime = 60
NotifyMessage = The Custom Boss is invading Noria!
KillMessage = The Custom Boss has been defeated in Noria!
/pos command in-game to verify valid coordinates before configuring.Step 4: Schedule the Invasion in the Database
Connect to the MuOnline database in SQL Server Management Studio and run:
-- View existing records
SELECT * FROM T_AttackEvent;
-- Insert a new custom invasion
INSERT INTO T_AttackEvent (
AttackEventIndex,
Enable,
MapNumber,
StartHour,
StartMinute,
EndHour,
EndMinute,
NotifyTime
)
VALUES (
10, -- unique index, verify it does not already exist
1, -- 1 = enabled, 0 = disabled
0, -- map (0 = Lorencia)
20, -- start hour (8pm)
0, -- start minute
21, -- end hour (9pm)
0, -- end minute
10 -- advance warning in minutes
);
To schedule multiple time slots in the same day:
-- 2pm to 3pm invasion
INSERT INTO T_AttackEvent VALUES (11, 1, 0, 14, 0, 15, 0, 10);
-- 8pm to 9pm invasion
INSERT INTO T_AttackEvent VALUES (12, 1, 0, 20, 0, 21, 0, 10);
-- 10pm to 11pm invasion in Devias (MapNumber = 3)
INSERT INTO T_AttackEvent VALUES (13, 1, 3, 22, 0, 23, 0, 10);
EventSchedule or T_EventInfo. Run SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%Event%' to identify the correct table for your installation.Step 5: Configure Boss Drops
To configure drops via the database, find the monster drop table and insert records for your custom boss:
-- View current drops for the boss
SELECT * FROM T_MonsterItemDrop WHERE MonsterIndex = 400;
-- Insert custom drops for the boss
INSERT INTO T_MonsterItemDrop (
MonsterIndex,
ItemType,
ItemIndex,
ItemLevel,
DropRate,
MinDrop,
MaxDrop
)
VALUES
(400, 13, 19, 13, 15, 1, 1), -- Jewel of Bless (15% chance)
(400, 13, 30, 13, 10, 1, 1), -- Jewel of Soul (10% chance)
(400, 14, 22, 13, 5, 1, 1); -- Jewel of Chaos (5% chance)
DropRate values for a given MonsterIndex must not exceed 100. Values above 100 cause undefined behavior and the boss may drop incorrect items or nothing at all.Step 6: Configure System Notifications
In GameServer/Data/Notice.txt, add notification messages for the invasion:
[InvasionStart]
MapNumber = 0
Message = [INVASION] The Custom Boss has invaded Lorencia! Prepare yourself!
[InvasionEnd]
MapNumber = 0
Message = [INVASION] The invasion of Lorencia has ended. Thank you for participating!
To insert notices via SQL on systems that support database-driven broadcasts:
-- Insert a temporary notice (displayed on the next GameServer cycle)
INSERT INTO T_Notice (NoticeIndex, Message, MapNumber, StartTime, Duration)
VALUES (100, '[INVASION] Custom Boss in Lorencia! Head to the map now!', 0, GETDATE(), 60);
Step 7: Restart and Verify
After completing all changes:
- Save all modified
.iniand.txtfiles - In the GameServer panel, click Reload Data if available, or restart the process
- Wait for the configured time window and check the log at
GameServer/Log/GameServer_YYYYMMDD.log
Look for entries like:
[AttackEvent] BossType=400 spawned at Map=0 Pos=(130,125) Count=5
[AttackEvent] Invasion started - Duration=60min
Troubleshooting
Boss does not appear at the configured time:
- Verify the
Enable = 1field is set correctly inBossInvasion.ini - Confirm the
AttackEventIndexin the database is not duplicated with another record - Check the GameServer log for
.inifile parsing errors
Boss appears but does not move:
- The
AIvalue inMonster.txtmay be0(static). Change it to100or110 - Check whether the map has movement flags enabled in its configuration file
Invasion messages do not appear for players:
- Confirm
NotifyTimein the database is greater than0 - Check that the
NotifyMessagefield in.inicontains no unescaped special characters
No drops appear after killing the boss:
- Confirm the
MonsterIndexin the drop table matches exactly the index defined inMonster.txt - Verify the sum of
DropRatevalues does not exceed 100 for the sameMonsterIndex
Boss respawns immediately after death:
- The
RespawnTimefield is set to0. Set a value in seconds, such as180for a 3-minute respawn
Conclusion
With these steps, your server will have fully functional custom invasions complete with scheduling, notifications, and targeted drops. The combination of .ini files for behavioral definitions and SQL tables for dynamic scheduling gives you full flexibility to create unique events that set your server apart.
Always test during low-traffic hours and monitor the logs through the first few occurrences to confirm everything works as expected before announcing the event to your players.
Perguntas frequentes
Which database table controls invasion schedules?
The T_AttackEvent table (or BossInvasion depending on your MuServer version) in the MuOnline database stores invasion times and maps. Run SELECT * FROM T_AttackEvent to view current records.
How do I make a boss spawn on multiple maps simultaneously?
In BossInvasion.ini (GameServer/Data/BossInvasion.ini), define multiple entries with the same BossType but different MapNumber values. Each block is an independent boss instance.
The boss appears but vanishes immediately — what causes this?
Usually the RespawnTime field is set to 0, or the monster entry in Monster.txt has no HP value defined. Also verify that the Enable field in T_AttackEvent is set to 1.
Can I restrict invasions to peak hours only?
Yes. Set the StartHour and EndHour fields in T_AttackEvent or in BossInvasion.ini entries to limit invasions to specific time windows, for example StartHour=20 and EndHour=23 for evening-only events.