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 liketravel/setMapwas found in the game's client code; the transfer may be handled directly through the point'sdatafield 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 thepdadevelopers. - 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 eitherpdaorpda-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/spawnsfor 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 (
changeRelationor similar) was found — it looks like the+/-/resetactions 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+/-/resetactions 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/transferslists, when several options could potentially match — based on the code, the first matching item in array order wins, and an emptycondition: {}acts as the default option. This is an observation, not guaranteed documented behavior — test non-obvious condition combinations in the game. - The checkpoint types
KILLandTRAVEL(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/xpare 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.netandpda-quest-editor.pages.dev. This documentation links tostory.artux.net(the domain listed as primary by thepdanetworkbackend); 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.