EventTimerInfo
Client event timer window configuration - event names, descriptions, and tooltip content
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
GameServer/Data/Plugins/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 via packet 0xF3:0xE8, and the server responds with 0xF3:0xE9 (C2 header type) containing all enabled event information.
Event Index Reference
Events are organized into three categories:
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)
0
Blood Castle
ServerDisplayer.EventBc
1
Devil Square
ServerDisplayer.EventDs
2
Chaos Castle
ServerDisplayer.EventCc
3
Illusion Temple
ServerDisplayer.EventIt
4
Lottery
ServerDisplayer.EventCustomLottery
5
Quiz Event
ServerDisplayer.EventCustomQuiz
6
Bonus Event
ServerDisplayer.EventCustomBonus
7
Moss Merchant
ServerDisplayer.EventMoss
8
Drop Event
ServerDisplayer.EventDrop
9
Boss Event
ServerDisplayer.EventKing
10
Team vs Team
ServerDisplayer.EventTvT
11
Kanturu
Kanturu system state
12
Crywolf
Crywolf system state
13
Castle Siege
Castle Siege system state
Invasions (14-27)
14
Golden Invasion
ServerDisplayer.EventInvasion[0]
15
Red Dragon
ServerDisplayer.EventInvasion[1]
16
White Wizard
ServerDisplayer.EventInvasion[2]
17
Skeleton King
ServerDisplayer.EventInvasion[3]
18
Raklion
Raklion system state
19
Imperial Guardian
Imperial Guardian system state
20
Guild vs Guild
ServerDisplayer.EventGvG
21-27
Invasion 8-14
ServerDisplayer.EventInvasion[7-13]
Arenas (28-41)
28
Survivor
All classes
29
DM vs DM
Dark Knight only
DM = Dark Master (3rd class)
30
GM vs GM
Dark Wizard only
GM = Grand Master (3rd class)
31
BM vs BM
Blade Master only
BM = Blade Master (3rd class)
32
FM vs FM
Soul Master only
FM = Fist Master (3rd class)
33
LE vs LE
Magic Gladiator only
LE = Lord Emperor (3rd class)
34
ELF vs ELF
Elf only
35
SUM vs SUM
Summoner only
36-41
Arena 9-14
ServerDisplayer.EventCustomArena[8-13]
Arena Naming: The source code uses abbreviated 3rd class names (DM, GM, FM, LE) as defaults. The distributed XML file overrides these with full class names (DK, DW, SM, MG) for better player clarity. You can customize these names to match your server's terminology.
Configuration Format
Event Entry
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).
Tooltip Structure
Tooltips support two formats:
Modern <Line> Format (Recommended): Each <Line> element represents one line of text in the tooltip. This format does NOT automatically add brackets - you must type them manually.
Legacy <Section> Format: Uses <Section Header="..."> elements where brackets are automatically added around headers.
Formatting rules:
Empty
<Line></Line>creates spacing between sectionsMaximum 255 characters total per tooltip (longer descriptions are truncated)
Use the
<Line>format for all new configurations
Event States
The server automatically determines event states based on remaining time:
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
State-Based Events: Some events (Crywolf, Castle Siege, Kanturu, Raklion, Imperial Guardian) use their game system state rather than simple timers. The plugin automatically handles state-to-time conversion.
Tooltip Length Limit: Each tooltip can contain up to 255 characters. Longer descriptions will be truncated. Keep tooltips concise and use <Line> spacing efficiently.
Event Name Length: Event names are limited to 31 characters (EVENT_NAME_LEN - 1). Longer names will be truncated when sent to the client.
Index Conflicts: If you define multiple events with the same Index, only the first one loaded will be used. Always use unique indices.
Examples
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
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
Common Issues
Events Not Appearing: If an event doesn't show in the timer window, verify:
Enabled="true"is setThe event's timer source is properly configured (check ServerDisplayer or event system)
The Index is valid (0-41)
Tooltip Not Showing: Empty or malformed tooltips will display "No description available." Ensure:
At least one
<Line>element exists inside<Tooltip>XML is properly closed (
</Line>,</Tooltip>,</Event>)No invalid XML characters (use < > & for <, >, &)
Server Crash on Load: If the server crashes when loading this file:
Verify XML is well-formed (matching open/close tags)
Check that Index values are 0-41
Ensure file encoding is UTF-8
Look for special characters that need escaping
Default Fallback: If the XML file fails to load or is missing, the plugin uses built-in default names and shows "No description available" for all events. The server will continue running with defaults.
Related Configuration
Event timer values (EventBc, EventDs, EventInvasion array, etc.)
Event System Configs
Individual event configurations (BloodCastle.txt, DevilSquare.txt, etc.)
Technical Details
Packet Format
Client Request: 0xF3:0xE8 (subheader 0xF3, subcode 0xE8, no additional data) Server Response: 0xF3:0xE9 (C2 header type, subheader 0xF3, subcode 0xE9)
Response structure:
Header (5 bytes): Type, Size, Head (0xF3), Subhead (0xE9)
Count (1 byte): Number of events
Event Data (294 bytes each):
Index (1 byte)
RemainTime (4 bytes): Seconds until event (-1 = disabled)
State (1 byte): EVENT_STATE enum
Name (32 bytes): Null-terminated string
Description (256 bytes): Null-terminated string with newlines
Event Time Sources
The plugin queries different sources based on event index:
ServerDisplayer Fields (most events):
EventBc,EventDs,EventCc,EventIt(core events 0-3)EventCustomLottery,EventCustomQuiz,EventCustomBonus(custom 4-6)EventMoss,EventDrop,EventKing,EventTvT(special 7-10)EventCryWolf,EventCs,EventGvG(large events 12-13, 20)EventInvasion[14]array (invasion slots 14-27)EventCustomArena[14]array (arena slots 28-41)
Game System States (state-based events):
Kanturu (11): Uses
gKanturu.GetRemainTime()Crywolf (12): Uses
gCrywolf.GetCrywolfState()+ EventCryWolfCastle Siege (13): Uses
EventCsState+ EventCsRaklion (18): Uses
gRaklion.GetRaklionState()Imperial Guardian (19): Uses
gImperialGuardian.GetState()
Loading Process
Server startup calls
gEventTimerInfo.LoadXML("Plugins\\EventTimerInfo.xml")XML parser reads all
<Event>nodesFor each event:
Validates Index (0-41)
Stores Enabled, Name attributes
Parses
<Tooltip>with<Line>elementsTrims whitespace from each line
Stores in internal m_Config array
If XML fails to load, uses hardcoded defaults
Client can request data anytime via 0xF3:0xE8 packet
Last updated