Adding a new map in Metin2 is, at first glance, far more of a "bookkeeping" job than you'd expect: copying a few files is not enough — the server (game core) and the client must agree on the exact same index number and the exact same coordinates. If that agreement slips by a single notch, the player gets disconnected the moment they teleport in, or the client crashes outright. In this guide I'll walk through introducing a fresh map from scratch while keeping both sides in sync.
Grasping the concept: what is a map, really?
In Metin2 a "map" is not a single file but a folder. Inside it live the height and tile data that describe the terrain, water and environment settings, scattered objects, and a handful of text files that govern server-side behaviour. The server identifies that folder through an index number; the client positions the same folder using world coordinates. So both sides talk about the same map but use different "keys". This is exactly where synchronization lives: the index and the coordinates must match byte for byte on both ends.
Pick a free index
The first rule is: don't create a collision. To see the indexes of existing maps, look at the map_index file in the server's data directory. The format is simple; each line is an index and a folder name separated by a tab:
1 metin2_map_a1
2 metin2_map_a3
3 metin2_map_b1
...
61 metin2_map_newmap
Choosing an unused, high number (say 61) is the safest move; low numbers are reserved for the official maps, and systems such as quests, items or guild wars may hold references baked into them. Keep the folder name meaningful and lowercase: metin2_map_newmap.
Server side: the folder and its text files
Copy your chosen map into the server's map data directory. For a map to open correctly on the server, the critical text files are:
- Setting.txt — Carries the core parameters such as
MapSize, environment settings and PvP/safe-zone flags. The size must be consistent with the width/height in atlasinfo. - Town.txt — Defines the coordinates of the three empires and the general teleport (Goto) point. A wrong coordinate dumps the player outside the map into the "void" and drops them.
- regen / *.txt — The regen files that manage mob and metin stone spawns. On a brand-new map you can leave them empty at first and fill them in later.
All of these files live inside the map's folder. A missing or broken Setting.txt makes the core silently skip that map while loading.
The server's central registries: map_index and atlasinfo
Once the folder is ready, update the two central registries. First add your new line to the map_index file shown above. Then add a line to atlasinfo.txt that describes the map's placement in the world:
metin2_map_newmap 409600 896000 4 4 0
The columns are, in order: folder name, the X base coordinate in the world, the Y base coordinate, the width and height (in sectree blocks), and a reserved field. The width and height here must match the MapSize in Setting.txt; otherwise part of the map is treated as nonexistent. Also make sure the new map's coordinate block does not overlap existing maps — atlasinfo lays the whole world onto a single grid, and two maps cannot share the same cell.
Tell the channel about the map: CONFIG and map_allow
The server is made of several channels and cores. Each core's CONFIG file holds a map_allow line (in some emulators a %env/map_allow entry) that states which maps that process is responsible for. If you don't add the new index to the relevant channel's allow list, the map exists on the server but no process loads it and the player cannot enter:
map_allow: 1 3 21 61
Restart the relevant channel after the change. Watch the logs: as the core boots it prints the map indexes it loads, and you should see 61 in that list.
Client side: mirror the same information
The server alone is not enough. The client must recognise the same map too, and the files here must be consistent with the server's:
- The map folder — Add it, with its terrain, texture and object data, into the client's
packarchive (usually under themapdirectory). - atlasinfo.txt — This file in the client root must contain coordinates that are byte-for-byte identical to the server's line. This is the most common mistake: updating it on the server and forgetting it on the client.
- World map and minimap — Add the
icon/worldmapimages and the minimap tiles so the player doesn't see a black screen when they press M.
Remember that index numbers are not separately defined on the client; the matching is done through the folder name and coordinates. That's why the folder name must be letter-for-letter identical on both sides.
Test it: teleport and read the logs
If everything is in place, log in and teleport to the map with GM rights. In most emulators a /goto or warp command takes you to the Goto coordinate from Town.txt. If you land on the right spot, can walk around, and the map opens with M, the sync is good. When something breaks it's almost always one of three suspects: an atlasinfo coordinate overlap, a server/client coordinate mismatch, or an index missing from map_allow. In that case, checking both the syserr logs and the client-side error file speeds up the diagnosis.
Frequently Asked Questions
The map exists on the server but I disconnect on entry — why?
The most common cause is a coordinate or size mismatch between the server and client atlasinfo.txt files. Make sure the line is identical in both and consistent with the MapSize in Setting.txt. The second cause is the index not being in the relevant channel's map_allow list.
Which index number should I pick?
Pick an unused, high number in the existing map_index file. Low numbers are reserved for official maps and the system references baked into them; using them leads to unexpected collisions.
Is adding it to the client alone enough?
No. The map must be defined on both sides. If you add it only to the client, the player can render the map, but since the server doesn't manage that region the character can't be logged in there, or is dropped instantly.
Want to push your new map live without headaches? We can set up the whole synchronization from the server map index to the client atlasinfo, plus regen and quest integration, together. Get in touch and let's talk through your project.