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

# MoveSummon.txt

Per-map whitelist for arbitrary-coordinate teleports: Mobility Talisman, Resurrection Talisman, party summon skill, and similar coordinate-based warps. Each row declares which rectangle on a map is a legal destination and which level / reset / account / PK gates apply.

## File Location

```
Data/Move/MoveSummon.txt
```

Loaded once at GameServer startup. Changes require a restart.

## Format

```
//Map   X   Y   TX   TY   MinLevel   MaxLevel   MinReset   MaxReset   AccountLevel   PkMove
0       1   1   255  255  1          400        *          *          0              0
...
end
```

Terminated by the literal `end` token. Lines starting with `//` are ignored. Rows are stored in a list in file order, not keyed by an index, so duplicates are allowed and are each evaluated on lookup.

## Columns

| Column                  | Type       | Effect                                                                                                                                                                                                                                                       |
| ----------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Map`                   | int        | Map index this whitelist row applies to                                                                                                                                                                                                                      |
| `X` / `Y` / `TX` / `TY` | int        | Inclusive bounds of the legal summon destination rectangle. `1 / 1 / 255 / 255` covers any tile on the map                                                                                                                                                   |
| `MinLevel` / `MaxLevel` | int        | Character level range allowed to be summoned into the rectangle. `*` stores as `-1` and disables that side. `MinLevel` is scaled by the same class modifier used elsewhere: MG / DL / RF need two-thirds of this value on every map except Swamp of Calmness |
| `MinReset` / `MaxReset` | int or `*` | Reset count range. `*` stores as `-1` and disables                                                                                                                                                                                                           |
| `AccountLevel`          | 0-3        | Minimum account tier                                                                                                                                                                                                                                         |
| `PkMove`                | 0 or 1     | `1` allows PK characters (PK level 5+) to enter the rectangle. `0` blocks them                                                                                                                                                                               |

## How It's Used

The engine calls the MoveSummon check before any arbitrary-coordinate warp. Each row is tested in file order; the first row whose `Map` and rectangle contain the target tile decides the outcome. If that row's level / reset / account / PK gates all pass, the warp is allowed. If any gate fails, the warp is rejected immediately (the loop does not fall through to later rows). If no row matches the `Map` and rectangle, the warp is rejected.

Typical callers:

* **Mobility Talisman** - player marks an arbitrary point, warps back to it later.
* **Resurrection Talisman** - player revives at a saved point instead of the map's default respawn gate.
* **Party summon skill** - summoner drops a beacon, party members warp in.
* **Plugin-driven teleports** via `CustomMove.xml`.

## Server-Side Extra Checks

On top of the row-by-row match, the check also enforces:

* **Busy state**: the warp is rejected if the character has a UI window open, an in-progress teleport, or a death-respawn in progress.
* **Castle Siege safe zone**: during non-siege phases, summoning into the Castle Siege map's central rectangle (`X` in 161-191, `Y` in 188-216) is blocked.
* **Atlans**: summoning into Atlans is blocked if the character is wearing a Uniria or Dinorant.
* **Icarus / Kanturu 3rd Floor**: summoning in requires wings, Dinorant, or Fenrir.

These extra checks run before the whitelist loop.

## Shipped Whitelist

The shipped file whitelists the entire playable surface (`1 / 1 / 255 / 255`) on a set of generic gameplay maps: Lorencia, Dungeon, Devias, Noria, Lost Tower, Atlans, Tarkan, and a range of higher-tier hunting grounds. Every row ships with `MinLevel=1`, `MaxLevel=400`, unlimited resets, `AccountLevel=0`, and `PkMove=0`. Event-instance maps (Blood Castle, Chaos Castle, Devil Square, Castle Siege, Kanturu event instances, Raklion event instances) are absent by design: players cannot summon or resurrect into an event instance.

## Cross-File Dependencies

| Attribute                                           | Related in                                                                                           |
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `Map`                                               | [MapManager.xml](/docs/data/mapmanager.md)                                                           |
| Summon entry points                                 | [Gate.txt](/docs/data/gate.md) (MoveSummon does not use gate indices; it checks rectangles directly) |
| Mobility / Resurrection Talisman item definitions   | [Item.txt](/docs/data/item/item.md)                                                                  |
| Atlans / Icarus / Kanturu 3rd Floor equipment gates | Wings, Dinorant, Fenrir definitions in [Item.txt](/docs/data/item/item.md)                           |
| PK level thresholds                                 | [Common.dat](/docs/gameserver/common-dat.md)                                                         |
| Class-scaled `MinLevel` exception                   | Swamp of Calmness map index, see [MapManager.xml](/docs/data/mapmanager.md)                          |

## Common Issues

* **Talisman rejects a valid-looking town** - that map has no matching MoveSummon row; add one covering the intended rectangle.
* **Party summon fails into a dungeon but works in town** - dungeons are intentionally excluded; add the map only if you want party summon to work there.
* **PK character cannot use Mobility Talisman** - `PkMove=0` on every matching row. Flip to `1` on rows where PK-tolerant summons are allowed.
* **First matching row rejects a player who would pass a later row** - row order matters. The first row whose `Map` and rectangle contain the target tile is the only one evaluated. Reorder or narrow the rectangles so the intended row is hit first.
* **File silently drops rows** - the parser stops at `end` or EOF; a missing `end` on a file with trailing whitespace can cause the last row to be consumed as a garbage token. Keep the `end` terminator on its own line.
* **Rectangle check behaves unexpectedly at edges** - the check uses inclusive bounds on all four sides; a rectangle of `10 / 10 / 10 / 10` matches exactly tile `(10, 10)`.
