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 (
Xin 161-191,Yin 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 |
| Summon entry points | Gate.txt (MoveSummon does not use gate indices; it checks rectangles directly) |
| Mobility / Resurrection Talisman item definitions | Item.xml |
| Atlans / Icarus / Kanturu 3rd Floor equipment gates | Wings, Dinorant, Fenrir definitions in Item.xml |
| PK level thresholds | Common.dat |
Class-scaled MinLevel exception | Swamp of Calmness map index, see MapManager.xml |
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=0on every matching row. Flip to1on 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
Mapand 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
endor EOF; a missingendon a file with trailing whitespace can cause the last row to be consumed as a garbage token. Keep theendterminator 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 / 10matches exactly tile(10, 10).