Skip to main content

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.3 executable name such as POLYGON.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 showing identity, video region, rendering, memory card and budget fields

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:

KindUseBinding
ButtonInteract, run, pause, confirm, or project-specific actionsCross, Circle, Square, Triangle, shoulder/stick buttons, D-Pad, Start, or Select
Move AxisTwo-dimensional character movementDPadOrLeftStick
Look AxisTwo-dimensional camera or aim inputRightStick

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.

ToolRequiredDescription
Polygon PS1 RuntimeYesPrecompiled Debug/Release runtime included with the product
CMakePrivate source builds onlyRuntime build generation
PSn00bSDKPrivate source builds onlyPS1 SDK used to compile the runtime
NinjaPrivate source builds onlyRuns a private runtime build
mkpsxisoYesGenerates .bin, .cue, and .iso package output
DuckStationNoRequired only for Build & Run PS1
Script EditorNoExternal 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.

Build Settings showing the ordered scene list, startup scene and available scenes

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.

After changing configuration:

  1. Run Build > Validate Project.
  2. Open Build > Show PS1 Budget.
  3. Fix Problems panel errors before building.

See Build Pipeline for what validation covers.