EventTimerInfo
The EventTimerInfo configuration controls what event information is displayed in the client's Event Timer window. It defines event names and rich tooltip descriptions that help players understand upcoming events, their rewards, and how to participate.
File Location#
Data/Plugins/Events/EventTimerInfo.xml
Overview#
This system provides a modern event timer interface by:
- Displaying event names in the timer window
- Showing rich tooltip descriptions with formatted sections
- Supporting up to 42 different event types (0-41)
- Automatically updating based on server event schedules
- Providing visual states (disabled, waiting, starting soon, active)
The client requests event data from the server on demand, and the server responds with the enabled event list.
Event Index Reference#
Events are organized into three categories:
| Index Range | Category | Description |
|---|---|---|
| 0-13 | Core Events | Main server events (Blood Castle, Devil Square, Castle Siege, etc.) |
| 14-27 | Invasions | Special invasions and boss events |
| 28-41 | Arenas | Class-specific PvP arenas |
Core Events (0-13)#
| Index | Default Name |
|---|---|
| 0 | Blood Castle |
| 1 | Devil Square |
| 2 | Chaos Castle |
| 3 | Illusion Temple |
| 4 | (free) |
| 5 | (free) |
| 6 | Bonus Event |
| 7 | Moss Merchant |
| 8 | Drop Event |
| 9 | King of MU |
| 10 | Team vs Team |
| 11 | Kanturu |
| 12 | Crywolf |
| 13 | Castle Siege |
Invasions and Special Events (14-27)#
Slots 14-17 and 21-27 are bound at GameServer startup by each invasion XML's <General EventTimerSlot="N"/> attribute (see Invasions). The mapping below is the shipped default; you can rebind any invasion to any free slot by editing its XML.
| Index | Default Name | Source |
|---|---|---|
| 14 | Skeleton King | Invasion XML 000 - Skeleton King.xml (EventTimerSlot="14") |
| 15 | Red Dragon | Invasion XML 001 - Red Dragon.xml (EventTimerSlot="15") |
| 16 | Golden Invasion | Invasion XML 002 - Goldens.xml (EventTimerSlot="16") |
| 17 | White Wizard | Invasion XML 003 - White Wizard.xml (EventTimerSlot="17") |
| 18 | Raklion | State-driven by the event itself - no invasion XML, the slot is bound internally |
| 19 | Imperial Guardian | State-driven by the event itself - no invasion XML, the slot is bound internally |
| 20 | Guild vs Guild | Shipped entry, Enabled="true" |
| 21 | Cursed Santa | Invasion XML 007 - Cursed Santa.xml (EventTimerSlot="21") |
| 22 | Medusa | Invasion XML 008 - Medusa.xml (EventTimerSlot="22") |
| 23-27 | (free) | Available - drop an invasion XML with a matching EventTimerSlot to claim a slot |
Invasions whose XML sets EventTimerSlot="-1" (e.g. 004 - New Year.xml, 005 - Rabbits.xml, 006 - Summer.xml) opt out of the client timer entirely.
Arenas (28-41)#
Default names mirror the shipped short-class labels. Rename freely to match how your server advertises promotions.
| Index | Default Name |
|---|---|
| 28 | Survivor (all classes) |
| 29 | MG vs MG (CustomArena 1 "DMxDM") |
| 30 | DW vs DW (CustomArena 2 "GMxGM") |
| 31 | DK vs DK (CustomArena 3 "BMxBM") |
| 32 | RF vs RF (CustomArena 4 "FMxFM") |
| 33 | DL vs DL (CustomArena 5 "LExLE") |
| 34 | ELF vs ELF |
| 35 | SUM vs SUM |
| 36-41 | Arena 9 through Arena 14 |
Configuration Format#
Tabs#
The window has up to 3 tabs. <Tabs> sets their names and colours, in order. Leave it out to get the default Events / Invasions / Arenas.
<Tabs>
<Tab Name="Events" Color="gold"/>
<Tab Name="Invasions" Color="255,90,60"/>
<Tab Name="Arenas" Color="green"/>
</Tabs>
| Attribute | Type | Default | Description |
|---|---|---|---|
Name | string | (required) | Tab label (max 15 characters). |
Color | colour | skin colour | Label colour. Idle tabs draw a shade darker. |
Event Entry#
| Attribute | Type | Default | Description |
|---|---|---|---|
Index | int | (required) | Event index (0-41). Must be unique. |
Enabled | bool | true | Whether event appears in timer window. Set to false to hide unused events. |
Name | string | (required) | Display name shown in timer window (max 31 characters). |
Tab | int | by index | Tab the event is listed in (0 = first). Default: 0-13 and 18-20 → 0, 14-27 → 1, 28-41 → 2. |
NameColor | colour | state colour | Colour of the event name in the list. The countdown keeps its state colour; a disabled event stays grey. |
EntryLimit | string | none | A limit from EntryLimits.xml (BloodCastle, DevilSquare, ...) or a dungeon Name. The tooltip ends with the player's "Entries: 2/3 today". Nothing shows while that limit is 0. |
Tooltip#
<Tooltip> holds <Header> and <Line> elements, drawn top to bottom in file order.
<Tooltip>
<Header>Blood Castle Info</Header>
<Line Color="blue">You need Blood Bone and Scroll of Archangel</Line>
<Line/>
<Line Color="yellow" Bold="1">Reward:</Line>
<Line Color="violet">Archangel weapons!</Line>
</Tooltip>
| Element | Attributes | Description |
|---|---|---|
<Header> | Color (default gold) | Bold section title. |
<Line> | Color (default tooltip text colour), Bold (1 = bold) | One line of text. <Line/> = blank line. Long lines wrap. |
A plain <Line>[Rewards]</Line> (no Color) is drawn as a header too, without the brackets, so older files still look right.
Colours#
Every Color / NameColor attribute takes any of these:
| Form | Example |
|---|---|
| Name | Color="orange" |
| Item-tooltip index 0-13 | Color="3" (= yellow) |
| R,G,B | Color="255,90,60" |
| Hex | Color="ff5a3c" or Color="#ff5a3c" |
| Index | Name | Index | Name |
|---|---|---|---|
| 0 | white | 7 | darkblue |
| 1 | blue | 8 | darkyellow |
| 2 | red | 9 | greenblue |
| 3 | yellow | 10 | gray |
| 4 | green | 11 | redpurple |
| 5 | darkred | 12 | violet |
| 6 | purple | 13 | orange |
Extra names (no index): gold, cyan, pink.
The indices follow the item tooltip colour order, so numbered colour files from other emulators port over directly. A bad colour is logged in the GameServer console and ignored.
Formatting rules:
- Trailing blank lines are dropped
- Maximum 2047 bytes per tooltip after encoding (each coloured line costs ~10 extra bytes, bold 3). Longer tooltips are cut off and logged at load
Event States#
The server automatically determines event states based on remaining time:
| State | Display | Condition |
|---|---|---|
| Disabled | Hidden | Enabled=false OR remainTime=-1 |
| Waiting | Normal countdown | remainTime > 300 seconds (5 minutes) |
| Starting Soon | Yellow/highlighted | remainTime < 300 seconds |
| Active | Active indicator | remainTime = 0 |
Important Behavior#
Examples#
<Event Index="0" Enabled="true" Name="Blood Castle" NameColor="red">
<Tooltip>
<Header Color="orange">Blood Castle Info</Header>
<Line/>
<Line Color="blue">Mix Blood Bone + Scroll of Archangel</Line>
<Line Color="blue">into a Cloak of Invisibility</Line>
<Line/>
<Line Color="green">Break the gate, kill the statue and bring</Line>
<Line Color="green">the Archangel weapon back to win</Line>
<Line/>
<Header Color="yellow">Rewards</Header>
<Line Color="violet" Bold="1">Chance for Archangel weapons!</Line>
</Tooltip>
</Event>
<!-- Hide Imperial Guardian if your server doesn't run it -->
<Event Index="19" Enabled="false" Name="Imperial Guardian">
<Tooltip>
<Line>This event is not available.</Line>
</Tooltip>
</Event>
<!-- Simple arena description -->
<Event Index="28" Enabled="true" Name="Survivor Arena">
<Tooltip>
<Line>[Description]</Line>
<Line></Line>
<Line>Free-for-all PvP arena.</Line>
<Line>Last survivor wins!</Line>
<Line></Line>
<Line>[Rules]</Line>
<Line>- No potions or buffs</Line>
<Line>- Pure skill combat</Line>
</Tooltip>
</Event>
<!-- Custom invasion event -->
<Event Index="21" Enabled="true" Name="Ice Queen">
<Tooltip>
<Line>[Description]</Line>
<Line></Line>
<Line>The Ice Queen invades the server!</Line>
<Line>Defeat her for amazing rewards.</Line>
<Line></Line>
<Line>[Location]</Line>
<Line>Random spawns in Lorencia</Line>
<Line></Line>
<Line>[Rewards]</Line>
<Line>- Jewel of Guardian</Line>
<Line>- Frozen equipment</Line>
<Line>- Massive experience</Line>
</Tooltip>
</Event>
Tooltip Design Guidelines#
Structure Your Tooltips#
Use a consistent pattern across all events:
- Description - What is this event?
- Requirements/Location - How to access it
- Rewards - What players can earn
- Rules/Strategy - Special mechanics
Use Clear Headers#
<Header>Description</Header> <!-- Main event explanation -->
<Header>How to Enter</Header> <!-- Access requirements -->
<Header>Rewards</Header> <!-- Loot information -->
<Header>Rules</Header> <!-- Special mechanics -->
<Header>Location</Header> <!-- Where it happens -->
Pick one colour per kind of line and keep it across all events (e.g. blue = how to enter, green = how it plays, yellow = rewards). Players learn the pattern.
Keep It Concise#
- Each line should be 40-50 characters max for readability
- Use bullet points (- or •) for lists
- Break long paragraphs into multiple lines
- Use empty lines sparingly for section breaks
Good Tooltip Example#
<Tooltip>
<Header Color="orange">Illusion Temple Info</Header>
<Line/>
<Line Color="green">Team-based capture event. Carry the</Line>
<Line Color="green">Sacred Ball to the enemy pedestal.</Line>
<Line/>
<Header Color="yellow">Rewards</Header>
<Line>- Illusion Shard Points</Line>
<Line>- Special armor sets</Line>
</Tooltip>
Common Issues#
Related Configuration#
| Config | Purpose |
|---|---|
| Event.dat | Per-server event schedules, enables, and countdown sources |
| Event configs | Individual event definitions (Blood Castle, Devil Square, Kanturu, etc.) |
Behavior#
Event Time Sources#
Different events pull their countdown from different places:
- Most scheduled events read their next-start time from the GameServer's event scheduler
- State-driven events (Kanturu, Crywolf, Castle Siege, Raklion, Imperial Guardian) read their current state directly from the event system
- Invasion slots (14-27) and Custom Arena slots (28-41) each have their own timers
Loading#
At startup the plugin reads Data/Plugins/Events/EventTimerInfo.xml, validates each <Event> Index (0-41), and stores the enable flag, name, and tooltip lines. A malformed or missing file falls back to hardcoded defaults so the event timer UI never shows blank data.