Skip to content

Add validated portable object and block script commands - #112

Closed
Roxas2712 wants to merge 25 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-script-world
Closed

Roxas2712 wants to merge 25 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-script-world

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 22, 2026 •

Copy link
Copy Markdown

Adds API-3 portable show_object(mapId, ref), hide_object(mapId, ref) and replace_block(bx, by, blockId) on Gen1–3.

Extracts pure validation plans from the public edit adapter so a script can preflight every row without mutating the map or relaxing public idle-world guards. Dispatch repeats validation against live stores. The owned script survives Gen1's native seamless map/default-runner replacement and restores the replacement idle runner afterward. Foreign overlays pause execution; unloading and changed saves/maps/runners cancel later effects.

Dependency: merge #111 and its prerequisites first. Stacked branch; focused change 7671788…25af724.

Validation at clean feature head 25af724d2ae554ec206ec4715ac10fc63b679aaa:

  • 117 targeted script checks; 238 existing public object/block checks and 5,268 existing portable script checks pass.
  • 104 cross-engine comparisons / 208 isolated loader runs against Gen1 79ea62f45fb2ea8f65d081a109431e4eb1bbdb36.
  • Full headless: 86/96 engine suites, SDK 3/3, B30 pass.
  • All-PR integration e1e60ec2f9c043408676c4a0edcea5a683567ccc: 91/101 engine suites, SDK 3/3, B30 and 104/208 cross-engine checks.
  • Both full commands exit 1 with exactly the same 27 FAIL lines as the fresh prerequisite baseline. No additional failures.
  • StyLua and git diff --check pass.

ROM-free tests exercise real loaders, native maps and native edit commands with fixture rendering/world seams. ROM-content tier is skipped; no ROM gameplay/pixel equivalence claim. Gen2/3 object scripts require the active map; the complete list is validated before its first effect.

Hosted Actions: API 3 contracts and ci are action_required (fork workflow approval). Hosted tests have not run; the results above are local.

# Conflicts:
#	src/mods/Loader.lua
# Conflicts:
#	docs/modding.md
#	src/mods/Loader.lua
#	src/world/WorldAPI.lua
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant