> For the complete documentation index, see [llms.txt](https://axiomemu.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axiomemu.gitbook.io/docs/data/plugins/eventtimerinfo.md).

# 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    | *(free)*        |
| 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](/docs/data/event/invasionmanager.md)). 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 (`gRaklion`)                                                         |
| 19    | Imperial Guardian | State-driven (`gImperialGuardian`)                                                |
| 20    | *(free)*          | Previously Guild vs Guild, removed                                                |
| 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                 |
| 29    | DM vs DM                 |
| 30    | GM vs GM                 |
| 31    | BM vs BM                 |
| 32    | FM vs FM                 |
| 33    | LE vs LE                 |
| 34    | ELF vs ELF               |
| 35    | SUM vs SUM               |
| 36-41 | Arena 9 through Arena 14 |

{% hint style="info" %}
**Arena Naming**: Default names can be overridden in the XML. Choose terminology that matches how your server advertises class names to players.
{% endhint %}

## Configuration Format

### 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).                    |

### 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.

```xml
<Tooltip>
    <Line>[Header]</Line>
    <Line>Content here</Line>
</Tooltip>
```

**Legacy `<Section>` Format:** Uses `<Section Header="...">` elements where brackets are automatically added around headers.

```xml
<Tooltip>
    <Section Header="Description">Content here</Section>
</Tooltip>
```

**Formatting rules:**

* Empty `<Line></Line>` creates spacing between sections
* Maximum 1023 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:

| 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

{% hint style="info" %}
**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.
{% endhint %}

{% hint style="warning" %}
**Tooltip Length Limit**: Each tooltip can contain up to 1023 characters (flattened, including newline separators). Longer descriptions are truncated.
{% endhint %}

{% hint style="info" %}
**Event Name Length**: Event names are limited to 31 characters (EVENT\_NAME\_LEN - 1). Longer names will be truncated when sent to the client.
{% endhint %}

{% hint style="warning" %}
**Index Conflicts**: If you define multiple events with the same Index, only the first one loaded will be used. Always use unique indices.
{% endhint %}

## Examples

{% tabs %}
{% tab title="Simple Event" %}

```xml
<!-- Blood Castle with basic description -->
<Event Index="0" Enabled="true" Name="Blood Castle">
    <Tooltip>
        <Line>[Description]</Line>
        <Line></Line>
        <Line>PvE survival event for levels 15-400.</Line>
        <Line>Fight through waves to protect the statue.</Line>
        <Line></Line>
        <Line>[Rewards]</Line>
        <Line>- Jewel of Chaos</Line>
        <Line>- Ancient Items</Line>
        <Line>- Experience bonus</Line>
    </Tooltip>
</Event>
```

{% endtab %}

{% tab title="Disabled Event" %}

```xml
<!-- 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>
```

{% endtab %}

{% tab title="Arena Event" %}

```xml
<!-- 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>
```

{% endtab %}

{% tab title="Custom Event" %}

```xml
<!-- 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>
```

{% endtab %}
{% endtabs %}

## Tooltip Design Guidelines

### Structure Your Tooltips

Use a consistent pattern across all events:

1. **Description** - What is this event?
2. **Requirements/Location** - How to access it
3. **Rewards** - What players can earn
4. **Rules/Strategy** - Special mechanics

### Use Clear Headers

```xml
<Line>[Description]</Line>  <!-- Main event explanation -->
<Line>[How to Enter]</Line> <!-- Access requirements -->
<Line>[Rewards]</Line>      <!-- Loot information -->
<Line>[Rules]</Line>        <!-- Special mechanics -->
<Line>[Strategy]</Line>     <!-- Tips for success -->
<Line>[Location]</Line>     <!-- Where it happens -->
```

### 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

```xml
<Tooltip>
    <Line>[Description]</Line>
    <Line></Line>
    <Line>Team-based capture event. Carry the</Line>
    <Line>Sacred Ball to the enemy pedestal.</Line>
    <Line></Line>
    <Line>[Rewards]</Line>
    <Line>- Illusion Shard Points</Line>
    <Line>- Old Scroll / Illusion Shard</Line>
    <Line>- Special armor sets</Line>
    <Line></Line>
    <Line>[Strategy]</Line>
    <Line>- Protect your ball carrier</Line>
    <Line>- Use CC skills on enemies</Line>
    <Line>- Team coordination is key</Line>
</Tooltip>
```

## Common Issues

{% hint style="warning" %}
**Events Not Appearing**: If an event doesn't show in the timer window, verify:

1. `Enabled="true"` is set
2. The underlying event is actually scheduled (check the matching event config file)
3. The Index is valid (0-41)
   {% endhint %}

{% hint style="warning" %}
**Tooltip Not Showing**: Empty or malformed tooltips will display "No description available." Ensure:

1. At least one `<Line>` element exists inside `<Tooltip>`
2. XML is properly closed (`</Line>`, `</Tooltip>`, `</Event>`)
3. No invalid XML characters (use < > & for <, >, &)
   {% endhint %}

{% hint style="danger" %}
**Server Crash on Load**: If the server crashes when loading this file:

1. Verify XML is well-formed (matching open/close tags)
2. Check that Index values are 0-41
3. Ensure file encoding is UTF-8
4. Look for special characters that need escaping
   {% endhint %}

{% hint style="info" %}
**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.
{% endhint %}

## Related Configuration

| Config                                     | Purpose                                                                  |
| ------------------------------------------ | ------------------------------------------------------------------------ |
| [Event.dat](/docs/gameserver/event-dat.md) | Per-server event schedules, enables, and countdown sources               |
| [Event configs](/docs/data/event.md)       | 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.
