Skip to main content

Open Questions

This documentation was assembled from the source code and data of four repositories (pda, pdanetwork, pda-assets, pda-quests) and the story editor. Some mechanics are only visible "from one side" in the open code (for example, a server command is called but its implementation isn't visible) — such spots are listed here honestly, so a new story writer doesn't waste time guessing and instead goes straight to the developers with a question.

Map and transfers

  • The exact mechanism for transferring between locations (a point of type 7 — "Transfer"). No explicit command like travel/setMap was found in the game's client code; the transfer may be handled directly through the point's data field in a part of the code outside this research's scope, or it may be entirely triggered by a Lua script. Before designing a complex network of transfers between new locations, confirm with the pda developers.
  • The location registry (the full list of GameMaps: which maps exist, in what order, how they're physically connected) wasn't found as a single file in either pda or pda-assets — it's probably either generated or stored in a part of the code/backend outside this research's scope.
  • The actual contents of points/spawns for existing locations (which points are already placed on Cordon, the Bar, etc.) weren't reviewed line by line — when working on a specific story, check against a current export from the editor.

Faction relations

  • Two potentially different number scales were found for relations: the base faction↔faction configuration (values up to ±100) and the "enemy/neutral/friend" classification for the player (thresholds in single digits, < -2 / < 3). It isn't fully clear whether this is a single scale interpreted differently, or two independent data layers. See The Relations System.
  • No explicit client-side command for programmatically changing relations (changeRelation or similar) was found — it looks like the +/-/reset actions available in the editor are either handled entirely server-side during sync, or through some mechanism not found directly in the client repository. Practical takeaway: use the +/-/reset actions as the documented public interface — they're confirmed to be supported by the editor and the action catalog, even if their internal implementation wasn't traced all the way through.

The story language

  • Condition priority in texts/transfers lists, when several options could potentially match — based on the code, the first matching item in array order wins, and an empty condition: {} acts as the default option. This is an observation, not guaranteed documented behavior — test non-obvious condition combinations in the game.
  • The checkpoint types KILL and TRAVEL (see Missions and Checkpoints) are present in the data structures, but don't appear in the real story content examined — their exact behavior hasn't been confirmed in practice, use them with caution and test separately.
  • The server-side commands item, item_condition, state, set, found in the backend's code, have no representation in the editor's UI and aren't documented — don't use them directly in "raw" JSON until you've confirmed their semantics with the developers; add/remove/money/xp are enough for standard scenarios.
  • Lua scripts (script/asyncScript) are technically supported and available in the editor, but there's no public description of the API available inside a script — see Lua Scripts.

The editor

  • The rules of the built-in stage validator (StageValidator) weren't reviewed line by line — rely on the error messages the editor itself shows when saving.
  • Public sources mention two editor addresses — story.artux.net and pda-quest-editor.pages.dev. This documentation links to story.artux.net (the domain listed as primary by the pdanetwork backend); if you don't have access at that address, confirm the current URL with the team.

How to help improve this documentation

If you're a developer or story writer and know the exact answer to one of the questions above, please update the relevant page and remove the note from here. This documentation lives in the artux-net/pda-site repository.