Creating a New Map
Adding a brand-new location is a task at the intersection of game design and level design, and it's harder
than placing points on an existing map. Below is the process reconstructed from the structure of the
pda-assets and pda repositories.
1. Draw the location in Tiled
A new map is a .tmx file edited in the free external
Tiled Map Editor:
- Create a new map with an orthogonal projection and an 8×8px tile size.
- Use the existing tileset
maps/tiles/tiles.tsxfrompda-assets— or extend it with your own tiles (textures go intomaps/tiles/). - The
tileslayer is the terrain grid itself (roads, grass, swamp, walls, etc. — from the tileset's palette). - The
objectgroup "objects"layer holds collisions: mark walls and passability boundaries with polylines, and obstacle hitboxes with rectangles. If needed, add objects with thefire=trueproperty for campfire spots.
2. Put the map into pda-assets
- Save the
.tmxfile intomaps/under a clear name (for example,zaton.tmx). - Add a preview/thumbnail of the location to
maps/textures/map_<name>.png— used in the location-selection UI and on the minimap.
3. Localization
Add the location's name to the localization file (locale/ui.properties). If you want the location to
participate in the background "radio chatter" of random stalker messages, add place-tied phrases to
templates/locations (for example, "near the checkpoint at Zaton").
4. Register the map in the game
The game (pda) itself doesn't hardcode the list of locations in its code — maps are represented by a
GameMap record (data, not code): id, title, level, the .tmx file's name, the player's starting
position (defPos). Adding a new map to the registry of available locations is a data change on the
game/backend side; as of this writing, the exact format of that registry (where the list of GameMaps is
physically stored) wasn't fully clarified by this research, and needs confirming with the pda/pdanetwork
developers before you can count on adding a map entirely on your own.
5. Fill it with a story
Once the location is registered, everything else is entirely in the story writer's hands, with no developer involvement needed:
- Add points through your story chapter (
points.<map_id>). - Add faction squads (
spawns.<map_id>). - Link a transfer point (
type: 7) on an existing neighboring location to the new map, so the player can reach it.
6. Add a transfer point from a neighboring map
To reach the new location, an existing neighboring map needs a point of type 7 (transfer), and the new map
needs a matching transfer point back to the neighbor. Both transfers are usually added by the same story
chapter that introduces the new location to the game.
This section was assembled from data about the resource structure and the map data model, but hasn't been
verified "live" by actually adding a new map to a built copy of the game. If any part of steps 4/6 doesn't
work as described, see Open Questions and check against the current pda
code.