Workflow: Configuration
Configure project settings and local build tools before relying on PS1 builds. The editor keeps portable project data separate from machine-specific paths.
Project Settings
Open Project > Project Settings.... Project-wide settings are stored in
polygon.project.json at the project root.
The dialog edits a draft. Save validates and commits the complete draft; Cancel or closing the dialog discards it. The settings body scrolls while the Save/Cancel footer remains available, so changing a value near the top never requires closing the window to reach the final action.
Key areas:
- Project identity: display name, project version, disc image name, and
uppercase PS1
8.3executable name such asPOLYGON.EXE. - Build target: NTSC 60 Hz or PAL 50 Hz.
- Rendering: far distance and ambient defaults. A shorter useful far distance preserves more ordering-table precision than an unnecessarily large one.
- Memory card: a unique 1-20 character uppercase file ID and player-facing save title.
- PS1 budgets: VRAM, RAM, SPU, triangle, texture, mesh, and script limits used by validation.
- Scripting: Lua heap size, script size, script count, and instruction budget settings.
- Script editor: optional external editor path, kept as local tool state.
- Input Action Map: semantic buttons and movement/look axes baked for the editor and PS1 runtimes.
Project Settings contains the build region and PS1 budget configuration. NTSC builds use a 60 Hz video/timing target; PAL builds use 50 Hz and center the 240-line display inside the PAL frame. Treat budget values as authoring targets; the post-bake report remains authoritative.
Project Settings rejects empty names, Windows-invalid disc names, malformed PS1 executable names, invalid memory-card IDs, non-positive or non-finite far distances, and values outside the runtime's supported budget ranges. Correct the displayed validation message before saving instead of editing the JSON around the rule.

Project Settings groups the video region, save identity and budgets in a scrollable form with Save and Cancel at the bottom. The values shown belong to Signal Station; they are not a preset for new projects.
Open the image to view it at full size.Scripting Workspace
In the Scripting section, select an external editor and choose Configure
Lua Workspace. The generator creates managed files under .polygon/lua/,
merges supported Lua Language Server and editor settings without overwriting
unrelated user keys, and adds a PS1 scripting validation task.
The generated API declarations and reference are derived from the same case-sensitive contract used by the engine. Regenerate them after updating Polygon Engine; do not maintain a separate hand-written copy. For exposed properties, diagnostics, hot reload, and PS1 bytecode rules, see Lua Authoring Workflow.
Input Action Map
The Input Action Map decouples gameplay intent from a physical PlayStation button. Native components store action names, Lua queries those names, and PS1 builds resolve them into a bounded table of physical bindings.
Each project supports up to 32 actions:
| Kind | Use | Binding |
|---|---|---|
| Button | Interact, run, pause, confirm, or project-specific actions | Cross, Circle, Square, Triangle, shoulder/stick buttons, D-Pad, Start, or Select |
| Move Axis | Two-dimensional character movement | DPadOrLeftStick |
| Look Axis | Two-dimensional camera or aim input | RightStick |
Use Add Button Action for project-specific buttons or Restore Default Actions to restore the engine defaults. Action names must be unique and must match exactly in Player Input, Interactable, and Lua. The editor warns when the same physical button is assigned to multiple button actions; decide whether that overlap is intentional before building.
function Update(gameObjectId, deltaTime)
local moveX, moveY = Input.GetAxis("Move")
if Input.GetButtonDown("Interact") then
GameObject.Invoke(gameObjectId, "Interact")
end
end
Validation rejects duplicate names, invalid bindings, incompatible axis kinds,
and references to missing actions. Physical constants such as Input.CROSS
remain available for low-level cases, but semantic actions are the recommended
gameplay path.
Tool Paths
Open Build > Tool Paths....
Tool paths are local to the current Windows user and project checkout. They are
stored under %APPDATA%/Polygon Engine/Editor/, not in
polygon.project.json. This prevents SDK, emulator, and editor paths from
breaking when a project is moved or shared.
| Tool | Required | Description |
|---|---|---|
| Polygon PS1 Runtime | Yes | Precompiled Debug/Release runtime included with the product |
| CMake | Private source builds only | Runtime build generation |
| PSn00bSDK | Private source builds only | PS1 SDK used to compile the runtime |
| Ninja | Private source builds only | Runs a private runtime build |
| mkpsxiso | Yes | Generates .bin, .cue, and .iso package output |
| DuckStation | No | Required only for Build & Run PS1 |
| Script Editor | No | External editor for opening Lua files |
Tool Paths reports configured, detected and missing tools separately. Required
third-party tools are downloaded only after approval, from version-pinned
official URLs, and stored under %LOCALAPPDATA%/Polygon Engine/Toolchains.
Detected DuckStation paths can be applied without entering the path manually.
Build Settings
Open Build > Build Settings... to choose:
- the ordered Scenes In Build list,
- the startup scene,
- and the current readiness of build tools and optional DuckStation testing.
Add and remove scenes with the available/build lists, reorder them deliberately,
and mark one included scene as startup. The startup scene must also be included
in Scenes In Build. Any scene loaded through Lua with SceneManager.LoadScene() also needs
to be included.
Save and Cancel use the same draft behavior as Project Settings. Tool paths are not copied into the portable project when this dialog is saved.

Scenes In Build defines the order and startup scene used by the exported game. Tool readiness reflects this machine; choose and validate your own project scenes before saving.
Open the image to view it at full size.Recommended Validation
After changing configuration:
- Run Build > Validate Project.
- Open Build > Show PS1 Budget.
- Fix Problems panel errors before building.
See Build Pipeline for what validation covers.