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

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.

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

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.

Nota: This tutorial assumes you have access to SQL Server Management Studio (SSMS) and the GameServer installation directory. Back up your database and files before making any changes.

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
Dica: For Season 6, indexes between 400 and 450 are typically available. For Season 9+, check your specific MuServer build documentation, as indexes above 550 may be reserved for official content.

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:

FieldDescriptionExample value
BossTypeMonster.txt index400
MapNumberMap number (0=Lorencia, 2=Noria, 3=Devias)0
PosX / PosYSpawn coordinates on the map130 / 125
CountHow many bosses spawn simultaneously5
RespawnTimeSeconds before respawn after death180
InvasionTimeTotal invasion duration in minutes60

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!
Atenção: Do not use coordinates inside buildings or in map-blocked areas. The boss will appear invisible or will not move. Use the /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);
Nota: On some MuServer versions (S9+), the table may be named 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)
Dica: The sum of all 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:

  1. Save all modified .ini and .txt files
  2. In the GameServer panel, click Reload Data if available, or restart the process
  3. 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
Atenção: If the GameServer has no Reload option, a full restart is required. Schedule the restart during low-traffic hours to avoid disrupting online players.

Troubleshooting

Boss does not appear at the configured time:

  • Verify the Enable = 1 field is set correctly in BossInvasion.ini
  • Confirm the AttackEventIndex in the database is not duplicated with another record
  • Check the GameServer log for .ini file parsing errors

Boss appears but does not move:

  • The AI value in Monster.txt may be 0 (static). Change it to 100 or 110
  • Check whether the map has movement flags enabled in its configuration file

Invasion messages do not appear for players:

  • Confirm NotifyTime in the database is greater than 0
  • Check that the NotifyMessage field in .ini contains no unescaped special characters

No drops appear after killing the boss:

  • Confirm the MonsterIndex in the drop table matches exactly the index defined in Monster.txt
  • Verify the sum of DropRate values does not exceed 100 for the same MonsterIndex

Boss respawns immediately after death:

  • The RespawnTime field is set to 0. Set a value in seconds, such as 180 for 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.

VI

ViciadosMU Team

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

Keep reading

Related articles