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

# Move.txt

Destination list for the `/move` teleport command. Each row is one named destination: its display label, a sub-area label sent to the client, zen cost, level / reset / account gates, and which Gate.txt entry to warp the player to.

## File Location

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

Loaded once at GameServer startup. Changes require a restart. The parsed table is also shipped to the client as part of the game-data sync payload so that UI labels and sub-area names stay in step with the server.

## Format

```
//Index   Name   SubMapName   RequireMoney   MinLevel   MaxLevel   MinReset   MaxReset   AccountLevel   Gate
1         "Arena"   ""   2000   50   400   *   *   0   50
```

Terminated by the first `end` token or EOF. Lines starting with `//` are ignored.

## Columns

| Column                  | Type          | Effect                                                                                                                                                                                         |
| ----------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Index`                 | int           | Unique destination ID. Rows are stored in a map keyed by this value; a later duplicate overwrites the earlier row                                                                              |
| `Name`                  | quoted string | Name typed after `/move`. Matching is case-insensitive; both the name and the command itself are compared with case-insensitive string compare                                                 |
| `SubMapName`            | quoted string | Secondary label sent to the client for UI display. Empty quotes `""` = none. Not used for matching `/move` input                                                                               |
| `RequireMoney`          | zen           | Zen charged on successful teleport. `0` = free. Deducted only after all gate checks pass and the warp succeeds                                                                                 |
| `MinLevel`              | int           | Minimum character level. `-1` (written as `*`) disables the check. Scaled by the Gate module's class modifier: MG / DL / RF need only two-thirds of this on every map except Swamp of Calmness |
| `MaxLevel`              | int           | Maximum character level. `-1` / `*` disables. Shipped data commonly uses `400` as effectively unlimited                                                                                        |
| `MinReset` / `MaxReset` | int or `*`    | Reset count range. `*` stores as `-1` and disables that side                                                                                                                                   |
| `AccountLevel`          | 0-3           | Minimum account tier (`0` = free accounts allowed)                                                                                                                                             |
| `Gate`                  | int           | Gate index from [Gate.txt](/docs/data/gate.md) that the teleport targets                                                                                                                       |

## Gate Resolution

The `Gate` column should point at an exit gate (`Flag=2`) or a zone marker (`Flag=0`) in Gate.txt. The engine looks up that row, picks a random walkable tile inside the rectangle `(X, Y)` to `(TX, TY)`, and teleports the player there facing the row's `TargetDir`. If every tile in the rectangle fails the walkability check, the teleport silently fails and no zen is spent.

## Server-Side Gate Checks

Beyond the per-row checks above, `/move` also enforces server-wide rules:

* **PK block**: when the server's PK-limit-free toggle is off, characters with PK level 5 or higher are rejected with no zen loss. The rule is global; there is no per-row PK override.
* **Busy state**: the command is rejected if the character has a UI window open, an in-progress teleport, or a death-respawn in progress.
* **Atlans restriction**: if the resolved destination map is Atlans and the character is wearing a Uniria or Dinorant, the warp is blocked.
* **Air-map requirement**: if the destination map is Icarus or Kanturu 3rd Floor, the character must be equipped with wings, Dinorant, or Fenrir.
* **Gens battle zones**: characters without a Gens family cannot enter a map currently flagged as a Gens battle map.
* **Custom Arena**: destinations that resolve to a Custom Arena map route through the arena plugin's entry check.

Every failure path returns a localized notice and does not deduct zen.

## Examples

{% tabs %}
{% tab title="Standard destination" %}
{% code title="Move.txt fragment" %}

```
2         "Lorencia"    ""   2000   10   400   *   *   0   17
```

{% endcode %}

`/move Lorencia` (or `/move lorencia`, `/move LORENCIA`) costs 2000 zen, requires level 10+, and warps to gate 17's rectangle.
{% endtab %}

{% tab title="Free teleport" %}
{% code title="Move.txt fragment" %}

```
26        "Crywolf"     ""   0      10   400   *   *   0   118
```

{% endcode %}

Crywolf entrance is free; `RequireMoney` is `0`.
{% endtab %}

{% tab title="High-tier hunting ground" %}
{% code title="Move.txt fragment" %}

```
21        "Tarkan"      ""   8000   140  400   *   *   0   57
```

{% endcode %}

Tarkan costs 8000 zen and requires level 140+. MG / DL / RF characters pass the level check at 94+ because of the class-scaled modifier.
{% endtab %}
{% endtabs %}

## Cross-File Dependencies

| Attribute                                           | Related in                                                                                                                       |
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `Gate`                                              | [Gate.txt](/docs/data/gate.md) (should point at a `Flag=2` or `Flag=0` row on the target map)                                    |
| `MinLevel` / `MaxLevel` / `MinReset` / `MaxReset`   | Overlap with global level caps and reset rules in [Common.dat](/docs/gameserver/common-dat.md)                                   |
| `/move` command enable flag                         | [Command.xml](/docs/data/command-xml.md) controls whether the command is exposed at all; per-destination rules are enforced here |
| Atlans / Icarus / Kanturu 3rd Floor equipment gates | Wings, Dinorant, Fenrir definitions in [Item.txt](/docs/data/item/item.md)                                                       |
| PK-limit-free toggle                                | Server-wide switch, see [Common.dat](/docs/gameserver/common-dat.md)                                                             |
| Map indices used by `Gate` targets                  | [MapManager.xml](/docs/data/mapmanager.md)                                                                                       |

## Common Issues

* **`/move Name` says "unknown destination"** - the row is commented out, the quoted name differs from what was typed, or the file was edited but the server was not restarted. Case does not matter.
* **Teleport takes no money but also does not move** - zen is only deducted after the warp succeeds; a silent failure means every tile in the destination rectangle is unwalkable or a server-side gate fired. Check the notice output.
* **Teleport fires but lands in an entry gate** - `Gate` points at a `Flag=1` row; pick a `Flag=2` or `Flag=0` row instead.
* **Destination always lands on the same tile** - destination rectangle is 1x1; widen `(X, Y)` to `(TX, TY)` in Gate.txt.
* **Account-tier restriction ignored** - `AccountLevel=0` accepts everyone; raise to `1+` for paid-tier-only destinations.
* **Low-level players reach high-tier maps** - `MinLevel` is `*` / `-1` on that row, or the class-scaled two-thirds modifier brought an MG / DL / RF character under the intended floor. Set an explicit minimum and remember the class rule for every map except Swamp of Calmness.
