> 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/downgrade.md).

# Downgrade

Disable later-season content to emulate an earlier-season server

Switches off selected classes, NPCs and systems so a Season 6 server behaves like an earlier season. Every flag is opt-in: a fresh config changes nothing.

## File Location

```
Data/Plugins/World/Downgrade.xml
```

Loaded early in GameServer startup, before the main configuration pass, so it can suppress content the rest of the server would otherwise register.

## Schema

```xml
<Downgrade>
    <CharacterCreation MagicGladiator="0" Summoner="0" DarkLord="0" RageFighter="0"/>
    <NPC ShadowPhantomQuest="0" PetTrainer="0"/>
    <Systems Gens="0"/>
    <Combat ReflectDamageCheckOwnerLive="0"/>
</Downgrade>
```

All flags are `1` = disabled/downgraded, `0` = normal. Missing attributes default to `0`, except `ReflectDamageCheckOwnerLive`, which defaults to `1`.

## CharacterCreation

| Attribute        | Effect when `1`                                                       |
| ---------------- | --------------------------------------------------------------------- |
| `MagicGladiator` | Magic Gladiator hidden in character creation and rejected server-side |
| `Summoner`       | Summoner hidden in character creation and rejected server-side        |
| `DarkLord`       | Dark Lord hidden in character creation and rejected server-side       |
| `RageFighter`    | Rage Fighter hidden in character creation and rejected server-side    |

The client hides the class and the server refuses the request, so a modified client cannot create a blocked class.

## NPC

| Attribute            | Effect when `1`                                                                                                                          |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `ShadowPhantomQuest` | Shadow Phantom Soldier applies its buffs directly on talk (old-season behavior). The Quest World dialog and its quests are never offered |
| `PetTrainer`         | The Trainer NPC (class 226) is not spawned - no Dark Lord pet creation or repair. **Applies at server restart**                          |

## Systems

| Attribute | Effect when `1`                                                                                                                                                                                                         |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Gens`    | Gens map restrictions lifted (Vulcanus open to everyone), gens battle PvP rules off, and the gens stewards (classes 543 and 544) are not spawned with their dialogs inert. **The spawn part applies at server restart** |

## Combat

| Attribute                     | Default | Effect                                                                                                                              |
| ----------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `ReflectDamageCheckOwnerLive` | `1`     | `1` = reflected damage only lands while the reflecting player is still alive. `0` = reflect lands even after the reflect owner died |

This setting used to live in [Character.dat](/docs/gameserver/character-dat.md) and now belongs here.

## Examples

{% tabs %}
{% tab title="Season 3 style" %}

```xml
<Downgrade>
    <CharacterCreation MagicGladiator="0" Summoner="1" DarkLord="0" RageFighter="1"/>
    <NPC ShadowPhantomQuest="1" PetTrainer="0"/>
    <Systems Gens="1"/>
    <Combat ReflectDamageCheckOwnerLive="1"/>
</Downgrade>
```

Keeps Magic Gladiator and Dark Lord, removes Summoner and Rage Fighter, drops Quest World and Gens.
{% endtab %}

{% tab title="Full Season 6 (default)" %}

```xml
<Downgrade>
    <CharacterCreation MagicGladiator="0" Summoner="0" DarkLord="0" RageFighter="0"/>
    <NPC ShadowPhantomQuest="0" PetTrainer="0"/>
    <Systems Gens="0"/>
    <Combat ReflectDamageCheckOwnerLive="0"/>
</Downgrade>
```

Nothing disabled - every class, NPC and system available.
{% endtab %}
{% endtabs %}

## Important Behavior

* **Blocking a class does not delete existing characters.** Characters of a disabled class that already exist keep working; only creation is refused. Delete or migrate them yourself if the class should be gone entirely.
* **NPC spawn changes need a restart.** `PetTrainer` and the `Gens` steward spawns take effect when the server starts, not on a config reload.
* **This file loads before the main configuration pass**, which is what lets it suppress content the rest of the server would otherwise register. Keep it valid XML - a parse failure here is noticed early.

## Common Issues

* **A disabled class is still selectable** - the client is running an older configuration; reconnect so it picks up the current settings
* **Trainer or gens stewards still standing around** - the server has not been restarted since the flag was set
* **Quest World still offered** - `ShadowPhantomQuest` is `0`; the Shadow Phantom Soldier only switches to buff-on-talk when it is `1`
* **Reflect behaves differently than before an update** - `ReflectDamageCheckOwnerLive` moved here from Character.dat and defaults to `1`
