From 114145d27e6db7d2ed9e8de6c975ed5713ccd5c1 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Mon, 17 Aug 2026 19:53:25 +0700 Subject: [PATCH 01/18] Prepare Steam Workshop edition --- .github/workflows/workshop-validation.yml | 145 ++++++++++++++++++ STEAM_WORKSHOP.md | 65 ++++++++ metamorph_creative_menu/NoitaPatcher/load.lua | 22 --- .../NoitaPatcher/noitapatcher.dll | Bin 617984 -> 0 bytes metamorph_creative_menu/mod.xml | 3 +- metamorph_creative_menu/workshop.xml | 8 + .../workshop_preview_image.png | Bin 0 -> 86739 bytes 7 files changed, 219 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/workshop-validation.yml create mode 100644 STEAM_WORKSHOP.md delete mode 100644 metamorph_creative_menu/NoitaPatcher/load.lua delete mode 100644 metamorph_creative_menu/NoitaPatcher/noitapatcher.dll create mode 100644 metamorph_creative_menu/workshop.xml create mode 100644 metamorph_creative_menu/workshop_preview_image.png diff --git a/.github/workflows/workshop-validation.yml b/.github/workflows/workshop-validation.yml new file mode 100644 index 0000000..8a00d31 --- /dev/null +++ b/.github/workflows/workshop-validation.yml @@ -0,0 +1,145 @@ +name: Validate Workshop build + +on: + push: + branches: [workshop] + workflow_dispatch: + +permissions: + contents: read + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Validate Workshop package rules + shell: bash + run: | + set -euo pipefail + test -f metamorph_creative_menu/workshop.xml + test -f metamorph_creative_menu/workshop_preview_image.png + test ! -d metamorph_creative_menu/NoitaPatcher + if grep -q 'request_no_api_restrictions' metamorph_creative_menu/mod.xml; then + echo 'Workshop mod.xml still requests unrestricted API' >&2 + exit 1 + fi + + python3 - <<'PY' + from pathlib import Path + allowed = {'.txt','.csv','.xml','.json','.bmp','.png','.lua','.frag','.vert','.bank','.bin','.plz'} + root = Path('metamorph_creative_menu') + bad = [] + for p in root.rglob('*'): + if not p.is_file(): + continue + rel = p.relative_to(root) + if rel.parts and rel.parts[0] == 'tests': + continue + if rel.as_posix() == 'README.txt': + continue + if p.suffix.lower() not in allowed: + bad.append(rel.as_posix()) + if bad: + raise SystemExit('Unsupported Workshop file types: ' + ', '.join(bad)) + print('Workshop extension whitelist: PASS') + PY + + - name: Check unrestricted Lua API usage + shell: bash + run: | + set -euo pipefail + python3 - <<'PY' + from pathlib import Path + import re + + root = Path('metamorph_creative_menu') + candidates = list((root / 'files').rglob('*.lua')) + [root / 'init.lua', root / 'settings.lua'] + pattern = re.compile(r'(?/dev/null + + - name: Run Workshop regression suite + working-directory: metamorph_creative_menu + shell: bash + run: | + python3 - <<'PY' + from pathlib import Path + import shutil + import subprocess + import sys + + root = Path('.').resolve() + texlua = shutil.which('texlua') + if not texlua: + raise SystemExit('texlua not found') + + # This contract intentionally belongs only to the full standalone build. + # Workshop must omit the bundled NoitaPatcher DLL, so only this one contract + # is excluded; all other discovered contracts and every behavioral Lua mock run. + excluded_contracts = {'standalone_patcher_contract.py'} + preferred = [ + 'syntax_contract.py', + 'architecture_contract.py', + 'behavior_coverage_contract.py', + 'localization_contract.py', + 'qa_phase_contract.py', + ] + + contracts = { + p.name: p for p in (root / 'tests').glob('*_contract.py') + if p.name not in excluded_contracts + } + ordered = [] + for name in preferred: + path = contracts.pop(name, None) + if path is not None: + ordered.append(path) + ordered.extend(contracts[name] for name in sorted(contracts)) + mocks = sorted((root / 'tests').glob('*_mock.lua'), key=lambda p: p.name) + + commands = [[sys.executable, str(p), str(root)] for p in ordered] + commands.extend([[texlua, str(p), str(root)] for p in mocks]) + for command in commands: + print('+', ' '.join(command), flush=True) + subprocess.run(command, check=True) + + print( + 'WORKSHOP_REGRESSION_TESTS=PASS ' + f'count={len(commands)} contracts={len(ordered)} behavioral_mocks={len(mocks)} ' + 'excluded=standalone_patcher_contract.py' + ) + PY diff --git a/STEAM_WORKSHOP.md b/STEAM_WORKSHOP.md new file mode 100644 index 0000000..ea03b96 --- /dev/null +++ b/STEAM_WORKSHOP.md @@ -0,0 +1,65 @@ +# Steam Workshop release guide + +This branch is the Steam Workshop edition of **Metamorph: Creative Menu**. + +The full standalone build remains on `main` and includes the bundled NoitaPatcher runtime. The Workshop edition intentionally does **not** request unrestricted API access and does **not** contain the bundled native NoitaPatcher DLL, because Noita Workshop does not support mods that require `request_no_api_restrictions="1"`, and the Workshop uploader only accepts its documented file types. + +## Files prepared for Workshop + +Inside `metamorph_creative_menu/`: + +- `mod.xml` — Workshop-safe metadata; no `request_no_api_restrictions`. +- `workshop.xml` — Workshop title, tags and upload exclusions. +- `workshop_preview_image.png` — 1280×720, 16:9 preview image. +- `NoitaPatcher/` — intentionally absent from this branch. +- `tests/` and `README.txt` remain in the repository for development but are excluded by `workshop.xml` from the Steam upload. + +## First publication + +1. Check out/download the `workshop` branch. +2. Copy the complete `metamorph_creative_menu` folder into `Noita/mods/`. +3. Start Noita once and test the Workshop build with **Unsafe mods disabled**. +4. Verify the menu opens with **TAB** and test the features that do not require the standalone NoitaPatcher runtime. +5. Close Noita. +6. From the Noita installation directory run `workshop_upload.bat`, or run `noita_dev.exe -workshop_upload`. +7. Select `metamorph_creative_menu` in the uploader and create the Workshop item. +8. After the first upload, keep the generated `workshop_id.txt`. It identifies the existing Workshop item for future updates. Do not replace it with another item's ID. +9. Open the new Steam Workshop page, add the full description/screenshots, then set visibility to Public when ready. + +## Suggested Workshop description + +**Metamorph: Creative Menu (MCM)** is a creative toolkit for Noita: edit wands and spells, spawn items and liquids, manage perks/effects, transform into supported creatures, possess existing creatures, control weather, use reversible World Rules and spawn a PLAYER-style companion. + +### Steam Workshop edition + +This Workshop build is intentionally compatible with Noita's Workshop restrictions. It does not bundle the native NoitaPatcher DLL and does not request unrestricted API access. + +Most normal menu/editor functionality remains available, but some advanced recovery, player-authority, exact entity serialization and other NoitaPatcher-powered paths are only available in the **Full Standalone Version**. + +**Full Standalone Version:** +https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build + +**Source / Issues:** +https://github.com/zerodancing/Metamorph-Creative-Menu + +### Controls + +- **TAB** — open/close Creative Menu. +- **TAB while transformed** — request return to human form. +- **G** by default — possess a supported creature under the cursor. +- LMB/RMB actions are shown in the menu for each catalog entry. + +### Entangled Worlds + +Entangled Worlds integration is experimental. For multiplayer, use the same MCM build on every peer and a compatible EW setup. + +## Updating the Workshop item + +For updates, work from the `workshop` branch, preserve the Workshop item's `workshop_id.txt`, copy the updated mod folder into the local Noita `mods` directory and run the uploader again. Keep `description=""` in `workshop.xml` if you want Steam's manually edited Workshop description to remain untouched by uploads. + +## Branch policy + +- `main` = full standalone GitHub build. +- `workshop` = Steam Workshop-safe build. +- Do not merge the Workshop removal of NoitaPatcher back into `main`. +- When syncing future gameplay changes from `main` into `workshop`, re-check `mod.xml`, `workshop.xml`, the absence of `NoitaPatcher/`, and test with Unsafe mods disabled before uploading. diff --git a/metamorph_creative_menu/NoitaPatcher/load.lua b/metamorph_creative_menu/NoitaPatcher/load.lua deleted file mode 100644 index 5456432..0000000 --- a/metamorph_creative_menu/NoitaPatcher/load.lua +++ /dev/null @@ -1,22 +0,0 @@ --- You're supposed to `dofile_once("path/to/load.lua")` this file. - -local orig_do_mod_appends = do_mod_appends - -do_mod_appends = function(filename, ...) - do_mod_appends = orig_do_mod_appends - do_mod_appends(filename, ...) - - local noitapatcher_path = string.match(filename, "(.*)/load.lua") - if not noitapatcher_path then - print("Couldn't detect NoitaPatcher path") - end - - __nsew_path = noitapatcher_path .. "/noitapatcher/nsew/" - - package.cpath = package.cpath .. ";./" .. noitapatcher_path .. "/?.dll" - package.path = package.path .. ";./" .. noitapatcher_path .. "/?.lua" - - -- Lua's loader should now be setup properly: - -- local np = require("noitapatcher") - -- local nsew = require("noitapatcher.nsew") -end diff --git a/metamorph_creative_menu/NoitaPatcher/noitapatcher.dll b/metamorph_creative_menu/NoitaPatcher/noitapatcher.dll deleted file mode 100644 index 8b44f4c37c47a01f655cda8fcf5fed81140aabd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617984 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

jWa9b{qmY>2eU!o^s6eXOH}sD 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


=*r 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 Y0Q0fhrHnq3S%LE*?f?J$&;J6y08t~BbN~PV diff --git a/metamorph_creative_menu/mod.xml b/metamorph_creative_menu/mod.xml index 78a53ba..f1d6b3b 100644 --- a/metamorph_creative_menu/mod.xml +++ b/metamorph_creative_menu/mod.xml @@ -1,7 +1,6 @@ diff --git a/metamorph_creative_menu/workshop.xml b/metamorph_creative_menu/workshop.xml new file mode 100644 index 0000000..6e8e48b --- /dev/null +++ b/metamorph_creative_menu/workshop.xml @@ -0,0 +1,8 @@ + + diff --git a/metamorph_creative_menu/workshop_preview_image.png b/metamorph_creative_menu/workshop_preview_image.png new file mode 100644 index 0000000000000000000000000000000000000000..28f5e91b95cefc4552018ec787a96be80adbb0e8 GIT binary patch literal 86739 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

C1^$+wLPSgN`H^vk?Oh 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 z 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 Date: Mon, 17 Aug 2026 20:21:22 +0700 Subject: [PATCH 02/18] Tighten Workshop upload exclusions --- metamorph_creative_menu/workshop.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metamorph_creative_menu/workshop.xml b/metamorph_creative_menu/workshop.xml index 6e8e48b..cf832b6 100644 --- a/metamorph_creative_menu/workshop.xml +++ b/metamorph_creative_menu/workshop.xml @@ -2,7 +2,7 @@ name="Metamorph: Creative Menu" description="" tags="gameplay,quality of life,spells,perks,player characters,creatures,items,cheats" - dont_upload_folders="NoitaPatcher|tests" + dont_upload_folders="NoitaPatcher|tests|files\qa|files\diagnostics" dont_upload_files="README.txt" > From 617adbf1281ab264ede9f7128f9614eec5724428 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Mon, 17 Aug 2026 20:21:55 +0700 Subject: [PATCH 03/18] Strengthen Steam Workshop validation --- .github/workflows/workshop-validation.yml | 136 +++++++++++++++++++--- 1 file changed, 117 insertions(+), 19 deletions(-) diff --git a/.github/workflows/workshop-validation.yml b/.github/workflows/workshop-validation.yml index 8a00d31..3444a3d 100644 --- a/.github/workflows/workshop-validation.yml +++ b/.github/workflows/workshop-validation.yml @@ -14,36 +14,132 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Validate Workshop package rules + - name: Validate Workshop metadata and package rules shell: bash run: | set -euo pipefail - test -f metamorph_creative_menu/workshop.xml - test -f metamorph_creative_menu/workshop_preview_image.png - test ! -d metamorph_creative_menu/NoitaPatcher - if grep -q 'request_no_api_restrictions' metamorph_creative_menu/mod.xml; then - echo 'Workshop mod.xml still requests unrestricted API' >&2 - exit 1 - fi - python3 - <<'PY' from pathlib import Path - allowed = {'.txt','.csv','.xml','.json','.bmp','.png','.lua','.frag','.vert','.bank','.bin','.plz'} + import re + import struct + import xml.etree.ElementTree as ET + root = Path('metamorph_creative_menu') + required = [ + root / 'mod.xml', + root / 'mod_id.txt', + root / 'init.lua', + root / 'settings.lua', + root / 'translations.csv', + root / 'workshop.xml', + root / 'workshop_preview_image.png', + root / 'dev_mode.lua', + ] + missing = [p.relative_to(root).as_posix() for p in required if not p.is_file()] + if missing: + raise SystemExit('Missing Workshop files: ' + ', '.join(missing)) + + if (root / 'NoitaPatcher').exists(): + raise SystemExit('Workshop branch must not contain NoitaPatcher/') + dlls = [p.relative_to(root).as_posix() for p in root.rglob('*.dll')] + if dlls: + raise SystemExit('Native DLLs are not allowed in Workshop build: ' + ', '.join(dlls)) + + mod_id = (root / 'mod_id.txt').read_text(encoding='utf-8').strip() + if mod_id != 'metamorph_creative_menu': + raise SystemExit(f'Unexpected mod_id.txt value: {mod_id!r}') + + dev_text = (root / 'dev_mode.lua').read_text(encoding='utf-8') + if not re.search(r'(?m)^\s*dev_mode\s*=\s*0\s*$', dev_text): + raise SystemExit('Workshop build must ship with dev_mode = 0') + + mod_root = ET.parse(root / 'mod.xml').getroot() + if mod_root.tag != 'Mod': + raise SystemExit('mod.xml root must be ') + if mod_root.attrib.get('name') != 'Metamorph: Creative Menu': + raise SystemExit('Unexpected mod.xml name') + if 'request_no_api_restrictions' in mod_root.attrib: + raise SystemExit('Workshop mod.xml must not request unrestricted API') + if mod_root.attrib.get('is_game_mode', '0') not in {'0', 'false'}: + raise SystemExit('Workshop build must not be a game mode') + + workshop_root = ET.parse(root / 'workshop.xml').getroot() + if workshop_root.tag != 'Mod': + raise SystemExit('workshop.xml root must be ') + if workshop_root.attrib.get('name') != 'Metamorph: Creative Menu': + raise SystemExit('Unexpected workshop.xml name') + if workshop_root.attrib.get('description') != '': + raise SystemExit('workshop.xml description must remain empty so Steam page text is not overwritten') + + documented_tags = { + 'gameplay','graphics','quality of life','translations','perks','spells', + 'player characters','loadouts','biomes','total conversions','game modes', + 'creatures','bosses','alchemy','tweaks','items','audio','cheats','funny', + 'streaming integration','mod dependencies', + } + tags = [x.strip() for x in workshop_root.attrib.get('tags', '').split(',') if x.strip()] + unknown_tags = sorted(set(tags) - documented_tags) + if unknown_tags: + raise SystemExit('Unknown Workshop tags: ' + ', '.join(unknown_tags)) + if 'gameplay' not in tags: + raise SystemExit('Workshop tags must include gameplay') + + def split_pipe(value): + return [x.strip().replace('\\', '/') for x in value.split('|') if x.strip()] + + excluded_dirs = set(split_pipe(workshop_root.attrib.get('dont_upload_folders', ''))) + excluded_files = set(split_pipe(workshop_root.attrib.get('dont_upload_files', ''))) + required_excluded_dirs = {'NoitaPatcher', 'tests', 'files/qa', 'files/diagnostics'} + missing_exclusions = sorted(required_excluded_dirs - excluded_dirs) + if missing_exclusions: + raise SystemExit('Missing Workshop folder exclusions: ' + ', '.join(missing_exclusions)) + if 'README.txt' not in excluded_files: + raise SystemExit('README.txt must be excluded from Workshop upload') + + preview = root / 'workshop_preview_image.png' + data = preview.read_bytes() + if len(data) < 24 or data[:8] != b'\x89PNG\r\n\x1a\n' or data[12:16] != b'IHDR': + raise SystemExit('workshop_preview_image.png is not a valid PNG with IHDR header') + width, height = struct.unpack('>II', data[16:24]) + if (width, height) != (1280, 720): + raise SystemExit(f'Workshop preview must be 1280x720, got {width}x{height}') + if width * 9 != height * 16: + raise SystemExit('Workshop preview must be exactly 16:9') + if preview.stat().st_size >= 1_000_000: + raise SystemExit('Workshop preview should stay below 1 MB') + + allowed = {'.txt','.csv','.xml','.json','.bmp','.png','.lua','.frag','.vert','.bank','.bin','.plz'} bad = [] + uploaded = [] + symlinks = [] for p in root.rglob('*'): if not p.is_file(): continue rel = p.relative_to(root) - if rel.parts and rel.parts[0] == 'tests': + rel_s = rel.as_posix() + if p.is_symlink(): + symlinks.append(rel_s) continue - if rel.as_posix() == 'README.txt': + if any(rel_s == d or rel_s.startswith(d + '/') for d in excluded_dirs): continue + if rel_s in excluded_files: + continue + uploaded.append(rel_s) if p.suffix.lower() not in allowed: - bad.append(rel.as_posix()) + bad.append(rel_s) + if symlinks: + raise SystemExit('Symlinks are not allowed in Workshop package: ' + ', '.join(symlinks)) if bad: raise SystemExit('Unsupported Workshop file types: ' + ', '.join(bad)) - print('Workshop extension whitelist: PASS') + for essential in ['mod.xml','mod_id.txt','init.lua','settings.lua','translations.csv','workshop.xml','workshop_preview_image.png']: + if essential not in uploaded: + raise SystemExit('Essential file excluded from upload: ' + essential) + + if (root / 'workshop_id.txt').exists(): + print('Workshop metadata: existing workshop_id.txt detected (update mode)') + else: + print('Workshop metadata: no workshop_id.txt yet (first-publication mode)') + print(f'Workshop metadata/package: PASS uploaded_files={len(uploaded)} preview={width}x{height} preview_bytes={preview.stat().st_size}') PY - name: Check unrestricted Lua API usage @@ -58,7 +154,9 @@ jobs: candidates = list((root / 'files').rglob('*.lua')) + [root / 'init.lua', root / 'settings.lua'] pattern = re.compile(r'(? Date: Mon, 17 Aug 2026 20:26:22 +0700 Subject: [PATCH 04/18] Align Steam release guide with validated package --- STEAM_WORKSHOP.md | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/STEAM_WORKSHOP.md b/STEAM_WORKSHOP.md index ea03b96..654958b 100644 --- a/STEAM_WORKSHOP.md +++ b/STEAM_WORKSHOP.md @@ -12,19 +12,24 @@ Inside `metamorph_creative_menu/`: - `workshop.xml` — Workshop title, tags and upload exclusions. - `workshop_preview_image.png` — 1280×720, 16:9 preview image. - `NoitaPatcher/` — intentionally absent from this branch. -- `tests/` and `README.txt` remain in the repository for development but are excluded by `workshop.xml` from the Steam upload. +- `tests/`, `files/qa/`, `files/diagnostics/` and `README.txt` remain available in the repository where applicable for development/review, but are excluded by `workshop.xml` from the Steam upload. +- Release runtime ships with `dev_mode = 0`. + +The Workshop validation workflow parses both XML files, checks the mod ID and release dev-mode flag, verifies that no DLL or unrestricted-API request is present, validates the actual PNG header/dimensions/size, simulates the upload exclusions and extension whitelist, scans the uploaded runtime for unrestricted Lua API usage, and runs the Workshop regression suite. ## First publication 1. Check out/download the `workshop` branch. -2. Copy the complete `metamorph_creative_menu` folder into `Noita/mods/`. -3. Start Noita once and test the Workshop build with **Unsafe mods disabled**. -4. Verify the menu opens with **TAB** and test the features that do not require the standalone NoitaPatcher runtime. -5. Close Noita. -6. From the Noita installation directory run `workshop_upload.bat`, or run `noita_dev.exe -workshop_upload`. -7. Select `metamorph_creative_menu` in the uploader and create the Workshop item. -8. After the first upload, keep the generated `workshop_id.txt`. It identifies the existing Workshop item for future updates. Do not replace it with another item's ID. -9. Open the new Steam Workshop page, add the full description/screenshots, then set visibility to Public when ready. +2. If a full standalone MCM copy is already installed locally, **delete the old `Noita/mods/metamorph_creative_menu` folder first**. Do not copy the Workshop build over it: otherwise a stale `NoitaPatcher/noitapatcher.dll` can remain on disk and invalidate the Workshop-only test. +3. Copy the complete `metamorph_creative_menu` folder from the `workshop` branch into `Noita/mods/`. +4. Start Noita once and test the Workshop build with **Unsafe mods disabled**. +5. Verify the menu opens with **TAB**. Smoke-test an item spawn, a wand/spell edit, perk apply/remove, weather, a supported World Rule, a normal transformation and **TAB return**. +6. Do not use transformed-form death as a Workshop acceptance test: the hard serialized death handoff is a NoitaPatcher-powered standalone feature and is not guaranteed in this build. +7. Close Noita. +8. From the Noita installation directory run `workshop_upload.bat`, or run `noita_dev.exe -workshop_upload`. +9. Select `metamorph_creative_menu` in the uploader and create the Workshop item. +10. After the first upload, keep the generated `workshop_id.txt`. It identifies the existing Workshop item for future updates. Do not replace it with another item's ID. +11. Open the new Steam Workshop page, add the full description/screenshots, then set visibility to Public when ready. ## Suggested Workshop description @@ -34,7 +39,7 @@ Inside `metamorph_creative_menu/`: This Workshop build is intentionally compatible with Noita's Workshop restrictions. It does not bundle the native NoitaPatcher DLL and does not request unrestricted API access. -Most normal menu/editor functionality remains available, but some advanced recovery, player-authority, exact entity serialization and other NoitaPatcher-powered paths are only available in the **Full Standalone Version**. +Most normal menu/editor functionality remains available, but some advanced recovery, player-authority, exact entity serialization and other NoitaPatcher-powered paths are only available in the **Full Standalone Version**. Rules that require an unavailable native capability are presented as unsupported instead of pretending to work. **Full Standalone Version:** https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build @@ -45,21 +50,21 @@ https://github.com/zerodancing/Metamorph-Creative-Menu ### Controls - **TAB** — open/close Creative Menu. -- **TAB while transformed** — request return to human form. +- **TAB while transformed** — request return to human form through the normal native polymorph path. - **G** by default — possess a supported creature under the cursor. - LMB/RMB actions are shown in the menu for each catalog entry. ### Entangled Worlds -Entangled Worlds integration is experimental. For multiplayer, use the same MCM build on every peer and a compatible EW setup. +Entangled Worlds integration is experimental. For multiplayer, use the same MCM build on every peer and a compatible EW setup. If another enabled environment exposes a compatible NoitaPatcher bridge, MCM can reuse capabilities that are actually present, but the Workshop package itself does not include or require that native provider. ## Updating the Workshop item -For updates, work from the `workshop` branch, preserve the Workshop item's `workshop_id.txt`, copy the updated mod folder into the local Noita `mods` directory and run the uploader again. Keep `description=""` in `workshop.xml` if you want Steam's manually edited Workshop description to remain untouched by uploads. +For updates, work from the `workshop` branch, preserve the Workshop item's `workshop_id.txt`, replace the local Noita mod folder with the updated Workshop folder and run the uploader again. Keep `description=""` in `workshop.xml` if you want Steam's manually edited Workshop description to remain untouched by uploads. ## Branch policy - `main` = full standalone GitHub build. - `workshop` = Steam Workshop-safe build. - Do not merge the Workshop removal of NoitaPatcher back into `main`. -- When syncing future gameplay changes from `main` into `workshop`, re-check `mod.xml`, `workshop.xml`, the absence of `NoitaPatcher/`, and test with Unsafe mods disabled before uploading. +- When syncing future gameplay changes from `main` into `workshop`, re-check `mod.xml`, `workshop.xml`, the absence of `NoitaPatcher/`, `dev_mode = 0`, and test with Unsafe mods disabled before uploading. From 442d6c7d6d9ba3859f7a6ad0af1c888c796ef8bc Mon Sep 17 00:00:00 2001 From: zerodancing Date: Mon, 17 Aug 2026 20:36:59 +0700 Subject: [PATCH 05/18] Publish stable Workshop build archive --- .github/workflows/publish-workshop-build.yml | 106 +++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 .github/workflows/publish-workshop-build.yml diff --git a/.github/workflows/publish-workshop-build.yml b/.github/workflows/publish-workshop-build.yml new file mode 100644 index 0000000..f20bf66 --- /dev/null +++ b/.github/workflows/publish-workshop-build.yml @@ -0,0 +1,106 @@ +name: Publish Workshop build + +on: + push: + branches: [workshop] + workflow_dispatch: + +permissions: + contents: write + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Validate Workshop build first + shell: bash + run: | + set -euo pipefail + test -f metamorph_creative_menu/mod.xml + test -f metamorph_creative_menu/mod_id.txt + test -f metamorph_creative_menu/init.lua + test -f metamorph_creative_menu/workshop.xml + test -f metamorph_creative_menu/workshop_preview_image.png + test ! -d metamorph_creative_menu/NoitaPatcher + if find metamorph_creative_menu -type f -iname '*.dll' | grep -q .; then + echo 'Workshop package contains a DLL' >&2 + exit 1 + fi + if grep -q 'request_no_api_restrictions' metamorph_creative_menu/mod.xml; then + echo 'Workshop mod.xml requests unrestricted API' >&2 + exit 1 + fi + + - name: Package ready-to-upload Workshop mod + shell: bash + run: | + set -euo pipefail + rm -rf dist + mkdir -p dist/metamorph_creative_menu + cp -a metamorph_creative_menu/. dist/metamorph_creative_menu/ + rm -rf \ + dist/metamorph_creative_menu/NoitaPatcher \ + dist/metamorph_creative_menu/tests \ + dist/metamorph_creative_menu/files/qa \ + dist/metamorph_creative_menu/files/diagnostics + rm -f dist/metamorph_creative_menu/README.txt + ( + cd dist + zip -qr ../Metamorph-Creative-Menu-Workshop.zip metamorph_creative_menu + ) + + python3 - <<'PY' + from pathlib import Path + import zipfile + + archive = Path('Metamorph-Creative-Menu-Workshop.zip') + with zipfile.ZipFile(archive) as z: + names = set(z.namelist()) + required = { + 'metamorph_creative_menu/mod.xml', + 'metamorph_creative_menu/mod_id.txt', + 'metamorph_creative_menu/init.lua', + 'metamorph_creative_menu/workshop.xml', + 'metamorph_creative_menu/workshop_preview_image.png', + } + missing = sorted(required - names) + if missing: + raise SystemExit('Missing required files in Workshop ZIP: ' + ', '.join(missing)) + forbidden = [ + n for n in names + if n.lower().endswith('.dll') + or n.startswith('metamorph_creative_menu/NoitaPatcher/') + or n.startswith('metamorph_creative_menu/tests/') + or n.startswith('metamorph_creative_menu/files/qa/') + or n.startswith('metamorph_creative_menu/files/diagnostics/') + ] + if forbidden: + raise SystemExit('Forbidden files in Workshop ZIP: ' + ', '.join(sorted(forbidden))) + print(f'Workshop ZIP: PASS bytes={archive.stat().st_size}') + PY + + - name: Publish stable Workshop download + env: + GH_TOKEN: ${{ github.token }} + shell: bash + run: | + set -euo pipefail + TAG=workshop-latest + ASSET=Metamorph-Creative-Menu-Workshop.zip + + git tag -f "$TAG" "$GITHUB_SHA" + git push origin "refs/tags/$TAG" --force + + if gh release view "$TAG" >/dev/null 2>&1; then + gh release edit "$TAG" \ + --title "Latest Steam Workshop build" \ + --notes "Ready-to-upload Steam Workshop edition. This build intentionally excludes bundled NoitaPatcher/DLL and unrestricted API access." + else + gh release create "$TAG" \ + --title "Latest Steam Workshop build" \ + --notes "Ready-to-upload Steam Workshop edition. This build intentionally excludes bundled NoitaPatcher/DLL and unrestricted API access." + fi + + gh release upload "$TAG" "$ASSET" --clobber From 95e230cf9a2a5edc78f11cd2185f1e9b508c8550 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Mon, 17 Aug 2026 21:32:57 +0700 Subject: [PATCH 06/18] Stage corrected Workshop preview --- .../workflows/replace-workshop-preview.yml | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/replace-workshop-preview.yml diff --git a/.github/workflows/replace-workshop-preview.yml b/.github/workflows/replace-workshop-preview.yml new file mode 100644 index 0000000..968de19 --- /dev/null +++ b/.github/workflows/replace-workshop-preview.yml @@ -0,0 +1,70 @@ +name: Replace Workshop preview + +on: + push: + branches: [workshop] + +permissions: + contents: write + +jobs: + replace-preview: + if: github.event.head_commit.message == 'Stage corrected Workshop preview' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Build the correct Workshop preview from the accepted MCM banner + shell: bash + run: | + set -euo pipefail + python3 -m pip install --quiet pillow + python3 - <<'PY' + from PIL import Image + from pathlib import Path + + src = Path('assets/metamorph-creative-menu-banner.jpg') + out = Path('metamorph_creative_menu/workshop_preview_image.png') + + img = Image.open(src).convert('RGB') + w, h = img.size + + # The accepted Social Preview artwork is the centered 2:1 crop of the + # repository banner. Preserve that composition, then pad to Noita's + # 16:9 Workshop preview without stretching the title artwork. + target_ratio = 2.0 + if w / h > target_ratio: + crop_w = int(round(h * target_ratio)) + left = (w - crop_w) // 2 + img = img.crop((left, 0, left + crop_w, h)) + else: + crop_h = int(round(w / target_ratio)) + top = (h - crop_h) // 2 + img = img.crop((0, top, w, top + crop_h)) + + img = img.resize((1280, 640), Image.Resampling.LANCZOS) + canvas = Image.new('RGB', (1280, 720), (0, 0, 0)) + canvas.paste(img, (0, 40)) + + # Indexed PNG keeps the Workshop preview compact while preserving the artwork. + preview = canvas.quantize( + colors=256, + method=Image.Quantize.MEDIANCUT, + dither=Image.Dither.FLOYDSTEINBERG, + ) + preview.save(out, 'PNG', optimize=True, compress_level=9) + print(f'preview={out} size={out.stat().st_size} bytes') + PY + + - name: Commit corrected preview and remove one-shot workflow + shell: bash + run: | + set -euo pipefail + rm -f .github/workflows/replace-workshop-preview.yml + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add metamorph_creative_menu/workshop_preview_image.png .github/workflows/replace-workshop-preview.yml + git commit -m "Use correct MCM artwork for Workshop preview" + git push origin HEAD:workshop From df0f89b3c615bd4f8ad9027ff98fadd3c7f9e37b Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:22:50 +0700 Subject: [PATCH 07/18] Clean Workshop package README --- metamorph_creative_menu/README.txt | 368 +---------------------------- 1 file changed, 1 insertion(+), 367 deletions(-) diff --git a/metamorph_creative_menu/README.txt b/metamorph_creative_menu/README.txt index 90852e3..0255892 100644 --- a/metamorph_creative_menu/README.txt +++ b/metamorph_creative_menu/README.txt @@ -1,367 +1 @@ -Metamorph: Creative Menu — project behavior and architecture contract -===================================================================== - -About the project ------------------ - -Metamorph: Creative Menu (MCM) is a creative/developer menu for Noita. The project is developed with AI assistance and is intended to remain useful both as a player-facing creative tool and as a developer/debugging toolkit. - -MCM is standalone in single player. The required NoitaPatcher runtime and Base64 codec are bundled with the mod. Entangled Worlds / Noita Proxy (`quant.ew`) is optional and only provides the experimental multiplayer integration layer. If EW already exposes a compatible NoitaPatcher API, MCM may reuse it instead of loading a second provider. - -The bundled NoitaPatcher is a native API extension. Full MCM functionality therefore requires Noita's Unsafe mods / unrestricted API permission. Bundling NoitaPatcher removes the hard dependency on the EW folder; it does not turn native DLL functionality into the safe Noita API. - -This document defines the player-visible behavior and the architecture contract that must be preserved during refactors. It is not an exhaustive description of every implementation detail. The code may contain additional recovery state, helper entities, RPCs, compatibility shims, diagnostics, caches and engine workarounds required to preserve the behavior described here. - -Core development rule: working behavior must not be removed or simplified merely because its implementation looks complicated, unusual or workaround-heavy. Before deleting or substantially rewriting such code, determine which Noita/EW/runtime problem it solves and prove with tests that the replacement preserves the same behavior. - -Equal host and peer rights --------------------------- - -In supported multiplayer scenarios, host and peer users are intended to have the same MCM-facing rights and capabilities. The host may still be a technical routing, confirmation or rebroadcast point when required by Entangled Worlds, but that does not make a feature host-only from the user's perspective. - -Any old comment, document or test claiming that peers must be forbidden from changing weather, World Rules or another menu feature merely because they are not the host is obsolete unless a newer explicit protocol requirement says otherwise. - -Main behavior -------------- - -1. Creative menu -~~~~~~~~~~~~~~~~ - -TAB opens the creative/developer menu. The current tabs are Spells, Items, Perks, Mobs, Effects, Weather and Rules. Search is part of normal use in large catalogs and must survive refactoring. - -2. Spells -~~~~~~~~~ - -The Spells tab can edit the currently held wand: select a slot, place supported spells in arbitrary order, replace an existing action, delete it or drop it into the world. Operations that must be visible to other players should use the EW integration when EW is active. - -Spell replacement is transactional: do not destroy the old spell until the replacement has been attached and verified. - -3. Items -~~~~~~~~ - -The Items tab can spawn supported Noita items such as wands, books, eggs, stones, containers, quest objects and other catalog entries. - -LMB spawns the item near the player. RMB attempts to place it into the appropriate inventory row. The standard quick inventory has four wand slots and four item slots. If no suitable slot is available, the item must remain in the world rather than disappearing, replacing another item or corrupting inventory state. - -World-spawn and inventory operations that require multiplayer visibility must use the EW bridge when EW is enabled. - -4. Perks -~~~~~~~~ - -LMB spawns a normal perk pickup. RMB applies the perk to the local player through the canonical pickup path. The editor can also remove supported perks, including perks obtained outside MCM when a safe inverse is known. - -Removing a perk must remove the state owned by that perk without blindly overwriting unrelated state from other perks, mods or the game. Owned state may include entities, companions, tentacles, visual effects, components, physics changes, statistics, globals, run flags and world changes. - -Perks remain per-player. Multiplayer synchronization should expose visible/shared consequences without turning one player's perk ownership into every player's perk ownership. - -5. Search -~~~~~~~~~ - -Large catalogs must remain searchable. Search supports translated names and relevant IDs/paths/descriptions depending on the tab. Exclusion tokens and normalized separators are part of the current search behavior. - -6. Creatures, objects and transformations -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In the MOBS catalog, LMB spawns an entry and RMB transforms the current player into it. The system attempts to preserve useful native attacks, animations, movement, physics, presentation and authored behavior while disabling AI that would fight player controls or cause duplicate simulation. - -Compatibility is exact-path based. Do not add broad substring blacklists such as blocking every filename containing `physics`, `effect`, `sprite` or `body`. Different XML paths with the same basename are separate authored entities and must remain separate catalog entries. - -Known unsafe forms are recorded as exact paths. Known safe exceptions are also exact paths. Wrapper-to-canonical routing is permitted only for explicitly validated path pairs. Static XML analysis and native polymorph-table membership are useful signals, but a hard engine crash cannot be proven impossible by Lua `pcall` inside the same process. - -7. Returning to human form -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -While transformed, TAB must return the player to the normal human form. Native polymorph expiry is the primary route; serialized backup/hard recovery is a fallback. TAB return is a normal part of the form lifecycle, not an optional emergency-only feature. - -8. Death while transformed -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Fatal damage to a supported transformed body should kill the creature form while allowing the player to continue as a restored human at the death position instead of ending the run because the temporary body died. - -The form corpse should remain when appropriate. Human inventory and relevant player state should survive the handoff. The death flow is engine-sensitive, so recovery code must treat unknown player-authority states conservatively and must not destroy an entity when authority is uncertain. - -9. Special forms -~~~~~~~~~~~~~~~~ - -Boss Dragon, Maggot Tiny and other unusual families may require dedicated adapters. Do not re-enable original AI merely to make an adapter look simpler: competing AI can create duplicated attacks, movement conflicts, lag, physics problems and multiplayer desync. - -10. Possession -~~~~~~~~~~~~~~ - -The default possession key is G and can be changed in mod settings. The player points at a supported creature and takes over its compatible form. The original target is retired only after the transformation is confirmed. Possession should feel like taking the target's place, not creating an unrelated duplicate nearby. - -11. Effects -~~~~~~~~~~~ - -The Effects tab applies supported status/timed effects and removes them when safe. Removal must preserve unrelated protected/perk/internal effects and restore editor-owned state where possible. - -12. Weather -~~~~~~~~~~~ - -The Weather tab controls time presets, weather presets and advanced supported WorldState fields such as cloud cover, fog, wind, rain and lightning behavior. Weather state is synchronized through EW when EW is active. Host and peer users have equal MCM-facing rights; routing through a host is an implementation detail. - -13. World Rules -~~~~~~~~~~~~~~~ - -World Rules are reversible overrides rather than permanent save edits. NATIVE/RESET restores the baseline captured for state owned by MCM. Repeated multipliers must not accumulate against an already overridden value. Critical persistent values keep recovery information so a later Lua session can restore native state after an interrupted run. - -Expensive physics/entity scans must not run directly from GUI draw/click paths. UI actions update desired rule state; broad application belongs in bounded world-update work. - -14. Experimental multiplayer integration -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -MCM is primarily a standalone single-player mod. Entangled Worlds support is partial/experimental and does not guarantee every Noita/EW edge case. The integration aims to synchronize shared world effects such as items, supported spell operations, forms, possession, visible perk consequences, effects, weather, time and World Rules while keeping player-local ownership local when appropriate. - -All peers should use the same MCM build and a compatible EW version. - -15. Performance -~~~~~~~~~~~~~~~ - -The mod should remain usable on weaker systems. Avoid unnecessary work every frame, broad world scans, repeated XML parsing, eager loading of large catalogs and duplicated network simulation. Optimize without silently removing existing features or weakening recovery/synchronization guarantees. - -Refactoring and cleanup rules ------------------------------ - -Current priority is reliability and maintainability of existing features, not feature count. - -- Preserve existing player-facing behavior. -- Preserve standalone functionality without requiring Entangled Worlds. -- Preserve experimental EW integration and equal user-facing host/peer rights. -- Remove code only when it is demonstrably unused. -- Remove duplication when behavior is preserved. -- Split large modules by responsibility rather than by arbitrary line count. -- Keep exact-path compatibility registries and protocol slots stable when they are part of compatibility. -- Prefer behavior tests over tests that search for a particular source string. -- Keep necessary Noita/EW workarounds until a tested replacement exists. -- Treat current verified in-game behavior as a stronger source of truth than stale comments. - -Project architecture and code navigation ----------------------------------------- - -The architecture should answer: "If a specific gameplay aspect breaks, which folder owns it?" - -Top-level layers: - -- `files/features/` — MCM gameplay features. -- `files/integrations/ew/` — code that exists specifically for Entangled Worlds / Noita Proxy: RPCs, network bridges, mailboxes, sync and EW-specific resilience patches. -- `files/platform/noita/` — low-level Noita API/component adapters. UI should not directly implement Entity/Component transactions when a platform/feature boundary exists. -- `files/ui/` — presentation, search, buttons, tabs, localization lookup and forwarding user intent to feature services. -- `files/core/` — small generic algorithms/utilities with no gameplay or Noita ownership. -- `files/diagnostics/` — bounded logs, passive observation and diagnostics. -- `files/qa/` — in-game Z QA scenario infrastructure. -- `tests/` — offline regression tests; `tests/TESTING.txt` documents the test system. - -`files/item_registry.lua` and `files/creature_registry.lua` intentionally remain stable extension entry points for external mods. - -Spells — `files/features/spells/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `catalog.lua` — vanilla spell catalog normalization, categories and icon metadata. -- `service.lua` — wand contents, slots/capacity, add/replace/delete/drop, mana preservation and required EW sync. -- `files/ui/tabs/spells.lua` — rendering, search and commands only. - -Items — `files/features/items/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `catalog.lua` — built-in item catalog. -- `ui_catalog.lua` — combined built-in/external/liquid menu catalog. -- `service.lua` — world spawn, RMB inventory delivery, world fallback and filled containers. -- `liquid_preview.lua` — hidden probe used to obtain actual liquid colors. -- `files/platform/noita/inventory_slots.lua` — low-level slot/pickup confirmation. -- `files/integrations/ew/world_items.lua` — multiplayer world-item/inventory transport. -- `files/ui/tabs/items.lua` — rendering and user commands. - -Perks — `files/features/perks/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `catalog.lua` — unique vanilla perk catalog. -- `service.lua` — public spawn/apply/count/remove API and removal strategy selection. -- `pickup_service.lua` — canonical application using a real perk entity. -- `transactions.lua` — ownership journal for MCM-applied perk copies and rollback. -- `transactions/global_journal.lua` — Globals/run-flag capture and restoration. -- `inverse_registry.lua` — explicit inverse dispatcher. -- `inverse/player.lua`, `inverse/world.lua`, `inverse/companions.lua`, `inverse/lukki.lua` — special inverse families. -- `root_companions.lua` — ownership of detached companion entities. -- `presentation.lua` — perk icons/GameEffect/presentation residue cleanup. -- `files/ui/tabs/perks.lua` — menu only. - -Creatures — `files/features/creatures/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `catalog.lua` — known vanilla entity paths. -- `catalog_builder.lua` — full catalog construction and incremental warmup. -- `classification.lua` — structural independent-creature classification; filename hints are diagnostic only. -- `compatibility.lua` — verified/candidate/unsafe/unsupported status without dangerous trial polymorph. -- `compatibility_overrides.lua` — the manual exact-path safe/unsafe/canonical registry. -- `metadata.lua` — XML/name metadata. -- `diagnostics.lua` — deeper component/attack/profile inspection. -- `ui_catalog.lua` — MOBS-ready data. -- `service.lua` — collect/canonical/prewarm/spawn facade. -- `files/ui/tabs/creatures.lua` — rendering, search and spawn/transform intent. - -Forms — `files/features/forms/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This is the most sensitive subsystem. - -- `manager.lua` — session lifecycle, transform start, TAB return, death handoff and transition coordination. -- `runtime.lua` — active-form dispatcher. -- `family.lua` — form family/lifecycle root detection. -- `controls.lua` — normalized player input. -- `combat.lua` — attacks, aiming, lasers and manual combat adapters. -- `presentation.lua` — vision/herd/DamageModel/CharacterData/presentation profile. -- `component_ops.lua` — shared component operations. -- `entity_tree_cache.lua` — active-form entity-tree cache. -- `adapters/ghost.lua`, `fish.lua`, `worm.lua`, `physics.lua`, `boss_dragon.lua` — family-specific behavior. -- `exact_effects.lua` — exact polymorph wrappers/runtime clones. -- `human_restore.lua` — serialized human restoration. -- `player_authority.lua` — transactional authoritative-player switching. -- `corpse_service.lua` — creature-form corpse lifecycle/synchronization. -- `death_guard.lua` — native death callback boundary. -- `transform_flash.lua` — temporary polymorph-flash ownership and restoration. -- `profile.lua` — form profile analysis. -- `noop.lua` — deliberately empty runtime script used when original lifecycle/AI must be disabled. - -Possession — `files/features/possession/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `keybinds.lua` — configured key handling. -- `targeting.lua` — entity selection under the cursor, including EW tolerance/fallback. -- `service.lua` — possession state machine/transaction. -- `retirement.lua` — local target retirement. -- `files/integrations/ew/possession_retire.lua` — network retire/handoff. - -Effects — `files/features/effects/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `catalog.lua` — available effects and metadata. -- `policy.lua` — shared identity/safety policy. -- `service.lua` — application, ownership, removal, expiry, snapshot and residue checks. -- `files/ui/tabs/effects.lua` — presentation and commands. - -Weather — `files/features/weather/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `definitions.lua` — fields and presets. -- `runtime_effects.lua` — rain/lightning/runtime weather effects. -- `service.lua` — local user operations and ownership state. -- `files/integrations/ew/weather_sync.lua` — network snapshot/mailbox and equal-rights routing. -- `files/ui/tabs/weather.lua` — UI. - -World Rules — `files/features/world_rules/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `definitions.lua` — rule definitions and choices. -- `service.lua` — public state machine and orchestration. -- `world_state.lua` — WorldState fields. -- `physics.lua` — bounded runtime physics/character gravity and damping ownership. -- `stains.lua` — stain/status rules. -- `magic_numbers.lua` — MagicNumbers ownership/transactions. -- `gold_lifetime.lua` — gold lifetime behavior. -- `files/integrations/ew/world_rules_sync.lua` — EW snapshots/mailbox/equal peer rights. -- `files/ui/tabs/world_rules.lua` — UI. - -Companion — `files/features/companion/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `player_avatar.lua` — companion creation/lifecycle. -- `ai.lua` — companion AI. -- `health.lua` — narrow initial-health repair without undoing combat damage. -- `spawn_guard.lua` — per-entity fallback for separate Lua VMs. -- `player_clone.xml` — clone entity. -- `files/integrations/ew/companion_request.lua` — peer-to-host request transport when required by EW. - -Entangled Worlds — `files/integrations/ew/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `bootstrap.lua` — small EW attachment point. -- `runtime.lua` — EW discovery/common runtime capabilities. -- `perk_sync.lua`, `world_items.lua`, `possession_retire.lua`, `companion_request.lua`, `weather_sync.lua`, `world_rules_sync.lua` — feature-specific integration. -- `serialization.lua` — EW-specific serialized-data handling where needed. -- `form_death_channel.lua` — CrossCall registration/sending for form death. -- `resilience.lua` and `resilience_patches.lua` — version-sensitive EW compatibility patches and status reporting. -- `bridge/protocol.lua` — RPC namespace/order/version; protocol slots must not move silently. -- `bridge/*.lua` — feature-specific network bridges. - -A network bug should be debugged at the boundary between the feature and its EW bridge. Do not "fix" a network bug by adding a host-only user restriction. - -Noita platform — `files/platform/noita/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `inventory_slots.lua` — vanilla inventory mechanics. -- `entity_tree.lua` — entity tree/root traversal. -- `player_locator.lua` — local player lookup. -- `keycodes.lua` — keycode normalization. -- `input_guard.lua` — Alt-Tab/focus-gap action quarantine. -- `localization.lua` — safe translation lookup. -- `assets.lua` — asset/XML path helpers. -- `patcher_bridge.lua` — NoitaPatcher capability provider/reuse. -- `menu_inventory_guard.lua` — wheel-scroll conflict suppression and held-item restoration. - -Diagnostics — `files/diagnostics/` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- `logger.lua` — bounded persistent log and runtime error capture. -- `entity_inspection.lua` — safe entity summaries/diagnostic storage reads. -- `runtime_context.lua` — shared QA/EW runtime context. -- `scan_support.lua`, `catalog_scanner.lua`, `runtime_scanner.lua`, `runtime_recorder.lua`, `scanner.lua`, `service.lua` — bounded diagnostics and performance sampling. - -QA — `files/qa/` -~~~~~~~~~~~~~~~~~ - -- `controller.lua` — Z key and lazy loading of the heavy runner. -- `runner.lua` — sequential in-game regression scenario state machine. -- `cases.lua` — required cases and timeouts. -- `baselines.lua` — snapshots, rollback and residue checks. -- `spell_roundtrip.lua` — spell-specific roundtrip scenario. - -The QA runner intentionally remains sequential because apply -> verify -> rollback order is part of test safety. - -Dependency rules -~~~~~~~~~~~~~~~~ - -1. UI displays state and calls feature services; it does not own gameplay transactions or network protocols. -2. UI should not perform low-level Entity/Component mutations when a platform/feature boundary exists. -3. `core` must not depend on Noita APIs, gameplay features, UI, EW or diagnostics. -4. `platform` must not depend on gameplay features or EW. -5. Gameplay features must not depend on UI, diagnostics or QA. -6. EW-specific transport/mailbox/RPC belongs in `integrations/ew` rather than tabs or general gameplay services. A standalone entity script may inspect EW role only to prevent duplicate simulation, not to remove user rights. -7. Large services/coordinators should be split by responsibility before becoming god objects. -8. New production modules need a real runtime consumer unless they are documented stable extension points. -9. External registry paths and wire-protocol slots are compatibility surfaces; do not rename/reorder them for aesthetics. -10. Compatibility aliases may remain temporarily, but new internal names should describe actual roles (`service`, `runtime`, `catalog`, `sync`, `adapter`, etc.). -11. Exported module tables should be named after responsibility rather than generic `api` in production code. -12. Network mailbox/CrossCall implementation details belong to the integration layer. - -Testing -------- - -Static tests are appropriate for syntax, dependency direction, protocol layout, localization completeness and other genuinely static contracts. They should not replace behavior verification with fragile searches for a specific source line or documentation sentence. - -Prefer executable Lua mock/integration scenarios that load production modules, replace only the Noita/EW boundary and assert observable state/rollback/network results. - -After risky changes, run real in-game checks for transformations, TAB return, form death, Boss Dragon/Maggot Tiny, possession, inventory operations, perk apply/remove, effects, weather/World Rules synchronization, equal host/peer rights and rollback/residue cleanup. - -Completeness of this document ------------------------------ - -This document focuses on behavior and ownership boundaries. Additional helper entities, caches, backup states, temporary components, RPCs, special-case handlers, compatibility patches, optimizations and diagnostics may exist to implement those behaviors. - -The goal of refactoring is not to minimize line count at any cost. The goal is a smaller, clearer, faster and more reliable project without losing verified functionality. - -Developer mode --------------- - -`dev_mode.lua` controls only built-in diagnostics/QA infrastructure. - -For normal play and public releases: - - dev_mode = 0 - -At `0`, MCM does not load the runtime diagnostics service or Z QA controller, does not run their per-frame updates, does not show MOBS review/logging controls and does not load EW QA telemetry. The QA RPC slot remains reserved with a no-op handler so protocol ordering does not change. - -For development only: - - dev_mode = 1 - -This enables persistent diagnostics, Z QA, MOBS review logging and EW QA telemetry. Offline tests in `tests/` are independent of `dev_mode` and are run manually. Restore `dev_mode = 0` before publishing a player build. +Creator: zerodancing From 819ca3c1123d24ccfc7cffa9280ac27741f7e083 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:23:13 +0700 Subject: [PATCH 08/18] Rewrite Workshop branch documentation --- README.md | 651 ++++-------------------------------------------------- 1 file changed, 39 insertions(+), 612 deletions(-) diff --git a/README.md b/README.md index 08e019a..f4666c5 100644 --- a/README.md +++ b/README.md @@ -2,655 +2,82 @@ Metamorph: Creative Menu

-

Metamorph: Creative Menu

+

Metamorph: Creative Menu — Steam Workshop build

-

- A standalone creative toolkit for Noita — transformations, possession, spells, items, perks, effects, weather and World Rules. -

- -
- -## Choose your language - -| Language | Guide | -|---|---| -| English | [Open guide](#en) | -| Русский | [Открыть руководство](#ru) | -| Português (Brasil) | [Abrir guia](#pt-br) | -| Español | [Abrir guía](#es) | -| Deutsch | [Anleitung öffnen](#de) | -| Français | [Ouvrir le guide](#fr) | -| Italiano | [Apri la guida](#it) | -| Polski | [Otwórz instrukcję](#pl) | -| 简体中文 | [打开指南](#zh-cn) | -| 日本語 | [ガイドを開く](#ja) | -| 한국어 | [가이드 열기](#ko) | - -## Download - -| Package | Download | -|---|---| -| **Latest ready-to-install build** | **[⬇️ Download Metamorph-Creative-Menu.zip](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip)** | -| Build page | [Latest ready-to-install build](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) | - -> The ZIP already contains the complete `metamorph_creative_menu` folder, including the bundled NoitaPatcher runtime. Extract that folder directly into `Noita/mods/`. -> -> ZIP уже содержит готовую папку `metamorph_creative_menu`, включая встроенный NoitaPatcher. Её нужно распаковать прямо в `Noita/mods/`. - -Correct final path: - -```text -Noita/mods/metamorph_creative_menu/mod.xml -``` - -If you end up with `metamorph_creative_menu/metamorph_creative_menu/mod.xml`, the archive was extracted one folder too deep. - ---- - - +

Creative tools for Noita by zerodancing.

-## English +This branch contains the **Steam Workshop build** of Metamorph: Creative Menu. It is intentionally different from the full standalone GitHub build: native NoitaPatcher-powered recovery and other standalone-only native features are not shipped here. -### Installation +## Install -1. [Download the latest ready-to-install ZIP](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Close Noita before installing or updating the mod. -3. On Steam, open **Library → right-click Noita → Manage → Browse local files**. -4. Open the game's `mods` folder and copy the complete **`metamorph_creative_menu`** folder into it. -5. Verify that `Noita/mods/metamorph_creative_menu/mod.xml` exists. Do not rename the mod folder. -6. Start Noita, enable **Metamorph: Creative Menu**, allow **Unsafe mods / unrestricted API** when required, and restart Noita after enabling the mod. -7. Start a run and press **TAB**. If the menu opens, installation is complete. +Use the [Steam Workshop page](https://steamcommunity.com/sharedfiles/filedetails/?id=3785170245) to subscribe to this build. Steam manages the Workshop files; do not copy the standalone GitHub archive over the Workshop installation. -**Updating:** close Noita, remove the old `metamorph_creative_menu` folder, then copy the new one into `mods`. Replacing the whole folder avoids stale files from older builds. +After subscribing, enable **Metamorph: Creative Menu** in Noita and start a run. Press **TAB** to open or close the menu. -### Controls +## Main controls - **TAB** — open or close the Creative Menu. -- **TAB while transformed** — return to the human player form. -- **G** by default — possess a supported creature under the cursor. The key can be changed in MCM settings. -- Most catalog entries expose different **LMB/RMB** actions; the exact action is shown in the UI. +- **TAB while transformed** — return to human form where the Workshop-safe path supports it. +- **G** by default — possess a supported creature under the cursor; the binding can be changed in MCM settings. +- Catalog entries may expose different **LMB/RMB** actions; the UI shows the active action. -### What MCM can do +## What this build includes -- **Spells & wands** — search spells, replace a selected wand slot, delete a spell or drop it into the world. -- **Items** — spawn supported items, containers, liquids, wands, books, quest objects and more; MCM can also attempt direct inventory placement. -- **Perks** — spawn/apply perks and remove one or all tracked stacks while trying to restore only state owned by that perk. -- **Effects** — apply supported timed/status effects, choose duration where supported and remove editor-owned effects. -- **Creatures & forms** — spawn creatures or transform into supported creatures, objects and special forms. -- **Human recovery** — normal TAB return uses the native polymorph lifecycle, with serialized NoitaPatcher recovery available for hard fallback paths. -- **Death handoff** — supported transformed bodies can die while player authority is returned to the restored human body instead of immediately ending the run. -- **Possession** — take over a supported existing creature under the cursor rather than simply spawning a duplicate. -- **PLAYER companion** — spawn a player-like allied companion with copied presentation/inventory behavior and extended wand use when supported. -- **Search** — large catalogs can be searched by localized names, IDs and descriptions depending on the editor. -- **Weather** — control time of day, clouds, fog, wind, rain, lightning and presets; RELEASE stops MCM from holding the override. -- **World Rules** — reversible overrides for creature relations, gold lifetime, spell uses, fog of war, trick-kill systems, healing drops, friendly rats, gore, damage flash, stain shedding, gravity, physics damping, blood volume, kick force, joint strength and day-cycle speed. +The Workshop build keeps the normal creative editors and gameplay tools that work without the standalone native components, including supported spawning/editing for spells, wands, items, perks, effects, creatures/forms, weather and World Rules. -
-Transformations, compatibility and recovery +Some entities and recovery paths are inherently engine-sensitive. A feature that depends on the standalone native bridge may be unavailable or use a more limited safe fallback in this branch. -MCM uses exact XML-path compatibility data and narrow safe-routing exceptions for entities that are known to be unsafe or unsuitable for direct native polymorph. Player-controlled forms try to retain useful native movement, attacks, visuals and physics while disabling AI that would fight player input. Complex bosses, scripted entities and physics objects can require dedicated adapters and may not reproduce every AI behavior exactly. +## Standalone build -NoitaPatcher is used for hard recovery capabilities such as entity serialization/deserialization, player handoff and other extended runtime functions. This is why the complete standalone build requests unrestricted/unsafe mod access. +For the complete build, including the bundled NoitaPatcher runtime and native Game Over/recovery support, use the repository's ready-to-install GitHub release: -
+- [Latest standalone release](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) +- [Direct standalone ZIP](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip) -
-Entangled Worlds multiplayer integration +Do **not** install the Workshop and standalone builds at the same time. They use the same mod identity and can conflict. -**Entangled Worlds is optional.** MCM is designed to work as a complete standalone single-player mod without EW. +## Entangled Worlds -When `quant.ew` is enabled, MCM activates experimental integration for shared items, perks, weather, World Rules, forms/possession, companion requests and related authority/synchronization behavior. Use the same MCM version on every peer. Multiplayer support is intentionally considered experimental because not every Noita/EW edge case can be guaranteed to synchronize perfectly. +Entangled Worlds integration is optional and experimental. When using multiplayer, keep MCM versions compatible between peers and expect some Noita/EW edge cases to remain engine-dependent. -
+## Reporting problems -### Requirements & third-party components +When reporting a bug, specify that you are using the **Steam Workshop build**, describe the action that failed, and include the exact creature/item/effect or XML path when relevant. -- **Noita** — required game, by Nolla Games. -- **NoitaPatcher** by dextercd — bundled with MCM and used for extended runtime/recovery functionality. -- **lbase64** by Ilya Kolbin — bundled local Base64 implementation. -- **Entangled Worlds / Noita Proxy** by IntQuant and contributors — optional multiplayer integration; not required for single player. - -Exact upstream links, bundled paths and third-party license/status notes are in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Troubleshooting - -- **TAB does nothing:** verify the exact `mod.xml` path, make sure MCM is enabled, allow Unsafe mods/unrestricted API, then restart Noita. -- **Extended recovery or World Rules functionality is missing:** verify `metamorph_creative_menu/NoitaPatcher/noitapatcher.dll` is present and unrestricted API access is allowed. -- **A form fails to return correctly:** report the exact creature name/XML and whether normal TAB return or fatal-death return failed. -- **EW mismatch/desync:** verify that every peer uses the same MCM build and a compatible EW build. - -### Links - -- [Latest build](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) -- [Report a bug](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) -- [Third-party notices](THIRD_PARTY_NOTICES.md) -- [Noita](https://noitagame.com/) -- [NoitaPatcher](https://github.com/dextercd/NoitaPatcher) -- [NoitaPatcher documentation](https://dexter.döpping.eu/NoitaPatcher/) -- [Entangled Worlds](https://github.com/IntQuant/noita_entangled_worlds) -- [lbase64](https://github.com/iskolbin/lbase64) - -[↑ Back to language selection](#languages) +Issues: https://github.com/zerodancing/Metamorph-Creative-Menu/issues --- - - ## Русский +Эта ветка содержит **Steam Workshop-сборку** Metamorph: Creative Menu. Она специально отличается от полной standalone-сборки GitHub: сюда не входят нативные возможности, завязанные на встроенный NoitaPatcher, включая расширенные standalone-only сценарии восстановления. + ### Установка -1. [Скачайте готовый ZIP последней сборки](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Полностью закройте Noita перед установкой или обновлением. -3. В Steam откройте **Библиотека → ПКМ по Noita → Управление → Просмотреть локальные файлы**. -4. Откройте папку `mods` и скопируйте туда целиком папку **`metamorph_creative_menu`** из архива. -5. Проверьте, что существует файл `Noita/mods/metamorph_creative_menu/mod.xml`. Папку мода не переименовывайте. -6. Запустите Noita, включите **Metamorph: Creative Menu**, разрешите **Unsafe mods / unrestricted API**, если игра этого требует, и перезапустите Noita после включения мода. -7. Начните забег и нажмите **TAB**. Если меню открылось — установка закончена. +Подпишитесь на мод на [странице Steam Workshop](https://steamcommunity.com/sharedfiles/filedetails/?id=3785170245). Файлы Workshop устанавливает Steam; не копируйте поверх них standalone-архив GitHub. -**Обновление:** закройте Noita, удалите старую папку `metamorph_creative_menu` и скопируйте новую. Полная замена папки не оставляет устаревшие файлы предыдущих версий. +Включите **Metamorph: Creative Menu** в Noita, начните забег и нажмите **TAB**. ### Управление - **TAB** — открыть или закрыть Creative Menu. -- **TAB во время превращения** — вернуться в человеческую форму. -- **G** по умолчанию — занять тело поддерживаемого существа под курсором. Клавиша меняется в настройках MCM. -- У большинства элементов каталога **ЛКМ/ПКМ** выполняют разные действия; точная подсказка показывается в интерфейсе. - -### Возможности MCM - -- **Заклинания и посохи** — поиск заклинаний, замена выбранного слота, удаление или выбрасывание заклинания в мир. -- **Предметы** — создание предметов, контейнеров, жидкостей, посохов, книг, квестовых объектов и других поддерживаемых сущностей; возможна попытка сразу положить предмет в инвентарь. -- **Перки** — создание/применение перков и удаление одного или всех отслеживаемых уровней с восстановлением принадлежащего перку состояния. -- **Эффекты** — применение status/timed effects, выбор длительности и удаление состояния, созданного редактором. -- **Существа и формы** — создание мобов и превращение в поддерживаемых существ, объекты и специальные формы. -- **Возврат человека** — обычный TAB использует нативный lifecycle polymorph, а для аварийных сценариев доступно сериализованное восстановление через NoitaPatcher. -- **Death handoff** — смерть поддерживаемой формы может вернуть player authority восстановленному человеку вместо немедленного Game Over. -- **Possession** — занятие тела уже существующего поддерживаемого моба под курсором, а не простое создание копии. -- **Союзник PLAYER** — создание союзника, похожего на игрока, с копированием визуального/инвентарного состояния и расширенным использованием посоха при доступных возможностях runtime. -- **Поиск** — крупные каталоги ищут по локализованным именам, ID и описаниям в зависимости от вкладки. -- **Погода** — время суток, облака, туман, ветер, дождь, молнии и пресеты; RELEASE прекращает активное удержание погодных значений. -- **World Rules** — обратимые правила для отношений существ, времени жизни золота, использования заклинаний, fog of war, trick-kill механик, healing drops, friendly rats, gore, damage flash, stain shedding, гравитации, физического damping, объёма крови, силы пинка, прочности соединений и скорости цикла дня. - -
-Превращения, совместимость и восстановление - -MCM хранит совместимость по точным XML-путям и использует узкие safe-routing исключения для сущностей, которые опасно или бессмысленно превращать напрямую нативным polymorph. Управляемая игроком форма старается сохранить полезное движение, атаки, внешний вид и физику, отключая конфликтующий AI. Для сложных боссов, scripted-сущностей и physics-объектов могут использоваться отдельные адаптеры. - -NoitaPatcher нужен для жёстких recovery-сценариев: сериализации/десериализации сущностей, player handoff и других расширенных runtime-возможностей. Поэтому полная standalone-сборка использует unrestricted/unsafe mod access. - -
- -
-Интеграция с Entangled Worlds - -**Entangled Worlds не обязателен.** В одиночной игре MCM является полноценным standalone-модом. - -При включённом `quant.ew` активируется экспериментальная синхронизация предметов, перков, погоды, World Rules, форм/possession, запросов companion и связанных authority-механизмов. На всех клиентах должна быть одна и та же версия MCM. Сетевая интеграция считается экспериментальной, потому что не все edge cases Noita/EW можно гарантированно синхронизировать. - -
- -### Требования и сторонние компоненты - -- **Noita** — обязательная игра, Nolla Games. -- **NoitaPatcher** от dextercd — включён в MCM и используется для расширенного runtime и recovery. -- **lbase64** от Ilya Kolbin — локальная встроенная реализация Base64. -- **Entangled Worlds / Noita Proxy** от IntQuant и contributors — опциональная мультиплеерная интеграция, для одиночной игры не нужна. - -Точные upstream-ссылки, пути встроенных компонентов и сведения об их лицензиях/статусе находятся в [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Если что-то не работает - -- **TAB ничего не делает:** проверьте путь к `mod.xml`, включение MCM, Unsafe mods/unrestricted API и перезапустите Noita. -- **Нет расширенного recovery или части World Rules:** проверьте наличие `metamorph_creative_menu/NoitaPatcher/noitapatcher.dll` и доступ к unrestricted API. -- **Форма не возвращается правильно:** укажите точное имя/XML существа и уточните, сломался обычный возврат по TAB или возврат после смертельного урона. -- **EW desync:** убедитесь, что у всех участников одинаковая сборка MCM и совместимая версия EW. - -### Ссылки - -- [Последняя готовая сборка](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) -- [Сообщить об ошибке](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) -- [Сторонние компоненты](THIRD_PARTY_NOTICES.md) -- [Noita](https://noitagame.com/) -- [NoitaPatcher](https://github.com/dextercd/NoitaPatcher) -- [Документация NoitaPatcher](https://dexter.döpping.eu/NoitaPatcher/) -- [Entangled Worlds](https://github.com/IntQuant/noita_entangled_worlds) -- [lbase64](https://github.com/iskolbin/lbase64) - -[↑ К выбору языка](#languages) - ---- - - - -## Português (Brasil) - -### Instalação - -1. [Baixe o ZIP pronto para instalar](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Feche o Noita antes de instalar ou atualizar o mod. -3. No Steam: **Biblioteca → clique direito em Noita → Gerenciar → Explorar arquivos locais**. -4. Abra a pasta `mods` e copie para ela a pasta completa **`metamorph_creative_menu`**. -5. Confirme que existe `Noita/mods/metamorph_creative_menu/mod.xml`. -6. Inicie o Noita, ative **Metamorph: Creative Menu**, permita **Unsafe mods / unrestricted API** quando necessário e reinicie o jogo. -7. Entre em uma partida e pressione **TAB**. - -### Controles - -- **TAB** — abre/fecha o menu; durante uma transformação, retorna à forma humana. -- **G** por padrão — possui uma criatura compatível sob o cursor; a tecla pode ser alterada nas configurações. -- **LMB/RMB** — ações diferentes dependendo do item do catálogo; a interface mostra a ação exata. - -### Recursos - -MCM permite editar **magias e varinhas**, criar **itens e líquidos**, aplicar/remover **perks e efeitos**, criar criaturas, **transformar-se**, possuir criaturas existentes, recuperar a forma humana, fazer **death handoff**, criar um aliado `PLAYER`, pesquisar grandes catálogos, controlar **clima** e aplicar **World Rules reversíveis** para relações entre criaturas, ouro, usos de magia, fog of war, trick kills, drops de cura, gore, gravidade, física, sangue, força de chute, juntas e ciclo do dia. - -
Standalone, recuperação e Entangled Worlds - -O modo single-player não exige Entangled Worlds. O MCM inclui NoitaPatcher para serialização/recuperação, player handoff e outras funções avançadas; por isso a versão completa requer acesso Unsafe/unrestricted. Com `quant.ew` ativo, o MCM habilita integração multiplayer experimental para itens, perks, clima, World Rules, formas/possession e companion. Todos os peers devem usar a mesma versão do MCM. - -
- -### Dependências e créditos - -- **Noita** — Nolla Games. -- **NoitaPatcher** — dextercd, incluído. -- **lbase64** — Ilya Kolbin, incluído. -- **Entangled Worlds / Noita Proxy** — IntQuant e colaboradores, opcional. - -Veja caminhos, links upstream e informações de licença em [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Problemas comuns - -Se TAB não funcionar, verifique `Noita/mods/metamorph_creative_menu/mod.xml`, ative o mod, permita Unsafe/unrestricted API e reinicie o Noita. Para problemas de transformação, informe a criatura/XML exata. Para EW, confirme versões idênticas do MCM nos peers. - -[Downloads](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ Idiomas](#languages) - ---- - - - -## Español - -### Instalación - -1. [Descarga el ZIP listo para instalar](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Cierra Noita antes de instalar o actualizar. -3. En Steam: **Biblioteca → clic derecho en Noita → Administrar → Ver archivos locales**. -4. Copia la carpeta completa **`metamorph_creative_menu`** dentro de `Noita/mods/`. -5. Comprueba que existe `Noita/mods/metamorph_creative_menu/mod.xml`. -6. Activa **Metamorph: Creative Menu**, permite **Unsafe mods / unrestricted API** cuando sea necesario y reinicia Noita. -7. Empieza una partida y pulsa **TAB**. - -### Controles - -- **TAB** — abre/cierra el menú; transformado, vuelve a la forma humana. -- **G** por defecto — posee una criatura compatible bajo el cursor. -- **LMB/RMB** — acciones diferentes según la entrada; la interfaz muestra la acción exacta. - -### Funciones - -MCM permite editar **hechizos y varitas**, crear **objetos y líquidos**, aplicar o quitar **perks y efectos**, crear criaturas, **transformarse**, poseer criaturas existentes, recuperar al jugador humano, realizar **death handoff**, crear un aliado `PLAYER`, buscar en catálogos, controlar el **clima** y aplicar **World Rules reversibles** para relaciones entre criaturas, oro, usos de hechizos, fog of war, trick kills, curación, gore, gravedad, física, sangre, fuerza de patada, uniones y ciclo diurno. - -
Standalone, recuperación y Entangled Worlds - -Entangled Worlds no es necesario para un jugador. MCM incluye NoitaPatcher para serialización/recuperación, player handoff y funciones avanzadas, por lo que la versión completa requiere acceso Unsafe/unrestricted. Con `quant.ew` activo se habilita una integración multijugador experimental para objetos, perks, clima, World Rules, formas/possession y companion. Todos los peers deben usar la misma versión de MCM. - -
- -### Dependencias y créditos - -- **Noita** — Nolla Games. -- **NoitaPatcher** — dextercd, incluido. -- **lbase64** — Ilya Kolbin, incluido. -- **Entangled Worlds / Noita Proxy** — IntQuant y colaboradores, opcional. - -Consulta enlaces upstream y notas de licencia en [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Solución rápida - -Si TAB no funciona, verifica la ruta de `mod.xml`, activa el mod, permite Unsafe/unrestricted API y reinicia Noita. Para errores de formas, informa la criatura/XML exacta. Para EW, verifica que todos usen la misma versión de MCM. - -[Descargas](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ Idiomas](#languages) - ---- - - - -## Deutsch - -### Installation - -1. [Lade das installationsfertige ZIP herunter](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Beende Noita vor Installation oder Update vollständig. -3. In Steam: **Bibliothek → Rechtsklick auf Noita → Verwalten → Lokale Dateien durchsuchen**. -4. Kopiere den vollständigen Ordner **`metamorph_creative_menu`** nach `Noita/mods/`. -5. Prüfe, dass `Noita/mods/metamorph_creative_menu/mod.xml` existiert. -6. Aktiviere **Metamorph: Creative Menu**, erlaube **Unsafe mods / unrestricted API**, falls erforderlich, und starte Noita neu. -7. Starte einen Run und drücke **TAB**. - -### Steuerung - -- **TAB** — Menü öffnen/schließen; verwandelt: zur menschlichen Form zurückkehren. -- **G** standardmäßig — eine unterstützte Kreatur unter dem Cursor übernehmen. -- **LMB/RMB** — unterschiedliche Aktionen je Katalogeintrag; die UI zeigt die genaue Aktion. - -### Funktionen - -MCM kann **Zauber und Zauberstäbe** bearbeiten, **Items und Flüssigkeiten** erzeugen, **Perks und Effekte** anwenden/entfernen, Kreaturen spawnen, den Spieler **verwandeln**, existierende Kreaturen übernehmen, den Menschen wiederherstellen, **Death Handoff** durchführen, einen `PLAYER`-Begleiter erzeugen, Kataloge durchsuchen, **Wetter** steuern und **reversible World Rules** für Kreaturenbeziehungen, Gold, Zaubernutzungen, fog of war, trick kills, Heilungsdrops, Gore, Gravitation, Physik, Blut, Kick-Kraft, Gelenke und Tageszyklus anwenden. - -
Standalone, Recovery und Entangled Worlds - -Entangled Worlds ist für Singleplayer nicht erforderlich. MCM enthält NoitaPatcher für Serialisierung/Recovery, Player Handoff und weitere erweiterte Funktionen; deshalb benötigt die Vollversion Unsafe/unrestricted API. Mit aktivem `quant.ew` wird eine experimentelle Multiplayer-Integration für Items, Perks, Wetter, World Rules, Formen/Possession und Companion aktiviert. Alle Peers sollten dieselbe MCM-Version verwenden. - -
- -### Abhängigkeiten & Credits - -- **Noita** — Nolla Games. -- **NoitaPatcher** — dextercd, enthalten. -- **lbase64** — Ilya Kolbin, enthalten. -- **Entangled Worlds / Noita Proxy** — IntQuant und Mitwirkende, optional. - -Upstream-Links und Lizenzhinweise: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Fehlerbehebung - -Wenn TAB nicht funktioniert, prüfe den `mod.xml`-Pfad, aktiviere MCM, erlaube Unsafe/unrestricted API und starte Noita neu. Bei Formfehlern bitte die genaue Kreatur/XML nennen. Bei EW müssen alle Peers dieselbe MCM-Version verwenden. - -[Downloads](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ Sprachen](#languages) - ---- - - - -## Français - -### Installation - -1. [Téléchargez le ZIP prêt à installer](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Fermez complètement Noita avant l'installation ou la mise à jour. -3. Dans Steam : **Bibliothèque → clic droit sur Noita → Gérer → Parcourir les fichiers locaux**. -4. Copiez le dossier complet **`metamorph_creative_menu`** dans `Noita/mods/`. -5. Vérifiez que `Noita/mods/metamorph_creative_menu/mod.xml` existe. -6. Activez **Metamorph: Creative Menu**, autorisez **Unsafe mods / unrestricted API** si nécessaire puis redémarrez Noita. -7. Lancez une partie et appuyez sur **TAB**. - -### Commandes - -- **TAB** — ouvre/ferme le menu ; transformé, revient à la forme humaine. -- **G** par défaut — prend possession d'une créature compatible sous le curseur. -- **LMB/RMB** — actions différentes selon l'entrée ; l'interface affiche l'action exacte. +- **TAB во время превращения** — вернуться в человеческую форму там, где это поддерживает Workshop-safe путь. +- **G** по умолчанию — занять тело поддерживаемого существа под курсором; клавиша меняется в настройках MCM. +- Для элементов каталогов ЛКМ/ПКМ могут выполнять разные действия; текущая подсказка показывается в интерфейсе. -### Fonctionnalités +### Возможности -MCM permet de modifier **sorts et baguettes**, créer **objets et liquides**, appliquer/retirer **perks et effets**, faire apparaître des créatures, se **transformer**, posséder des créatures existantes, restaurer la forme humaine, effectuer le **death handoff**, créer un allié `PLAYER`, rechercher dans les catalogues, contrôler la **météo** et appliquer des **World Rules réversibles** concernant relations entre créatures, or, utilisations de sorts, fog of war, trick kills, soins, gore, gravité, physique, sang, puissance de coup de pied, articulations et cycle jour/nuit. +Workshop-сборка сохраняет обычные creative-инструменты, которые работают без standalone native-компонентов: поддерживаемое редактирование/создание заклинаний, посохов, предметов, перков, эффектов, существ и форм, а также управление погодой и World Rules. -
Standalone, récupération et Entangled Worlds +Функции, которым нужен standalone native bridge, в этой ветке могут быть недоступны или использовать более ограниченный безопасный fallback. -Entangled Worlds n'est pas requis en solo. MCM inclut NoitaPatcher pour la sérialisation/récupération, le player handoff et d'autres fonctions avancées ; la version complète nécessite donc Unsafe/unrestricted API. Avec `quant.ew`, une intégration multijoueur expérimentale est activée pour objets, perks, météo, World Rules, formes/possession et companion. Tous les peers doivent utiliser la même version de MCM. - -
- -### Dépendances & crédits - -- **Noita** — Nolla Games. -- **NoitaPatcher** — dextercd, inclus. -- **lbase64** — Ilya Kolbin, inclus. -- **Entangled Worlds / Noita Proxy** — IntQuant et contributeurs, optionnel. - -Liens upstream et informations de licence : [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Dépannage - -Si TAB ne fonctionne pas, vérifiez le chemin de `mod.xml`, activez MCM, autorisez Unsafe/unrestricted API et redémarrez Noita. Pour un problème de forme, indiquez la créature/XML exacte. Avec EW, utilisez la même version de MCM sur tous les peers. - -[Téléchargements](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ Langues](#languages) - ---- - - - -## Italiano - -### Installazione - -1. [Scarica lo ZIP pronto all'installazione](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Chiudi completamente Noita prima di installare o aggiornare. -3. Su Steam: **Libreria → clic destro su Noita → Gestisci → Sfoglia file locali**. -4. Copia l'intera cartella **`metamorph_creative_menu`** in `Noita/mods/`. -5. Verifica che esista `Noita/mods/metamorph_creative_menu/mod.xml`. -6. Attiva **Metamorph: Creative Menu**, consenti **Unsafe mods / unrestricted API** se richiesto e riavvia Noita. -7. Avvia una partita e premi **TAB**. - -### Controlli - -- **TAB** — apre/chiude il menu; durante una trasformazione torna alla forma umana. -- **G** per impostazione predefinita — possiede una creatura supportata sotto il cursore. -- **LMB/RMB** — azioni diverse a seconda della voce; l'interfaccia mostra l'azione esatta. - -### Funzioni - -MCM permette di modificare **incantesimi e bacchette**, creare **oggetti e liquidi**, applicare/rimuovere **perk ed effetti**, generare creature, **trasformarsi**, possedere creature esistenti, recuperare la forma umana, eseguire il **death handoff**, creare un alleato `PLAYER`, cercare nei cataloghi, controllare il **meteo** e applicare **World Rules reversibili** per relazioni tra creature, oro, usi degli incantesimi, fog of war, trick kill, cure, gore, gravità, fisica, sangue, forza del calcio, giunti e ciclo del giorno. - -
Standalone, recovery ed Entangled Worlds - -Entangled Worlds non è necessario in single-player. MCM include NoitaPatcher per serializzazione/recovery, player handoff e altre funzioni avanzate; per questo la versione completa richiede Unsafe/unrestricted API. Con `quant.ew` attivo viene abilitata un'integrazione multiplayer sperimentale per oggetti, perk, meteo, World Rules, forme/possession e companion. Tutti i peer devono usare la stessa versione di MCM. - -
- -### Dipendenze e crediti - -- **Noita** — Nolla Games. -- **NoitaPatcher** — dextercd, incluso. -- **lbase64** — Ilya Kolbin, incluso. -- **Entangled Worlds / Noita Proxy** — IntQuant e collaboratori, opzionale. - -Link upstream e informazioni sulle licenze: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Risoluzione problemi - -Se TAB non funziona, controlla il percorso di `mod.xml`, abilita MCM, consenti Unsafe/unrestricted API e riavvia Noita. Per problemi con le forme indica creatura/XML esatta. Con EW usa la stessa versione MCM su tutti i peer. - -[Download](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ Lingue](#languages) - ---- - - - -## Polski - -### Instalacja - -1. [Pobierz gotowy ZIP](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip). -2. Zamknij Noitę przed instalacją lub aktualizacją. -3. Steam: **Biblioteka → prawy przycisk na Noita → Zarządzaj → Przeglądaj pliki lokalne**. -4. Skopiuj cały folder **`metamorph_creative_menu`** do `Noita/mods/`. -5. Sprawdź, czy istnieje `Noita/mods/metamorph_creative_menu/mod.xml`. -6. Włącz **Metamorph: Creative Menu**, zezwól na **Unsafe mods / unrestricted API**, jeśli jest to wymagane, i uruchom Noitę ponownie. -7. Rozpocznij grę i naciśnij **TAB**. - -### Sterowanie - -- **TAB** — otwiera/zamyka menu; podczas transformacji wraca do ludzkiej formy. -- **G** domyślnie — przejmuje wspieraną istotę pod kursorem. -- **LMB/RMB** — różne akcje zależnie od wpisu; interfejs pokazuje dokładne działanie. - -### Możliwości - -MCM pozwala edytować **zaklęcia i różdżki**, tworzyć **przedmioty i płyny**, nakładać/usuwać **perki i efekty**, tworzyć stworzenia, **transformować się**, przejmować istniejące stworzenia, odzyskiwać ludzką formę, wykonywać **death handoff**, tworzyć sojusznika `PLAYER`, przeszukiwać katalogi, kontrolować **pogodę** oraz stosować **odwracalne World Rules** dotyczące relacji stworzeń, złota, użyć zaklęć, fog of war, trick kills, leczenia, gore, grawitacji, fizyki, krwi, siły kopnięcia, połączeń i cyklu dnia. - -
Standalone, recovery i Entangled Worlds - -Entangled Worlds nie jest wymagany w single-player. MCM zawiera NoitaPatcher do serializacji/recovery, player handoff i innych zaawansowanych funkcji, dlatego pełna wersja wymaga Unsafe/unrestricted API. Przy aktywnym `quant.ew` włącza się eksperymentalna integracja multiplayer dla przedmiotów, perków, pogody, World Rules, form/possession i companion. Wszyscy gracze powinni używać tej samej wersji MCM. - -
- -### Zależności i autorzy - -- **Noita** — Nolla Games. -- **NoitaPatcher** — dextercd, dołączony. -- **lbase64** — Ilya Kolbin, dołączony. -- **Entangled Worlds / Noita Proxy** — IntQuant i współtwórcy, opcjonalny. - -Linki upstream i informacje licencyjne: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -### Rozwiązywanie problemów - -Jeśli TAB nie działa, sprawdź ścieżkę `mod.xml`, włącz MCM, zezwól na Unsafe/unrestricted API i uruchom Noitę ponownie. Przy błędzie formy podaj dokładną istotę/XML. Dla EW wszyscy powinni mieć tę samą wersję MCM. - -[Pobieranie](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ Języki](#languages) - ---- - - - -## 简体中文 - -### 安装 - -1. [下载可直接安装的 ZIP](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip)。 -2. 安装或更新前完全关闭 Noita。 -3. Steam:**库 → 右键 Noita → 管理 → 浏览本地文件**。 -4. 将完整的 **`metamorph_creative_menu`** 文件夹复制到 `Noita/mods/`。 -5. 确认 `Noita/mods/metamorph_creative_menu/mod.xml` 存在。 -6. 启用 **Metamorph: Creative Menu**;需要时允许 **Unsafe mods / unrestricted API**,然后重启 Noita。 -7. 进入游戏并按 **TAB**。 - -### 操作 - -- **TAB** — 打开/关闭菜单;变形状态下返回人类形态。 -- **G**(默认)— 附身光标下的受支持生物。 -- **LMB/RMB** — 根据目录项目执行不同操作;界面会显示具体动作。 - -### 功能 - -MCM 可以编辑**法术与法杖**、生成**物品和液体**、添加/移除**Perk 与效果**、生成生物、进行**变形**、附身已有生物、恢复人类形态、执行 **death handoff**、生成 `PLAYER` 盟友、搜索大型目录、控制**天气**,并提供可恢复的 **World Rules**,包括生物关系、金币、法术次数、fog of war、trick kill、治疗掉落、gore、重力、物理阻尼、血量、踢击力度、关节强度和昼夜循环等。 - -
独立模式、恢复与 Entangled Worlds - -单人模式不需要 Entangled Worlds。MCM 内置 NoitaPatcher,用于实体序列化/恢复、player handoff 和其他高级功能,因此完整版本需要 Unsafe/unrestricted API。启用 `quant.ew` 后,会开启针对物品、Perk、天气、World Rules、形态/附身和 companion 的实验性多人同步。所有玩家应使用相同版本的 MCM。 - -
- -### 依赖与致谢 - -- **Noita** — Nolla Games。 -- **NoitaPatcher** — dextercd,已内置。 -- **lbase64** — Ilya Kolbin,已内置。 -- **Entangled Worlds / Noita Proxy** — IntQuant 与贡献者,可选。 - -上游链接和许可状态见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。 - -### 故障排除 - -如果 TAB 无响应,请检查 `mod.xml` 路径、确认 MCM 已启用、允许 Unsafe/unrestricted API,并重启 Noita。形态问题请报告准确的生物/XML。EW 问题请确保所有玩家使用同一 MCM 版本。 - -[下载](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ 语言](#languages) - ---- - - - -## 日本語 - -### インストール - -1. [インストール用 ZIP をダウンロード](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip)します。 -2. インストールまたは更新前に Noita を完全に終了します。 -3. Steam:**ライブラリ → Noita を右クリック → 管理 → ローカルファイルを閲覧**。 -4. **`metamorph_creative_menu`** フォルダ全体を `Noita/mods/` にコピーします。 -5. `Noita/mods/metamorph_creative_menu/mod.xml` が存在することを確認します。 -6. **Metamorph: Creative Menu** を有効化し、必要な場合は **Unsafe mods / unrestricted API** を許可して Noita を再起動します。 -7. ゲームを開始して **TAB** を押します。 - -### 操作 - -- **TAB** — メニューを開閉。変身中は人間形態へ戻ります。 -- **G**(デフォルト)— カーソル下の対応クリーチャーを possession します。 -- **LMB/RMB** — カタログ項目ごとに異なる操作。正確な動作は UI に表示されます。 - -### 機能 - -MCM では**スペルとワンド**の編集、**アイテムと液体**の生成、**Perk とエフェクト**の適用/削除、クリーチャー生成、**変身**、既存クリーチャーの possession、人間形態の復元、**death handoff**、`PLAYER` 味方の生成、カタログ検索、**天候**制御、そしてクリーチャー関係・ゴールド・スペル使用回数・fog of war・trick kill・回復ドロップ・gore・重力・物理・血液量・キック力・ジョイント強度・昼夜サイクルなどの**可逆 World Rules**を利用できます。 - -
Standalone、Recovery、Entangled Worlds - -シングルプレイヤーでは Entangled Worlds は不要です。MCM には NoitaPatcher が同梱され、シリアライズ/復元、player handoff、その他の高度な機能に使われるため、完全版では Unsafe/unrestricted API が必要です。`quant.ew` が有効な場合、アイテム・Perk・天候・World Rules・形態/possession・companion の実験的マルチプレイヤー統合が有効になります。全 peer で同じ MCM バージョンを使用してください。 - -
- -### 依存関係とクレジット - -- **Noita** — Nolla Games。 -- **NoitaPatcher** — dextercd、同梱。 -- **lbase64** — Ilya Kolbin、同梱。 -- **Entangled Worlds / Noita Proxy** — IntQuant と contributors、任意。 - -Upstream リンクとライセンス情報:[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。 - -### トラブルシューティング - -TAB が反応しない場合は `mod.xml` のパス、MCM の有効化、Unsafe/unrestricted API、Noita の再起動を確認してください。形態の不具合は正確なクリーチャー/XML を報告してください。EW では全 peer の MCM バージョンを揃えてください。 - -[Download](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ 言語](#languages) - ---- - - - -## 한국어 - -### 설치 - -1. [바로 설치 가능한 ZIP을 다운로드](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip)합니다. -2. 설치 또는 업데이트 전에 Noita를 완전히 종료합니다. -3. Steam: **라이브러리 → Noita 우클릭 → 관리 → 로컬 파일 찾아보기**. -4. **`metamorph_creative_menu`** 폴더 전체를 `Noita/mods/`에 복사합니다. -5. `Noita/mods/metamorph_creative_menu/mod.xml`이 존재하는지 확인합니다. -6. **Metamorph: Creative Menu**를 활성화하고 필요한 경우 **Unsafe mods / unrestricted API**를 허용한 뒤 Noita를 재시작합니다. -7. 게임을 시작하고 **TAB**을 누릅니다. - -### 조작 - -- **TAB** — 메뉴 열기/닫기. 변신 상태에서는 인간 형태로 돌아갑니다. -- **G**(기본값) — 커서 아래의 지원되는 생물을 possession 합니다. -- **LMB/RMB** — 카탈로그 항목에 따라 다른 동작을 수행하며 UI에 정확한 동작이 표시됩니다. - -### 기능 - -MCM은 **주문과 완드** 편집, **아이템과 액체** 생성, **Perk와 효과** 적용/제거, 생물 생성, **변신**, 기존 생물 possession, 인간 형태 복원, **death handoff**, `PLAYER` 동료 생성, 카탈로그 검색, **날씨** 제어 및 생물 관계·골드·주문 사용 횟수·fog of war·trick kill·회복 드롭·gore·중력·물리·혈액량·킥 힘·조인트 강도·낮/밤 주기 등을 다루는 **되돌릴 수 있는 World Rules**를 제공합니다. - -
Standalone, 복구 및 Entangled Worlds - -싱글플레이에서는 Entangled Worlds가 필요하지 않습니다. MCM에는 직렬화/복구, player handoff 및 기타 고급 기능을 위한 NoitaPatcher가 포함되어 있어 전체 버전은 Unsafe/unrestricted API가 필요합니다. `quant.ew`가 활성화되면 아이템, Perk, 날씨, World Rules, 형태/possession, companion에 대한 실험적 멀티플레이 통합이 활성화됩니다. 모든 peer는 동일한 MCM 버전을 사용해야 합니다. - -
- -### 의존성 및 크레딧 - -- **Noita** — Nolla Games. -- **NoitaPatcher** — dextercd, 포함됨. -- **lbase64** — Ilya Kolbin, 포함됨. -- **Entangled Worlds / Noita Proxy** — IntQuant 및 contributors, 선택 사항. - -Upstream 링크와 라이선스 정보는 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)를 참고하세요. - -### 문제 해결 - -TAB이 작동하지 않으면 `mod.xml` 경로, MCM 활성화, Unsafe/unrestricted API 허용 여부를 확인하고 Noita를 재시작하세요. 형태 문제는 정확한 creature/XML을 보고해 주세요. EW에서는 모든 peer가 동일한 MCM 버전을 사용해야 합니다. - -[Download](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) · [Issues](https://github.com/zerodancing/Metamorph-Creative-Menu/issues) · [↑ 언어](#languages) - ---- +### Полная standalone-сборка -## For developers +Полная версия со встроенным NoitaPatcher и расширенным Game Over/recovery доступна в GitHub Releases: -The playable mod lives in `metamorph_creative_menu/`. +- [Последняя standalone-сборка](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) +- [Прямая ссылка на ZIP](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip) -- Architecture/developer notes: `metamorph_creative_menu/README.txt` -- Regression suite: `metamorph_creative_menu/tests/` -- Test instructions: `metamorph_creative_menu/tests/TESTING.txt` -- Third-party notices: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) +Не устанавливайте Workshop и standalone одновременно: они используют один и тот же mod identity и могут конфликтовать. -The repository's automatic `latest-build` workflow packages the playable `metamorph_creative_menu` folder into a ready-to-install ZIP and updates the stable download URL above. +**Creator: zerodancing** From 430a333578b27e6d8d6fad832c1700cd51610769 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:26:08 +0700 Subject: [PATCH 09/18] Remove obsolete standalone importer from Workshop branch --- .github/workflows/import-mod-archive.yml | 73 ------------------------ 1 file changed, 73 deletions(-) delete mode 100644 .github/workflows/import-mod-archive.yml diff --git a/.github/workflows/import-mod-archive.yml b/.github/workflows/import-mod-archive.yml deleted file mode 100644 index cc7319c..0000000 --- a/.github/workflows/import-mod-archive.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: Import full MCM archive - -on: - push: - paths: - - 'Metamorph_Creative_Menu_standalone_noitapatcher*.zip' - -permissions: - contents: write - -jobs: - import: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Import standalone archive - shell: python - run: | - import glob - import os - import shutil - import zipfile - from pathlib import Path, PurePosixPath - - archives = sorted(glob.glob('Metamorph_Creative_Menu_standalone_noitapatcher*.zip')) - if not archives: - raise SystemExit('Standalone archive was not found') - archive = archives[-1] - - with zipfile.ZipFile(archive) as zf: - members = zf.infolist() - for member in members: - path = PurePosixPath(member.filename) - if path.is_absolute() or '..' in path.parts: - raise SystemExit(f'Unsafe archive path: {member.filename}') - roots = {PurePosixPath(m.filename).parts[0] for m in members if PurePosixPath(m.filename).parts} - if roots != {'metamorph_creative_menu'}: - raise SystemExit(f'Unexpected archive root: {sorted(roots)}') - - target = Path('metamorph_creative_menu') - if target.exists(): - shutil.rmtree(target) - zf.extractall('.') - - required = [ - Path('metamorph_creative_menu/mod.xml'), - Path('metamorph_creative_menu/mod_id.txt'), - Path('metamorph_creative_menu/init.lua'), - Path('metamorph_creative_menu/NoitaPatcher/noitapatcher.dll'), - ] - missing = [str(path) for path in required if not path.is_file()] - if missing: - raise SystemExit('Missing required files: ' + ', '.join(missing)) - - for item in archives: - os.remove(item) - - - name: Commit imported mod - shell: bash - run: | - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git add -A - if git diff --cached --quiet; then - echo "Archive contents already match the repository." - exit 0 - fi - git commit -m "Import full standalone Metamorph Creative Menu" - git push From d46e021d911c40c1c5cc8f5e4d3abc026bdda82b Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:26:14 +0700 Subject: [PATCH 10/18] Remove completed Workshop preview migration --- .../workflows/replace-workshop-preview.yml | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 .github/workflows/replace-workshop-preview.yml diff --git a/.github/workflows/replace-workshop-preview.yml b/.github/workflows/replace-workshop-preview.yml deleted file mode 100644 index 968de19..0000000 --- a/.github/workflows/replace-workshop-preview.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Replace Workshop preview - -on: - push: - branches: [workshop] - -permissions: - contents: write - -jobs: - replace-preview: - if: github.event.head_commit.message == 'Stage corrected Workshop preview' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Build the correct Workshop preview from the accepted MCM banner - shell: bash - run: | - set -euo pipefail - python3 -m pip install --quiet pillow - python3 - <<'PY' - from PIL import Image - from pathlib import Path - - src = Path('assets/metamorph-creative-menu-banner.jpg') - out = Path('metamorph_creative_menu/workshop_preview_image.png') - - img = Image.open(src).convert('RGB') - w, h = img.size - - # The accepted Social Preview artwork is the centered 2:1 crop of the - # repository banner. Preserve that composition, then pad to Noita's - # 16:9 Workshop preview without stretching the title artwork. - target_ratio = 2.0 - if w / h > target_ratio: - crop_w = int(round(h * target_ratio)) - left = (w - crop_w) // 2 - img = img.crop((left, 0, left + crop_w, h)) - else: - crop_h = int(round(w / target_ratio)) - top = (h - crop_h) // 2 - img = img.crop((0, top, w, top + crop_h)) - - img = img.resize((1280, 640), Image.Resampling.LANCZOS) - canvas = Image.new('RGB', (1280, 720), (0, 0, 0)) - canvas.paste(img, (0, 40)) - - # Indexed PNG keeps the Workshop preview compact while preserving the artwork. - preview = canvas.quantize( - colors=256, - method=Image.Quantize.MEDIANCUT, - dither=Image.Dither.FLOYDSTEINBERG, - ) - preview.save(out, 'PNG', optimize=True, compress_level=9) - print(f'preview={out} size={out.stat().st_size} bytes') - PY - - - name: Commit corrected preview and remove one-shot workflow - shell: bash - run: | - set -euo pipefail - rm -f .github/workflows/replace-workshop-preview.yml - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git add metamorph_creative_menu/workshop_preview_image.png .github/workflows/replace-workshop-preview.yml - git commit -m "Use correct MCM artwork for Workshop preview" - git push origin HEAD:workshop From 0b39626d9d657f7f3c65fdd1e448754df4e89425 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:26:22 +0700 Subject: [PATCH 11/18] Remove obsolete main publisher from Workshop branch --- .github/workflows/publish-ready-build.yml | 94 ----------------------- 1 file changed, 94 deletions(-) delete mode 100644 .github/workflows/publish-ready-build.yml diff --git a/.github/workflows/publish-ready-build.yml b/.github/workflows/publish-ready-build.yml deleted file mode 100644 index 3d4565c..0000000 --- a/.github/workflows/publish-ready-build.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Publish ready-to-install build - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: write - -concurrency: - group: publish-ready-build - cancel-in-progress: true - -jobs: - publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Keep one-click download table in README - shell: bash - run: | - python3 - <<'PY' - from pathlib import Path - - path = Path('README.md') - text = path.read_text(encoding='utf-8') - if '## Download / Скачать' not in text: - needle = '| 한국어 | [한국어](#ko) |\n\n' - lines = [ - '| 한국어 | [한국어](#ko) |', - '', - '## Download / Скачать', - '', - '| Build / Сборка | Download / Скачать |', - '|---|---|', - '| **Ready-to-install / Готовая версия** | **[⬇️ Download ZIP / Скачать ZIP](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/download/latest-build/Metamorph-Creative-Menu.zip)** |', - '| Build page / Страница сборки | [Open / Открыть](https://github.com/zerodancing/Metamorph-Creative-Menu/releases/tag/latest-build) |', - '', - '> The ZIP already contains the `metamorph_creative_menu` folder. Extract/copy that folder directly into `Noita/mods/`. ', - '> ZIP уже содержит папку `metamorph_creative_menu`. Распакуйте/скопируйте её прямо в `Noita/mods/`.', - '', - ] - block = '\n'.join(lines) - if needle not in text: - raise SystemExit('Language table marker not found in README.md') - text = text.replace(needle, block, 1) - text = text.replace( - '> ZIP уже содержит папку `metamorph_creative_menu`. Распакуйте/скопируйте её прямо в `Noita/mods/`.\n> Choose your language above.', - '> ZIP уже содержит папку `metamorph_creative_menu`. Распакуйте/скопируйте её прямо в `Noita/mods/`.\n\n> Choose your language above.', - 1, - ) - path.write_text(text, encoding='utf-8') - PY - - if ! git diff --quiet -- README.md; then - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git add README.md - git commit -m "Polish one-click download section" - git push - fi - - - name: Package playable mod - shell: bash - run: | - rm -f Metamorph-Creative-Menu.zip - zip -r -9 Metamorph-Creative-Menu.zip metamorph_creative_menu \ - -x 'metamorph_creative_menu/tests/*' \ - 'metamorph_creative_menu/README.txt' - unzip -l Metamorph-Creative-Menu.zip | grep -q 'metamorph_creative_menu/mod.xml' - unzip -l Metamorph-Creative-Menu.zip | grep -q 'metamorph_creative_menu/init.lua' - - - name: Publish stable download URL - env: - GH_TOKEN: ${{ github.token }} - shell: bash - run: | - git tag -f latest-build HEAD - git push origin refs/tags/latest-build --force - - if gh release view latest-build >/dev/null 2>&1; then - gh release upload latest-build Metamorph-Creative-Menu.zip --clobber - gh release edit latest-build \ - --title "Latest ready-to-install build" \ - --notes "Automatically packaged from the current main branch. Download Metamorph-Creative-Menu.zip, then copy the included metamorph_creative_menu folder into Noita/mods/." - else - gh release create latest-build Metamorph-Creative-Menu.zip \ - --title "Latest ready-to-install build" \ - --notes "Automatically packaged from the current main branch. Download Metamorph-Creative-Menu.zip, then copy the included metamorph_creative_menu folder into Noita/mods/." - fi From 0976baa15a584471ee4b2898dbd16247832fb67d Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:27:10 +0700 Subject: [PATCH 12/18] Fold Workshop publishing into validated workflow --- .github/workflows/publish-workshop-build.yml | 106 ------------------- 1 file changed, 106 deletions(-) delete mode 100644 .github/workflows/publish-workshop-build.yml diff --git a/.github/workflows/publish-workshop-build.yml b/.github/workflows/publish-workshop-build.yml deleted file mode 100644 index f20bf66..0000000 --- a/.github/workflows/publish-workshop-build.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Publish Workshop build - -on: - push: - branches: [workshop] - workflow_dispatch: - -permissions: - contents: write - -jobs: - publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Validate Workshop build first - shell: bash - run: | - set -euo pipefail - test -f metamorph_creative_menu/mod.xml - test -f metamorph_creative_menu/mod_id.txt - test -f metamorph_creative_menu/init.lua - test -f metamorph_creative_menu/workshop.xml - test -f metamorph_creative_menu/workshop_preview_image.png - test ! -d metamorph_creative_menu/NoitaPatcher - if find metamorph_creative_menu -type f -iname '*.dll' | grep -q .; then - echo 'Workshop package contains a DLL' >&2 - exit 1 - fi - if grep -q 'request_no_api_restrictions' metamorph_creative_menu/mod.xml; then - echo 'Workshop mod.xml requests unrestricted API' >&2 - exit 1 - fi - - - name: Package ready-to-upload Workshop mod - shell: bash - run: | - set -euo pipefail - rm -rf dist - mkdir -p dist/metamorph_creative_menu - cp -a metamorph_creative_menu/. dist/metamorph_creative_menu/ - rm -rf \ - dist/metamorph_creative_menu/NoitaPatcher \ - dist/metamorph_creative_menu/tests \ - dist/metamorph_creative_menu/files/qa \ - dist/metamorph_creative_menu/files/diagnostics - rm -f dist/metamorph_creative_menu/README.txt - ( - cd dist - zip -qr ../Metamorph-Creative-Menu-Workshop.zip metamorph_creative_menu - ) - - python3 - <<'PY' - from pathlib import Path - import zipfile - - archive = Path('Metamorph-Creative-Menu-Workshop.zip') - with zipfile.ZipFile(archive) as z: - names = set(z.namelist()) - required = { - 'metamorph_creative_menu/mod.xml', - 'metamorph_creative_menu/mod_id.txt', - 'metamorph_creative_menu/init.lua', - 'metamorph_creative_menu/workshop.xml', - 'metamorph_creative_menu/workshop_preview_image.png', - } - missing = sorted(required - names) - if missing: - raise SystemExit('Missing required files in Workshop ZIP: ' + ', '.join(missing)) - forbidden = [ - n for n in names - if n.lower().endswith('.dll') - or n.startswith('metamorph_creative_menu/NoitaPatcher/') - or n.startswith('metamorph_creative_menu/tests/') - or n.startswith('metamorph_creative_menu/files/qa/') - or n.startswith('metamorph_creative_menu/files/diagnostics/') - ] - if forbidden: - raise SystemExit('Forbidden files in Workshop ZIP: ' + ', '.join(sorted(forbidden))) - print(f'Workshop ZIP: PASS bytes={archive.stat().st_size}') - PY - - - name: Publish stable Workshop download - env: - GH_TOKEN: ${{ github.token }} - shell: bash - run: | - set -euo pipefail - TAG=workshop-latest - ASSET=Metamorph-Creative-Menu-Workshop.zip - - git tag -f "$TAG" "$GITHUB_SHA" - git push origin "refs/tags/$TAG" --force - - if gh release view "$TAG" >/dev/null 2>&1; then - gh release edit "$TAG" \ - --title "Latest Steam Workshop build" \ - --notes "Ready-to-upload Steam Workshop edition. This build intentionally excludes bundled NoitaPatcher/DLL and unrestricted API access." - else - gh release create "$TAG" \ - --title "Latest Steam Workshop build" \ - --notes "Ready-to-upload Steam Workshop edition. This build intentionally excludes bundled NoitaPatcher/DLL and unrestricted API access." - fi - - gh release upload "$TAG" "$ASSET" --clobber From 011c73cac0e04bded803abc2e8db889d9343ce99 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:27:58 +0700 Subject: [PATCH 13/18] Gate Workshop publishing on full validation --- .github/workflows/workshop-validation.yml | 107 ++++++++++++++++++++-- 1 file changed, 99 insertions(+), 8 deletions(-) diff --git a/.github/workflows/workshop-validation.yml b/.github/workflows/workshop-validation.yml index 3444a3d..a0734df 100644 --- a/.github/workflows/workshop-validation.yml +++ b/.github/workflows/workshop-validation.yml @@ -1,4 +1,4 @@ -name: Validate Workshop build +name: Workshop build on: push: @@ -8,11 +8,15 @@ on: permissions: contents: read +concurrency: + group: workshop-build + cancel-in-progress: true + jobs: validate: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Validate Workshop metadata and package rules shell: bash @@ -34,11 +38,16 @@ jobs: root / 'workshop.xml', root / 'workshop_preview_image.png', root / 'dev_mode.lua', + root / 'README.txt', ] missing = [p.relative_to(root).as_posix() for p in required if not p.is_file()] if missing: raise SystemExit('Missing Workshop files: ' + ', '.join(missing)) + readme = (root / 'README.txt').read_text(encoding='utf-8') + if readme != 'Creator: zerodancing\n': + raise SystemExit("Workshop source README.txt must contain only 'Creator: zerodancing'") + if (root / 'NoitaPatcher').exists(): raise SystemExit('Workshop branch must not contain NoitaPatcher/') dlls = [p.relative_to(root).as_posix() for p in root.rglob('*.dll')] @@ -154,11 +163,8 @@ jobs: candidates = list((root / 'files').rglob('*.lua')) + [root / 'init.lua', root / 'settings.lua'] pattern = re.compile(r'(?/dev/null 2>&1; then + gh release upload "$TAG" "$ASSET" --clobber + gh release edit "$TAG" --title "Latest Steam Workshop build" --notes "$notes" + else + gh release create "$TAG" "$ASSET" --target "$GITHUB_SHA" --title "Latest Steam Workshop build" --notes "$notes" + fi From 4ef42893b32bf4a720468f6910fa97eabfa98732 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 21:29:46 +0700 Subject: [PATCH 14/18] Audit Workshop runtime residue --- .github/workflows/workshop-runtime-audit.yml | 66 ++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/workshop-runtime-audit.yml diff --git a/.github/workflows/workshop-runtime-audit.yml b/.github/workflows/workshop-runtime-audit.yml new file mode 100644 index 0000000..918c06c --- /dev/null +++ b/.github/workflows/workshop-runtime-audit.yml @@ -0,0 +1,66 @@ +name: Workshop runtime residue audit + +on: + push: + branches: [workshop] + paths: + - '.github/workflows/workshop-runtime-audit.yml' + +permissions: + contents: read + +jobs: + audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - name: Scan exact Steam upload set + shell: python + run: | + from pathlib import Path + import re + import xml.etree.ElementTree as ET + + root = Path('metamorph_creative_menu') + workshop = ET.parse(root / 'workshop.xml').getroot() + + def split_pipe(value): + return [x.strip().replace('\\', '/') for x in value.split('|') if x.strip()] + + excluded_dirs = set(split_pipe(workshop.attrib.get('dont_upload_folders', ''))) + excluded_files = set(split_pipe(workshop.attrib.get('dont_upload_files', ''))) + text_suffixes = {'.lua', '.xml', '.txt', '.csv', '.json', '.frag', '.vert'} + rules = [ + ('numbered test chronology', re.compile(r'\bTEST\s+\d+\b', re.I)), + ('test-only production API', re.compile(r'\b[A-Za-z0-9_]+_for_test\b')), + ('conversation wording', re.compile(r"\b(?:the\s+)?user['’]s\s+build\b|\bat\s+the\s+user['’]s\s+request\b", re.I)), + ('numbered runtime label', re.compile(r'\[MCM\s*(?:TEST\s*)?\d{2,}\]', re.I)), + ('AI attribution residue', re.compile(r'\b(?:ChatGPT|OpenAI|Claude|Gemini|Copilot|LLM|AI[- ]generated|generated\s+by\s+AI)\b', re.I)), + ('debug state API', re.compile(r'\bdebug_state\b')), + ('profiling control API', re.compile(r'\bset_(?:profiling|metrics)_enabled\b')), + ] + + findings = [] + scanned = 0 + for path in sorted(root.rglob('*')): + if not path.is_file() or path.suffix.lower() not in text_suffixes: + continue + rel = path.relative_to(root).as_posix() + if rel in excluded_files or any(rel == d or rel.startswith(d + '/') for d in excluded_dirs): + continue + scanned += 1 + try: + text = path.read_text(encoding='utf-8') + except UnicodeDecodeError: + continue + for lineno, line in enumerate(text.splitlines(), 1): + for label, pattern in rules: + if pattern.search(line): + findings.append(f'{rel}:{lineno}: {label}: {line.strip()[:220]}') + + if findings: + print(f'WORKSHOP_RUNTIME_AUDIT=FAIL files={scanned} findings={len(findings)}') + for finding in findings: + print(finding) + raise SystemExit(1) + print(f'WORKSHOP_RUNTIME_AUDIT=PASS files={scanned}') From 252de88fbf5c2126d8af20c0145f094c6377d528 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 22:14:20 +0700 Subject: [PATCH 15/18] Capture Workshop runtime audit findings --- .github/workflows/workshop-runtime-audit.yml | 30 ++++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/.github/workflows/workshop-runtime-audit.yml b/.github/workflows/workshop-runtime-audit.yml index 918c06c..5726733 100644 --- a/.github/workflows/workshop-runtime-audit.yml +++ b/.github/workflows/workshop-runtime-audit.yml @@ -14,10 +14,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 + - name: Scan exact Steam upload set + id: scan shell: python run: | from pathlib import Path + import os import re import xml.etree.ElementTree as ET @@ -58,9 +61,24 @@ jobs: if pattern.search(line): findings.append(f'{rel}:{lineno}: {label}: {line.strip()[:220]}') - if findings: - print(f'WORKSHOP_RUNTIME_AUDIT=FAIL files={scanned} findings={len(findings)}') - for finding in findings: - print(finding) - raise SystemExit(1) - print(f'WORKSHOP_RUNTIME_AUDIT=PASS files={scanned}') + status = 'FAIL' if findings else 'PASS' + lines = [f'WORKSHOP_RUNTIME_AUDIT={status} files={scanned} findings={len(findings)}', *findings] + report = '\n'.join(lines) + '\n' + Path('workshop-runtime-audit.txt').write_text(report, encoding='utf-8') + print(report, end='') + with open(os.environ['GITHUB_OUTPUT'], 'a', encoding='utf-8') as output: + output.write(f'findings={len(findings)}\n') + + - name: Upload audit report + if: always() + uses: actions/upload-artifact@v7 + with: + name: workshop-runtime-audit + path: workshop-runtime-audit.txt + if-no-files-found: error + retention-days: 1 + + - name: Fail on runtime residue + if: steps.scan.outputs.findings != '0' + shell: bash + run: exit 1 From 1f1cc1eae4096a7a42cc6ddafca8037a687f0dad Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 22:17:33 +0700 Subject: [PATCH 16/18] Broaden Workshop runtime residue inventory --- .github/workflows/workshop-runtime-audit.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workshop-runtime-audit.yml b/.github/workflows/workshop-runtime-audit.yml index 5726733..721ed57 100644 --- a/.github/workflows/workshop-runtime-audit.yml +++ b/.github/workflows/workshop-runtime-audit.yml @@ -39,8 +39,12 @@ jobs: ('conversation wording', re.compile(r"\b(?:the\s+)?user['’]s\s+build\b|\bat\s+the\s+user['’]s\s+request\b", re.I)), ('numbered runtime label', re.compile(r'\[MCM\s*(?:TEST\s*)?\d{2,}\]', re.I)), ('AI attribution residue', re.compile(r'\b(?:ChatGPT|OpenAI|Claude|Gemini|Copilot|LLM|AI[- ]generated|generated\s+by\s+AI)\b', re.I)), - ('debug state API', re.compile(r'\bdebug_state\b')), - ('profiling control API', re.compile(r'\bset_(?:profiling|metrics)_enabled\b')), + ('debug identifier', re.compile(r'\b(?:debug_[A-Za-z0-9_]+|[A-Za-z0-9_]+_debug|[A-Za-z0-9_]+\.debug(?:_[A-Za-z0-9_]+)?)\b')), + ('diagnostic identifier', re.compile(r'\b(?:diagnostic|diagnostics|DIAGNOSTICS|DIAGNOSTIC)\b')), + ('dev mode', re.compile(r'\b(?:dev_mode|DEV_MODE|METAMORPH_CREATIVE_MENU_DEV_MODE)\b')), + ('profiling or metrics', re.compile(r'\b(?:profiling|profile_metrics|metrics_enabled|set_(?:profiling|metrics)_enabled)\b', re.I)), + ('runtime print', re.compile(r'\bprint\s*\(')), + ('unfinished marker', re.compile(r'\b(?:TODO|FIXME|HACK)\b', re.I)), ] findings = [] @@ -59,11 +63,10 @@ jobs: for lineno, line in enumerate(text.splitlines(), 1): for label, pattern in rules: if pattern.search(line): - findings.append(f'{rel}:{lineno}: {label}: {line.strip()[:220]}') + findings.append(f'{rel}:{lineno}: {label}: {line.strip()[:240]}') status = 'FAIL' if findings else 'PASS' - lines = [f'WORKSHOP_RUNTIME_AUDIT={status} files={scanned} findings={len(findings)}', *findings] - report = '\n'.join(lines) + '\n' + report = '\n'.join([f'WORKSHOP_RUNTIME_AUDIT={status} files={scanned} findings={len(findings)}', *findings]) + '\n' Path('workshop-runtime-audit.txt').write_text(report, encoding='utf-8') print(report, end='') with open(os.environ['GITHUB_OUTPUT'], 'a', encoding='utf-8') as output: From 29bf1d9a5f8eccf08d6392958ff687c334da0979 Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 22:18:59 +0700 Subject: [PATCH 17/18] Capture Workshop source snapshot --- .github/workflows/workshop-runtime-audit.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/workshop-runtime-audit.yml b/.github/workflows/workshop-runtime-audit.yml index 721ed57..e6ad0dc 100644 --- a/.github/workflows/workshop-runtime-audit.yml +++ b/.github/workflows/workshop-runtime-audit.yml @@ -81,6 +81,15 @@ jobs: if-no-files-found: error retention-days: 1 + - name: Upload source snapshot + if: always() + uses: actions/upload-artifact@v7 + with: + name: workshop-source-snapshot + path: metamorph_creative_menu + if-no-files-found: error + retention-days: 1 + - name: Fail on runtime residue if: steps.scan.outputs.findings != '0' shell: bash From 52e176e2ed965eea3be06ee06a7c6ee069495b8a Mon Sep 17 00:00:00 2001 From: zerodancing Date: Sat, 12 Sep 2026 22:37:43 +0700 Subject: [PATCH 18/18] Harden Workshop payload validation --- .github/workflows/workshop-validation.yml | 260 ++++++++++++---------- 1 file changed, 146 insertions(+), 114 deletions(-) diff --git a/.github/workflows/workshop-validation.yml b/.github/workflows/workshop-validation.yml index a0734df..acd31e6 100644 --- a/.github/workflows/workshop-validation.yml +++ b/.github/workflows/workshop-validation.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Validate Workshop metadata and package rules + - name: Validate exact Workshop payload shell: bash run: | set -euo pipefail @@ -29,55 +29,44 @@ jobs: import xml.etree.ElementTree as ET root = Path('metamorph_creative_menu') - required = [ - root / 'mod.xml', - root / 'mod_id.txt', - root / 'init.lua', - root / 'settings.lua', - root / 'translations.csv', - root / 'workshop.xml', - root / 'workshop_preview_image.png', - root / 'dev_mode.lua', - root / 'README.txt', + required_source = [ + 'mod.xml', + 'mod_id.txt', + 'init.lua', + 'settings.lua', + 'translations.csv', + 'workshop.xml', + 'workshop_preview_image.png', + 'README.txt', ] - missing = [p.relative_to(root).as_posix() for p in required if not p.is_file()] + missing = [name for name in required_source if not (root / name).is_file()] if missing: - raise SystemExit('Missing Workshop files: ' + ', '.join(missing)) + raise SystemExit('Missing Workshop source files: ' + ', '.join(missing)) - readme = (root / 'README.txt').read_text(encoding='utf-8') - if readme != 'Creator: zerodancing\n': + if (root / 'README.txt').read_text(encoding='utf-8') != 'Creator: zerodancing\n': raise SystemExit("Workshop source README.txt must contain only 'Creator: zerodancing'") if (root / 'NoitaPatcher').exists(): raise SystemExit('Workshop branch must not contain NoitaPatcher/') - dlls = [p.relative_to(root).as_posix() for p in root.rglob('*.dll')] + dlls = sorted(p.relative_to(root).as_posix() for p in root.rglob('*.dll')) if dlls: - raise SystemExit('Native DLLs are not allowed in Workshop build: ' + ', '.join(dlls)) + raise SystemExit('Native DLLs are not allowed in Workshop branch: ' + ', '.join(dlls)) - mod_id = (root / 'mod_id.txt').read_text(encoding='utf-8').strip() - if mod_id != 'metamorph_creative_menu': - raise SystemExit(f'Unexpected mod_id.txt value: {mod_id!r}') - - dev_text = (root / 'dev_mode.lua').read_text(encoding='utf-8') - if not re.search(r'(?m)^\s*dev_mode\s*=\s*0\s*$', dev_text): - raise SystemExit('Workshop build must ship with dev_mode = 0') + if (root / 'mod_id.txt').read_text(encoding='utf-8').strip() != 'metamorph_creative_menu': + raise SystemExit('Unexpected mod_id.txt value') mod_root = ET.parse(root / 'mod.xml').getroot() - if mod_root.tag != 'Mod': - raise SystemExit('mod.xml root must be ') - if mod_root.attrib.get('name') != 'Metamorph: Creative Menu': - raise SystemExit('Unexpected mod.xml name') + if mod_root.tag != 'Mod' or mod_root.attrib.get('name') != 'Metamorph: Creative Menu': + raise SystemExit('Unexpected mod.xml metadata') if 'request_no_api_restrictions' in mod_root.attrib: raise SystemExit('Workshop mod.xml must not request unrestricted API') if mod_root.attrib.get('is_game_mode', '0') not in {'0', 'false'}: raise SystemExit('Workshop build must not be a game mode') - workshop_root = ET.parse(root / 'workshop.xml').getroot() - if workshop_root.tag != 'Mod': - raise SystemExit('workshop.xml root must be ') - if workshop_root.attrib.get('name') != 'Metamorph: Creative Menu': - raise SystemExit('Unexpected workshop.xml name') - if workshop_root.attrib.get('description') != '': + workshop = ET.parse(root / 'workshop.xml').getroot() + if workshop.tag != 'Mod' or workshop.attrib.get('name') != 'Metamorph: Creative Menu': + raise SystemExit('Unexpected workshop.xml metadata') + if workshop.attrib.get('description') != '': raise SystemExit('workshop.xml description must remain empty so Steam page text is not overwritten') documented_tags = { @@ -86,7 +75,7 @@ jobs: 'creatures','bosses','alchemy','tweaks','items','audio','cheats','funny', 'streaming integration','mod dependencies', } - tags = [x.strip() for x in workshop_root.attrib.get('tags', '').split(',') if x.strip()] + tags = [x.strip() for x in workshop.attrib.get('tags', '').split(',') if x.strip()] unknown_tags = sorted(set(tags) - documented_tags) if unknown_tags: raise SystemExit('Unknown Workshop tags: ' + ', '.join(unknown_tags)) @@ -96,98 +85,134 @@ jobs: def split_pipe(value): return [x.strip().replace('\\', '/') for x in value.split('|') if x.strip()] - excluded_dirs = set(split_pipe(workshop_root.attrib.get('dont_upload_folders', ''))) - excluded_files = set(split_pipe(workshop_root.attrib.get('dont_upload_files', ''))) + excluded_dirs = set(split_pipe(workshop.attrib.get('dont_upload_folders', ''))) + excluded_files = set(split_pipe(workshop.attrib.get('dont_upload_files', ''))) required_excluded_dirs = {'NoitaPatcher', 'tests', 'files/qa', 'files/diagnostics'} - missing_exclusions = sorted(required_excluded_dirs - excluded_dirs) - if missing_exclusions: - raise SystemExit('Missing Workshop folder exclusions: ' + ', '.join(missing_exclusions)) - if 'README.txt' not in excluded_files: - raise SystemExit('README.txt must be excluded from Workshop upload') + required_excluded_files = { + 'README.txt', + 'dev_mode.lua', + 'files/core/bounded_log.lua', + 'files/features/creatures/diagnostics.lua', + 'files/integrations/ew/bridge/qa.lua', + 'files/integrations/ew/bridge/qa_reserved.lua', + } + missing_dir_exclusions = sorted(required_excluded_dirs - excluded_dirs) + missing_file_exclusions = sorted(required_excluded_files - excluded_files) + if missing_dir_exclusions: + raise SystemExit('Missing Workshop folder exclusions: ' + ', '.join(missing_dir_exclusions)) + if missing_file_exclusions: + raise SystemExit('Missing Workshop file exclusions: ' + ', '.join(missing_file_exclusions)) preview = root / 'workshop_preview_image.png' data = preview.read_bytes() if len(data) < 24 or data[:8] != b'\x89PNG\r\n\x1a\n' or data[12:16] != b'IHDR': raise SystemExit('workshop_preview_image.png is not a valid PNG with IHDR header') width, height = struct.unpack('>II', data[16:24]) - if (width, height) != (1280, 720): - raise SystemExit(f'Workshop preview must be 1280x720, got {width}x{height}') - if width * 9 != height * 16: - raise SystemExit('Workshop preview must be exactly 16:9') + if (width, height) != (1280, 720) or width * 9 != height * 16: + raise SystemExit(f'Workshop preview must be exactly 1280x720 (16:9), got {width}x{height}') if preview.stat().st_size >= 1_000_000: raise SystemExit('Workshop preview should stay below 1 MB') - allowed = {'.txt','.csv','.xml','.json','.bmp','.png','.lua','.frag','.vert','.bank','.bin','.plz'} - bad = [] + def excluded(relative): + name = relative.as_posix() + return name in excluded_files or any(name == d or name.startswith(d + '/') for d in excluded_dirs) + + allowed_suffixes = {'.txt','.csv','.xml','.json','.bmp','.png','.lua','.frag','.vert','.bank','.bin','.plz'} uploaded = [] + bad_types = [] symlinks = [] - for p in root.rglob('*'): - if not p.is_file(): + for path in sorted(root.rglob('*')): + if not path.is_file(): continue - rel = p.relative_to(root) - rel_s = rel.as_posix() - if p.is_symlink(): - symlinks.append(rel_s) + relative = path.relative_to(root) + if path.is_symlink(): + symlinks.append(relative.as_posix()) continue - if any(rel_s == d or rel_s.startswith(d + '/') for d in excluded_dirs): + if excluded(relative): continue - if rel_s in excluded_files: - continue - uploaded.append(rel_s) - if p.suffix.lower() not in allowed: - bad.append(rel_s) - if symlinks: - raise SystemExit('Symlinks are not allowed in Workshop package: ' + ', '.join(symlinks)) - if bad: - raise SystemExit('Unsupported Workshop file types: ' + ', '.join(bad)) - for essential in ['mod.xml','mod_id.txt','init.lua','settings.lua','translations.csv','workshop.xml','workshop_preview_image.png']: - if essential not in uploaded: - raise SystemExit('Essential file excluded from upload: ' + essential) - - if (root / 'workshop_id.txt').exists(): - print('Workshop metadata: existing workshop_id.txt detected (update mode)') - else: - print('Workshop metadata: no workshop_id.txt yet (first-publication mode)') - print(f'Workshop metadata/package: PASS uploaded_files={len(uploaded)} preview={width}x{height} preview_bytes={preview.stat().st_size}') - PY - - - name: Check unrestricted Lua API usage - shell: bash - run: | - set -euo pipefail - python3 - <<'PY' - from pathlib import Path - import re - - root = Path('metamorph_creative_menu') - candidates = list((root / 'files').rglob('*.lua')) + [root / 'init.lua', root / 'settings.lua'] - pattern = re.compile(r'(? {dependency}') + if missing_refs: + raise SystemExit('Workshop payload references missing local files:\n' + '\n'.join(sorted(set(missing_refs)))) + + mode = 'update' if (root / 'workshop_id.txt').exists() else 'first-publication' + print( + f'Workshop payload: PASS mode={mode} files={len(uploaded)} ' + f'preview={width}x{height} preview_bytes={preview.stat().st_size}' + ) PY - name: Install texlua @@ -219,7 +244,6 @@ jobs: 'localization_contract.py', 'qa_phase_contract.py', ] - contracts = { p.name: p for p in (root / 'tests').glob('*_contract.py') if p.name not in excluded_contracts @@ -232,8 +256,8 @@ jobs: ordered.extend(contracts[name] for name in sorted(contracts)) mocks = sorted((root / 'tests').glob('*_mock.lua'), key=lambda p: p.name) - commands = [[sys.executable, str(p), str(root)] for p in ordered] - commands.extend([[texlua, str(p), str(root)] for p in mocks]) + commands = [[sys.executable, str(path), str(root)] for path in ordered] + commands.extend([[texlua, str(path), str(root)] for path in mocks]) for command in commands: print('+', ' '.join(command), flush=True) subprocess.run(command, check=True) @@ -276,7 +300,7 @@ jobs: name = relative.as_posix() return name in excluded_files or any(name == d or name.startswith(d + '/') for d in excluded_dirs) - files = [p for p in sorted(root.rglob('*')) if p.is_file() and not excluded(p.relative_to(root))] + files = [path for path in sorted(root.rglob('*')) if path.is_file() and not excluded(path.relative_to(root))] with ZipFile(archive_path, 'w', compression=ZIP_DEFLATED, compresslevel=9) as archive: for path in files: relative = Path('metamorph_creative_menu') / path.relative_to(root) @@ -299,14 +323,22 @@ jobs: missing = sorted(required - names) if missing: raise SystemExit('Missing required files in Workshop ZIP: ' + ', '.join(missing)) + forbidden_exact = { + 'metamorph_creative_menu/README.txt', + 'metamorph_creative_menu/dev_mode.lua', + 'metamorph_creative_menu/files/core/bounded_log.lua', + 'metamorph_creative_menu/files/features/creatures/diagnostics.lua', + 'metamorph_creative_menu/files/integrations/ew/bridge/qa.lua', + 'metamorph_creative_menu/files/integrations/ew/bridge/qa_reserved.lua', + } forbidden = sorted( name for name in names - if name.lower().endswith('.dll') + if name in forbidden_exact + or name.lower().endswith('.dll') or name.startswith('metamorph_creative_menu/NoitaPatcher/') or name.startswith('metamorph_creative_menu/tests/') or name.startswith('metamorph_creative_menu/files/qa/') or name.startswith('metamorph_creative_menu/files/diagnostics/') - or name == 'metamorph_creative_menu/README.txt' ) if forbidden: raise SystemExit('Forbidden files in Workshop ZIP: ' + ', '.join(forbidden))