Event.dat
Enable flags and high-level tunables for every scheduled event
Master on/off and light-tuning for every event the server runs. Schedules, reward pools, monster waves, and map-specific behavior live in the shared Data/Event/*.dat files; this file only decides whether each event is active and how its headline numbers are tuned.
File Location
GameServer/Data/GameServerInfo - Event.datAll keys under [GameServerInfo]. Changes require a GameServer restart.
Standard Events
Most standard events ship enabled by default. Exceptions noted per section.
Blood Castle
BloodCastleEvent
0 or 1
1
Master enable
BloodCastleMaxUser
int
10
Max simultaneous players per sub-instance
BloodCastleMasterAnyTier
0 or 1
0
1 lets master class (ChangeUp >= 2) characters pick any tier regardless of tier bounds
BloodCastlePerIpCharCap
int
0
Max characters from one IP allowed across all BC tiers combined. 0 = disabled
BloodCastleTier{1-8}{Min,Max}{Level,Reset,GrandReset,MasterReset}
int
-1
Per-tier bracket bounds. -1 disables that bound. See Bracket Entry Gates for the full pattern
See BloodCastle.dat for schedule, rewards, and per-stage monster lists.
Bonus Manager
BonusManagerSwitch
0
Master enable for global drop/XP bonus windows
See BonusManager.dat for the shared bonus windows.
Castle Deep
CastleDeepEvent
0 or 1
0
Master enable
CastleDeepEventTime
minutes
30
Run duration per cycle
See CastleDeepEvent.dat for schedule and monster data.
Castle Siege
Gated by Common.dat EnableCastleSiege. Schedule anchors are zero by default, meaning the next cycle is computed from the current date.
CastleSiegeEvent
0 or 1
1
Enable flag; inert unless EnableCastleSiege = 1 in Common.dat
CastleSiegeCycleStartYear/Month/Day
int
0 each
Start date of a CS cycle override. 0 = use engine default
CastleSiegeSpecificState
int 0-6
0
Force CS into a specific phase. 0 = automatic progression
CastleSiegeStateStartYear/Month/Day/Hour/Minute
int
0 each
Force state start timestamp. 0 = automatic
CastleSiegeOffensiveWeaponDamage
raw HP
300
Fixed HP subtracted per hit of an offensive siege weapon. Not a percentage
CastleSiegeDefensiveWeaponDamage
raw HP
200
Fixed HP subtracted per hit of a defensive siege weapon. Not a percentage
CastleSiegeLowerAccumulatedTimeValue
int
0
Seconds removed from accumulated occupation time per regression tick
CastleSiegeDecayAccumulatedTimeValue
int
0
Seconds of passive decay per tick
Use the specific-state overrides only to force-test siege phases. Leave them at 0 in production or the live cycle will never advance on its own.
Chaos Castle
ChaosCastleEvent
0 or 1
1
Master enable
ChaosCastleMinUser
int
1
Minimum participants for a round to start
ChaosCastleBlowUserRate
int %
50
Chance the arena knock-off mechanic fires when a monster is killed. Rolled once per monster death, not per hit
ChaosCastlePerIpCharCap
int
0
IP cap across all CC tiers. 0 = disabled
ChaosCastleTier{1-7}{Min,Max}{Level,Reset,GrandReset,MasterReset}
int
-1
Per-tier bracket bounds
Crywolf
CrywolfEvent
0 or 1
1
Master enable
CrywolfBenefitSwitch
0 or 1
1
1 applies server-wide buff when Crywolf is won
CrywolfBenefitChaosRate
int %
10
Chaos machine bonus while benefit active
CrywolfBenefitMonsterLife
int %
80
Monster life scaling while benefit active. Value is the percentage of normal HP monsters spawn with (80 = 80% HP)
CrywolfPenaltySwitch
0 or 1
0
1 applies server-wide penalty when Crywolf is lost
CrywolfPenaltyJewelDrop
int %
70
Jewel drop rate while penalty active
CrywolfPenaltyExperience
int %
70
XP rate while penalty active
Devil Square
DevilSquareEvent
0 or 1
1
Master enable
DevilSquareMaxUser
int
15
Max participants per sub-instance
DevilSquarePerIpCharCap
int
0
IP cap across all DS tiers. 0 = disabled
DevilSquareTier{1-7}{Min,Max}{Level,Reset,GrandReset,MasterReset}
int
-1
Per-tier bracket bounds
Double Goer
DoubleGoerEvent
0 or 1
1
Master enable
DoubleGoerDifficultRate
int %
100
Difficulty scale. 100 = baseline, higher = harder
Illusion Temple
IllusionTempleEvent
0 or 1
1
Master enable
IllusionTempleMinUser
int
1
Minimum participants to start
IllusionTempleRewardFenrirRate
out of 10000
5
Drop chance of a Fenrir-tier reward on victory. 5 = 0.05%, 100 = 1%
IllusionTemplePerIpCharCap
int
0
IP cap across all IT tiers. 0 = disabled
IllusionTempleTier{1-6}{Min,Max}{Level,Reset,GrandReset,MasterReset}
int
-1
Per-tier bracket bounds
Imperial Guardian
ImperialGuardianEvent
0 or 1
1
Master enable
ImperialGuardianDifficultRate
int %
100
Difficulty scale
Invasion Manager
InvasionManagerSwitch
1
Master enable for scripted monster invasions (Skeleton King, Red Dragon, etc.)
Each invasion is its own XML file under Data/Event/Invasions/. The legacy InvasionManager.dat is no longer read.
Kanturu
KanturuEvent
1
Master enable
Moss Merchant
MossMerchantEvent
0 or 1
1
Master enable
MossMerchantEventTime
minutes
120
Cycle interval
Raklion
RaklionEvent
1
Master enable
Rei do MU (King of MU)
ReiDoMUEvent
0 or 1
0
Master enable. Schedule, warning window, and rewards live in shared Data/Event/ReiDoMu.dat
ReiDoMUMap
int
0
Map index where the throne NPC spawns
ReiDoMUCordX
int
0
Throne NPC X coordinate
ReiDoMUCordY
int
0
Throne NPC Y coordinate
ReiDoMUGuildMinMembers
int
0
Minimum guild member count required to claim the throne
Bracket Entry Gates
Devil Square, Blood Castle, Chaos Castle, and Illusion Temple each support server-authoritative tier gating. Every tier (1-8 for BC, 1-7 for DS/CC, 1-6 for IT) has eight optional bounds:
MinLevel / MaxLevel
Character level range
MinReset / MaxReset
Reset count range
MinGrandReset / MaxGrandReset
Grand reset count range
MinMasterReset / MaxMasterReset
Master reset count range
Key format: <Event>Tier<N><Min|Max><Level|Reset|GrandReset|MasterReset>. Example: BloodCastleTier3MaxReset = 50.
Sentinel rules
-1on either side of a min/max pair disables that bound. Both at-1disables the gate entirely (any value passes).0is a real bound, distinct from-1.MinReset = 0means "must have at least 0 resets" (always passes);MinReset = -1means "reset is not checked"."Untouched config" =
MasterAnyTier = 0AND every tier of that event has all eight bounds at-1. In that state the engine falls back to vanilla hardcoded brackets, preserving out-of-the-box behavior.
Master class override
<Event>MasterAnyTier = 1 lets characters with ChangeUp >= 2 (1st/2nd/3rd grand master) bypass all tier bounds for that event and pick whichever tier they want. Use to keep low brackets relevant on high-rate servers where masters would otherwise be locked to the top tier only.
Per-IP cap
<Event>PerIpCharCap caps the number of characters from one IP simultaneously inside any tier of that event (the cap is event-wide, not per-tier). 0 disables. Counted by the source IP address of each logged-in character within the event's map range.
Client UI
When any tier on an event has been touched, the configured bracket table is synced to the client via Game Data Sync opcode 0xEC type 20 and used by:
The Devil Square / Blood Castle entry dialogs (tier list reflects live config, not hardcoded brackets)
Entry-item tooltips (DS Invitation of the Devil Square, BC Scroll of Archangel, CC Armor of Guardsman, IT Ticket/Cloaks) - the configured bracket table renders inline in the item tooltip (the same style as the Armor of Guardsman tier table), with the player's qualifying tier highlighted and the required Zen cost shown. This table is synced GameServer to Client; an admin who only edits Event.dat sees the change reflected in-game after the server restarts and clients reconnect
If the event is untouched, the client falls back to its legacy hardcoded brackets.
When an entry is rejected, the client rejection popup states the precise reason - not enough resets, not enough grand resets, not enough master resets, or level out of range - rather than a generic "cannot enter" message. The reason shown is the specific bound the character failed for the tier it attempted.
Example: gate DS Tier 1 to fresh chars under 100 resets
Reset bound applies; GR/MR bounds are inactive on this tier.
Cross-File Dependencies
CastleSiegeEvent
Inert unless Common.dat EnableCastleSiege = 1; full CS data in shared Data/Event/MuCastleData.dat
BloodCastleEvent
Per-cycle timing + rewards in shared Data/Event/BloodCastle.dat
ChaosCastleEvent
Shared Data/Event/ChaosCastle.dat
CrywolfEvent
Shared Data/Event/Crywolf.dat
DevilSquareEvent
Shared Data/Event/DevilSquare.dat
DoubleGoerEvent
Shared Data/Event/DoubleGoer.dat
IllusionTempleEvent
ImperialGuardianEvent
InvasionManagerSwitch
Shared Data/Event/Invasions/*.xml (one file per invasion)
KanturuEvent
Shared Data/Event/Kanturu.dat
MossMerchantEvent
Shared Data/Event/MossMerchant.dat
RaklionEvent
Shared Data/Event/Raklion.dat
ReiDoMUEvent
Shared Data/Event/ReiDoMu.dat for schedule and reward pools
Context damage rates
Per-event damage rates in Character.dat (CastleSiegeDamageRate*, ChaosCastleDamageRate, IllusionTempleDamageRate)
Common Issues
Event enabled but nothing spawns at the scheduled time - the switch here only toggles the feature; schedule and spawn data live in the shared
Data/Event/<EventName>.datfileCastle Siege never starts - either Common.dat
EnableCastleSiege = 0orCastleSiegeSpecificStateset to a non-zero value is pinning the stateCrywolf penalty punishes everyone after a loss - intended behavior; set
CrywolfPenaltySwitch = 0to disable
Last updated