modwright 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +35 -0
- package/README.md +212 -0
- package/assets/claude/agents/mw-explore.md +46 -0
- package/assets/claude/agents/mw-fixture.md +33 -0
- package/assets/claude/agents/mw-rule-author.md +51 -0
- package/assets/claude/agents/mw-scaffold-author.md +48 -0
- package/assets/claude/skills/mw-author.md +59 -0
- package/assets/claude/skills/mw-new-item.md +51 -0
- package/assets/claude/skills/mw-new-spell.md +50 -0
- package/assets/claude/skills/mw-scaffold.md +59 -0
- package/assets/claude/skills/mw-ship.md +57 -0
- package/assets/claude/skills/mw-validate.md +51 -0
- package/assets/claude/skills/mw-verify.md +59 -0
- package/assets/nivalisnights/extract_resources.py +177 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Config.json +5 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Lua/BootstrapClient.lua +55 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Lua/BootstrapServer.lua +81 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Lua/ModWrightBridge/Log.lua +96 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Lua/ModWrightBridge/Probes.lua +1038 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Lua/ModWrightBridge/ProbesClient.lua +74 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Lua/ModWrightBridge/Protocol.lua +985 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/ScriptExtender/Lua/ModWrightBridge/Watch.lua +175 -0
- package/bridges/bg3-se/Mods/ModWrightBridge/meta.lsx +45 -0
- package/bridges/bg3-se/README.md +99 -0
- package/bridges/bg3-se/bridge.json +68 -0
- package/bridges/cp2077-cet/ModWrightBridge/init.lua +375 -0
- package/bridges/cp2077-cet/ModWrightBridge/probes.lua +1104 -0
- package/bridges/cp2077-cet/ModWrightBridge/protocol.lua +1306 -0
- package/bridges/cp2077-cet/README.md +165 -0
- package/bridges/cp2077-cet/bridge.json +53 -0
- package/dist/core/bridge/arm.js +175 -0
- package/dist/core/bridge/cet-console.js +26 -0
- package/dist/core/bridge/cet-log.js +362 -0
- package/dist/core/bridge/index.js +11 -0
- package/dist/core/bridge/locate.js +35 -0
- package/dist/core/bridge/paths.js +34 -0
- package/dist/core/bridge/pending.js +89 -0
- package/dist/core/bridge/poll.js +155 -0
- package/dist/core/bridge/stage.js +100 -0
- package/dist/core/bridge/status.js +97 -0
- package/dist/core/bridge/types.js +145 -0
- package/dist/core/bridge/validate.js +107 -0
- package/dist/core/build/index.js +6 -0
- package/dist/core/build/manifest.js +47 -0
- package/dist/core/build/paths.js +32 -0
- package/dist/core/build/run.js +342 -0
- package/dist/core/build/stage.js +265 -0
- package/dist/core/build/steps/bg3.js +129 -0
- package/dist/core/build/steps/core.js +195 -0
- package/dist/core/build/steps/cyberpunk.js +95 -0
- package/dist/core/build/steps/listing.js +35 -0
- package/dist/core/build/types.js +13 -0
- package/dist/core/build/zip.js +148 -0
- package/dist/core/compat/check.js +113 -0
- package/dist/core/compat/pe.js +220 -0
- package/dist/core/compat/types.js +1 -0
- package/dist/core/compat/version.js +70 -0
- package/dist/core/deploy/guards.js +292 -0
- package/dist/core/deploy/index.js +5 -0
- package/dist/core/deploy/plan.js +696 -0
- package/dist/core/deploy/reload-apply.js +361 -0
- package/dist/core/deploy/reload.js +358 -0
- package/dist/core/deploy/sources.js +169 -0
- package/dist/core/deploy/types.js +1 -0
- package/dist/core/epic.js +54 -0
- package/dist/core/fsutil.js +191 -0
- package/dist/core/home.js +70 -0
- package/dist/core/knowledge/facts.js +229 -0
- package/dist/core/knowledge/index.js +4 -0
- package/dist/core/knowledge/search.js +112 -0
- package/dist/core/knowledge/store.js +123 -0
- package/dist/core/knowledge/types.js +1 -0
- package/dist/core/ledger/check.js +42 -0
- package/dist/core/ledger/hooks.js +80 -0
- package/dist/core/ledger/index.js +7 -0
- package/dist/core/ledger/query.js +17 -0
- package/dist/core/ledger/record.js +84 -0
- package/dist/core/ledger/status.js +53 -0
- package/dist/core/ledger/store.js +98 -0
- package/dist/core/ledger/types.js +108 -0
- package/dist/core/logs/index.js +4 -0
- package/dist/core/logs/registry.js +50 -0
- package/dist/core/logs/scan.js +195 -0
- package/dist/core/logs/triage.js +160 -0
- package/dist/core/logs/types.js +1 -0
- package/dist/core/lsx.js +10 -0
- package/dist/core/lz4.js +66 -0
- package/dist/core/mods.js +229 -0
- package/dist/core/process.js +49 -0
- package/dist/core/project/build-steps.js +83 -0
- package/dist/core/project/describe.js +74 -0
- package/dist/core/project/index.js +5 -0
- package/dist/core/project/load.js +146 -0
- package/dist/core/project/schema.js +264 -0
- package/dist/core/project/types.js +3 -0
- package/dist/core/prompts.js +72 -0
- package/dist/core/registry.js +35 -0
- package/dist/core/safety/backup.js +206 -0
- package/dist/core/safety/execute.js +188 -0
- package/dist/core/safety/index.js +5 -0
- package/dist/core/safety/plan.js +122 -0
- package/dist/core/safety/restore.js +172 -0
- package/dist/core/safety/types.js +1 -0
- package/dist/core/scaffold/bootstrap.js +7 -0
- package/dist/core/scaffold/catalog.js +28 -0
- package/dist/core/scaffold/claude-assets.js +271 -0
- package/dist/core/scaffold/collisions.js +64 -0
- package/dist/core/scaffold/emit.js +356 -0
- package/dist/core/scaffold/engine.js +680 -0
- package/dist/core/scaffold/ids.js +78 -0
- package/dist/core/scaffold/index.js +10 -0
- package/dist/core/scaffold/jsonpath.js +121 -0
- package/dist/core/scaffold/load.js +81 -0
- package/dist/core/scaffold/render.js +85 -0
- package/dist/core/scaffold/sequence.js +396 -0
- package/dist/core/scaffold/types.js +309 -0
- package/dist/core/steam.js +63 -0
- package/dist/core/surfaceutil.js +36 -0
- package/dist/core/testplan/check.js +67 -0
- package/dist/core/testplan/index.js +5 -0
- package/dist/core/testplan/load.js +100 -0
- package/dist/core/testplan/registry.js +317 -0
- package/dist/core/testplan/run.js +389 -0
- package/dist/core/testplan/types.js +82 -0
- package/dist/core/text/converters/bg3.js +50 -0
- package/dist/core/text/converters/cyberpunk.js +36 -0
- package/dist/core/text/converters/index.js +261 -0
- package/dist/core/text/diff/cr2w.js +180 -0
- package/dist/core/text/diff/index.js +16 -0
- package/dist/core/text/diff/loca.js +43 -0
- package/dist/core/text/diff/lsx.js +126 -0
- package/dist/core/text/handles.js +86 -0
- package/dist/core/text/index.js +6 -0
- package/dist/core/text/json.js +46 -0
- package/dist/core/text/templates/cache.js +71 -0
- package/dist/core/text/templates/index.js +3 -0
- package/dist/core/text/templates/library.js +245 -0
- package/dist/core/text/templates/types.js +51 -0
- package/dist/core/text/toolchain.js +16 -0
- package/dist/core/text/types.js +1 -0
- package/dist/core/text/validate.js +149 -0
- package/dist/core/text/xml.js +58 -0
- package/dist/core/toolchain/datafetch.js +151 -0
- package/dist/core/toolchain/env.js +63 -0
- package/dist/core/toolchain/features.js +170 -0
- package/dist/core/toolchain/index.js +8 -0
- package/dist/core/toolchain/install.js +191 -0
- package/dist/core/toolchain/locate.js +275 -0
- package/dist/core/toolchain/remember.js +84 -0
- package/dist/core/toolchain/run.js +318 -0
- package/dist/core/toolchain/specs.js +351 -0
- package/dist/core/toolchain/types.js +1 -0
- package/dist/core/types.js +1 -0
- package/dist/core/userconfig.js +66 -0
- package/dist/core/validate/context.js +139 -0
- package/dist/core/validate/index.js +5 -0
- package/dist/core/validate/registry.js +58 -0
- package/dist/core/validate/run.js +131 -0
- package/dist/core/validate/suppressions.js +91 -0
- package/dist/core/validate/types.js +2 -0
- package/dist/core/yamledit.js +51 -0
- package/dist/index.js +389 -0
- package/dist/server.js +1914 -0
- package/dist/surfaces/baldursgate3/compat.js +164 -0
- package/dist/surfaces/baldursgate3/identity.js +110 -0
- package/dist/surfaces/baldursgate3/index/build.js +331 -0
- package/dist/surfaces/baldursgate3/index/index.js +17 -0
- package/dist/surfaces/baldursgate3/index/info.js +40 -0
- package/dist/surfaces/baldursgate3/index/parsers/loca.js +41 -0
- package/dist/surfaces/baldursgate3/index/parsers/lsx.js +137 -0
- package/dist/surfaces/baldursgate3/index/parsers/stats.js +45 -0
- package/dist/surfaces/baldursgate3/index/parsers/treasuretable.js +57 -0
- package/dist/surfaces/baldursgate3/index/parsers/xmlutil.js +142 -0
- package/dist/surfaces/baldursgate3/index/queries.js +327 -0
- package/dist/surfaces/baldursgate3/index/schema.js +62 -0
- package/dist/surfaces/baldursgate3/index.js +3 -0
- package/dist/surfaces/baldursgate3/logs.js +278 -0
- package/dist/surfaces/baldursgate3/modsettings.js +115 -0
- package/dist/surfaces/baldursgate3/pak.js +153 -0
- package/dist/surfaces/baldursgate3/settings.js +49 -0
- package/dist/surfaces/baldursgate3/surface.js +232 -0
- package/dist/surfaces/baldursgate3/validators/bridge.js +7 -0
- package/dist/surfaces/baldursgate3/validators/files.js +476 -0
- package/dist/surfaces/baldursgate3/validators/items.js +1001 -0
- package/dist/surfaces/baldursgate3/validators/progression.js +734 -0
- package/dist/surfaces/baldursgate3/validators/stats.js +1076 -0
- package/dist/surfaces/baldursgate3/validators/story.js +790 -0
- package/dist/surfaces/baldursgate3/validators/templates.js +7 -0
- package/dist/surfaces/cyberpunk2077/compat.js +223 -0
- package/dist/surfaces/cyberpunk2077/index/build.js +231 -0
- package/dist/surfaces/cyberpunk2077/index/index.js +17 -0
- package/dist/surfaces/cyberpunk2077/index/info.js +51 -0
- package/dist/surfaces/cyberpunk2077/index/model.js +52 -0
- package/dist/surfaces/cyberpunk2077/index/parsers/tweak.js +483 -0
- package/dist/surfaces/cyberpunk2077/index/parsers/tweakxl-yaml.js +183 -0
- package/dist/surfaces/cyberpunk2077/index/queries.js +504 -0
- package/dist/surfaces/cyberpunk2077/index/resource.js +135 -0
- package/dist/surfaces/cyberpunk2077/index/schema.js +90 -0
- package/dist/surfaces/cyberpunk2077/index.js +3 -0
- package/dist/surfaces/cyberpunk2077/logs.js +742 -0
- package/dist/surfaces/cyberpunk2077/paths.js +12 -0
- package/dist/surfaces/cyberpunk2077/surface.js +218 -0
- package/dist/surfaces/cyberpunk2077/validators/bridge.js +7 -0
- package/dist/surfaces/cyberpunk2077/validators/cr2w.js +349 -0
- package/dist/surfaces/cyberpunk2077/validators/garments.js +1181 -0
- package/dist/surfaces/cyberpunk2077/validators/mesh.js +338 -0
- package/dist/surfaces/cyberpunk2077/validators/modsettings.js +120 -0
- package/dist/surfaces/cyberpunk2077/validators/packaging.js +463 -0
- package/dist/surfaces/cyberpunk2077/validators/red4ext.js +318 -0
- package/dist/surfaces/cyberpunk2077/validators/redscript.js +193 -0
- package/dist/surfaces/cyberpunk2077/validators/templates.js +7 -0
- package/dist/surfaces/cyberpunk2077/validators/tweaks.js +768 -0
- package/dist/surfaces/cyberpunk2077/validators/vehicles.js +531 -0
- package/dist/surfaces/cyberpunk2077/validators/xl.js +308 -0
- package/dist/surfaces/eldenring/binders.js +111 -0
- package/dist/surfaces/eldenring/compat.js +166 -0
- package/dist/surfaces/eldenring/dcx.js +49 -0
- package/dist/surfaces/eldenring/index.js +13 -0
- package/dist/surfaces/eldenring/loaders.js +132 -0
- package/dist/surfaces/eldenring/logs.js +67 -0
- package/dist/surfaces/eldenring/paramdef.js +256 -0
- package/dist/surfaces/eldenring/params.js +129 -0
- package/dist/surfaces/eldenring/surface.js +121 -0
- package/dist/surfaces/eldenring/tools.js +52 -0
- package/dist/surfaces/eldenring/validators/binders.js +193 -0
- package/dist/surfaces/eldenring/validators/packages.js +159 -0
- package/dist/surfaces/eldenring/validators/params.js +334 -0
- package/dist/surfaces/eldenring/validators/profiles.js +287 -0
- package/dist/surfaces/index.js +34 -0
- package/dist/surfaces/nivalisnights/compat.js +229 -0
- package/dist/surfaces/nivalisnights/index/build.js +310 -0
- package/dist/surfaces/nivalisnights/index/index.js +5 -0
- package/dist/surfaces/nivalisnights/index/queries.js +231 -0
- package/dist/surfaces/nivalisnights/index.js +4 -0
- package/dist/surfaces/nivalisnights/logs.js +473 -0
- package/dist/surfaces/nivalisnights/surface.js +195 -0
- package/dist/surfaces/skyrimse/archives.js +229 -0
- package/dist/surfaces/skyrimse/compat.js +163 -0
- package/dist/surfaces/skyrimse/index.js +12 -0
- package/dist/surfaces/skyrimse/loadorder.js +174 -0
- package/dist/surfaces/skyrimse/logs.js +241 -0
- package/dist/surfaces/skyrimse/plugins.js +149 -0
- package/dist/surfaces/skyrimse/records.js +94 -0
- package/dist/surfaces/skyrimse/surface.js +240 -0
- package/dist/surfaces/skyrimse/validators/archive-records.js +165 -0
- package/dist/surfaces/skyrimse/validators/archives.js +110 -0
- package/dist/surfaces/skyrimse/validators/plugins.js +374 -0
- package/dist/surfaces/skyrimse/validators/records.js +117 -0
- package/dist/surfaces/stardewvalley/compat.js +190 -0
- package/dist/surfaces/stardewvalley/config.js +42 -0
- package/dist/surfaces/stardewvalley/contentpatcher.js +203 -0
- package/dist/surfaces/stardewvalley/index/index.js +229 -0
- package/dist/surfaces/stardewvalley/index/wiki.js +190 -0
- package/dist/surfaces/stardewvalley/index.js +12 -0
- package/dist/surfaces/stardewvalley/logs.js +307 -0
- package/dist/surfaces/stardewvalley/mods.js +182 -0
- package/dist/surfaces/stardewvalley/surface.js +244 -0
- package/dist/surfaces/stardewvalley/validators/content.js +321 -0
- package/dist/surfaces/stardewvalley/validators/fields.js +147 -0
- package/dist/surfaces/stardewvalley/validators/loadorder.js +69 -0
- package/dist/surfaces/stardewvalley/validators/manifest.js +221 -0
- package/dist/surfaces/subnautica2/compat.js +138 -0
- package/dist/surfaces/subnautica2/index.js +5 -0
- package/dist/surfaces/subnautica2/logs.js +129 -0
- package/dist/surfaces/subnautica2/paks.js +173 -0
- package/dist/surfaces/subnautica2/surface.js +151 -0
- package/dist/surfaces/subnautica2/validators/packaging.js +298 -0
- package/dist/surfaces/valheim/compat.js +171 -0
- package/dist/surfaces/valheim/index/index.js +301 -0
- package/dist/surfaces/valheim/index/tables.js +103 -0
- package/dist/surfaces/valheim/index.js +11 -0
- package/dist/surfaces/valheim/logs.js +197 -0
- package/dist/surfaces/valheim/packaging.js +131 -0
- package/dist/surfaces/valheim/plugins.js +270 -0
- package/dist/surfaces/valheim/references.js +121 -0
- package/dist/surfaces/valheim/surface.js +223 -0
- package/dist/surfaces/valheim/validators/packaging.js +218 -0
- package/dist/surfaces/valheim/validators/plugins.js +287 -0
- package/dist/surfaces/valheim/validators/references.js +169 -0
- package/knowledge/baldursgate3/animations.gr2.yaml +166 -0
- package/knowledge/baldursgate3/audio.voice.yaml +182 -0
- package/knowledge/baldursgate3/audio.wwise.yaml +104 -0
- package/knowledge/baldursgate3/charactercreation.heads-hair.yaml +193 -0
- package/knowledge/baldursgate3/communitylibrary.shared-content.yaml +129 -0
- package/knowledge/baldursgate3/compatibilityframework.api.yaml +176 -0
- package/knowledge/baldursgate3/crash.causes.yaml +90 -0
- package/knowledge/baldursgate3/dialogue.dialogbank.yaml +120 -0
- package/knowledge/baldursgate3/dialogue.files.yaml +236 -0
- package/knowledge/baldursgate3/dialogue.osiris-goals.yaml +386 -0
- package/knowledge/baldursgate3/dialogue.yaml +122 -0
- package/knowledge/baldursgate3/feats.classes.yaml +164 -0
- package/knowledge/baldursgate3/items.cloth-physics.yaml +167 -0
- package/knowledge/baldursgate3/items.roottemplates.yaml +320 -0
- package/knowledge/baldursgate3/items.visualbank.yaml +628 -0
- package/knowledge/baldursgate3/journal.quests.yaml +214 -0
- package/knowledge/baldursgate3/loadorder.modsettings.yaml +128 -0
- package/knowledge/baldursgate3/localization.handles.yaml +92 -0
- package/knowledge/baldursgate3/misc.encoding-and-practice.yaml +111 -0
- package/knowledge/baldursgate3/origins.companions.yaml +144 -0
- package/knowledge/baldursgate3/osiris.signatures.yaml +211 -0
- package/knowledge/baldursgate3/packaging.meta.yaml +155 -0
- package/knowledge/baldursgate3/packaging.paks.yaml +79 -0
- package/knowledge/baldursgate3/process.launch.yaml +34 -0
- package/knowledge/baldursgate3/progressions.yaml +92 -0
- package/knowledge/baldursgate3/publishing.modio-nexus.yaml +170 -0
- package/knowledge/baldursgate3/publishing.toolkit-modio.yaml +135 -0
- package/knowledge/baldursgate3/races.progression.yaml +228 -0
- package/knowledge/baldursgate3/scriptextender.console.yaml +257 -0
- package/knowledge/baldursgate3/scriptextender.yaml +252 -0
- package/knowledge/baldursgate3/stats.boosts.yaml +293 -0
- package/knowledge/baldursgate3/stats.equipment-kits.yaml +69 -0
- package/knowledge/baldursgate3/stats.interrupts.yaml +45 -0
- package/knowledge/baldursgate3/stats.itemcombos.yaml +65 -0
- package/knowledge/baldursgate3/stats.spells.yaml +293 -0
- package/knowledge/baldursgate3/stats.weapons.yaml +210 -0
- package/knowledge/baldursgate3/toolchain.divine.yaml +179 -0
- package/knowledge/baldursgate3/toolchain.lslib-formats.yaml +242 -0
- package/knowledge/baldursgate3/toolkit.levels.yaml +177 -0
- package/knowledge/baldursgate3/ui.icons-atlas.yaml +78 -0
- package/knowledge/baldursgate3/ui.icons.yaml +412 -0
- package/knowledge/baldursgate3/ui.mcm.yaml +161 -0
- package/knowledge/baldursgate3/vfx.materials.yaml +174 -0
- package/knowledge/baldursgate3/visuals.characterfix.yaml +73 -0
- package/knowledge/cyberpunk2077/animations.anims.yaml +118 -0
- package/knowledge/cyberpunk2077/anims.archivexl.yaml +163 -0
- package/knowledge/cyberpunk2077/anims.authoring.yaml +579 -0
- package/knowledge/cyberpunk2077/anims.encoder.yaml +156 -0
- package/knowledge/cyberpunk2077/anims.graph.yaml +629 -0
- package/knowledge/cyberpunk2077/anims.method.yaml +360 -0
- package/knowledge/cyberpunk2077/anims.pipeline.yaml +352 -0
- package/knowledge/cyberpunk2077/anims.roundtrip.yaml +222 -0
- package/knowledge/cyberpunk2077/anims.sets.yaml +176 -0
- package/knowledge/cyberpunk2077/archivexl.bodytypes.yaml +149 -0
- package/knowledge/cyberpunk2077/archivexl.dynamic-appearances.yaml +218 -0
- package/knowledge/cyberpunk2077/archivexl.manifest.yaml +214 -0
- package/knowledge/cyberpunk2077/audio.events.yaml +168 -0
- package/knowledge/cyberpunk2077/audio.sounds.yaml +164 -0
- package/knowledge/cyberpunk2077/audio.voicesets.yaml +146 -0
- package/knowledge/cyberpunk2077/cet.sandbox.yaml +219 -0
- package/knowledge/cyberpunk2077/clothing.garments.yaml +283 -0
- package/knowledge/cyberpunk2077/clothing.refits.yaml +215 -0
- package/knowledge/cyberpunk2077/codeware.overview.yaml +111 -0
- package/knowledge/cyberpunk2077/codeware.systems.yaml +192 -0
- package/knowledge/cyberpunk2077/drones.combat.yaml +416 -0
- package/knowledge/cyberpunk2077/drones.control.yaml +552 -0
- package/knowledge/cyberpunk2077/entities.appearance.yaml +166 -0
- package/knowledge/cyberpunk2077/equipmentex.slots.yaml +151 -0
- package/knowledge/cyberpunk2077/fx.effects.yaml +246 -0
- package/knowledge/cyberpunk2077/fx.lights.yaml +171 -0
- package/knowledge/cyberpunk2077/hair.modding.yaml +145 -0
- package/knowledge/cyberpunk2077/items.wiring.yaml +246 -0
- package/knowledge/cyberpunk2077/loadorder.archives.yaml +71 -0
- package/knowledge/cyberpunk2077/mesh.blender.yaml +209 -0
- package/knowledge/cyberpunk2077/nativedb.dump.yaml +98 -0
- package/knowledge/cyberpunk2077/npc.appearance.yaml +275 -0
- package/knowledge/cyberpunk2077/npc.behaviour.yaml +128 -0
- package/knowledge/cyberpunk2077/npc.locomotion.yaml +490 -0
- package/knowledge/cyberpunk2077/packaging.deploy.yaml +175 -0
- package/knowledge/cyberpunk2077/packaging.variants.yaml +176 -0
- package/knowledge/cyberpunk2077/player.control.yaml +918 -0
- package/knowledge/cyberpunk2077/process.assetbuild.yaml +154 -0
- package/knowledge/cyberpunk2077/process.lessons.yaml +276 -0
- package/knowledge/cyberpunk2077/quests.minor.yaml +46 -0
- package/knowledge/cyberpunk2077/quests.scenes.yaml +282 -0
- package/knowledge/cyberpunk2077/quickhacks.tiers.yaml +41 -0
- package/knowledge/cyberpunk2077/red4ext.api.yaml +645 -0
- package/knowledge/cyberpunk2077/red4ext.plugins.yaml +124 -0
- package/knowledge/cyberpunk2077/redhottools.hotreload.yaml +245 -0
- package/knowledge/cyberpunk2077/redscript.compile-log.yaml +76 -0
- package/knowledge/cyberpunk2077/redscript.modules.yaml +118 -0
- package/knowledge/cyberpunk2077/toolchain.wolvenkit.yaml +163 -0
- package/knowledge/cyberpunk2077/tweakdb.loot-recipes.yaml +184 -0
- package/knowledge/cyberpunk2077/tweakdb.melee.yaml +352 -0
- package/knowledge/cyberpunk2077/tweakdb.weapons.yaml +325 -0
- package/knowledge/cyberpunk2077/tweakxl.hotreload.yaml +151 -0
- package/knowledge/cyberpunk2077/tweakxl.yaml-syntax.yaml +208 -0
- package/knowledge/cyberpunk2077/ui.icons.yaml +259 -0
- package/knowledge/cyberpunk2077/ui.inkatlas.yaml +81 -0
- package/knowledge/cyberpunk2077/ui.modsettings.yaml +204 -0
- package/knowledge/cyberpunk2077/vehicles.control.yaml +475 -0
- package/knowledge/cyberpunk2077/vehicles.dashboard-ui.yaml +203 -0
- package/knowledge/cyberpunk2077/vehicles.entities.yaml +195 -0
- package/knowledge/cyberpunk2077/vehicles.wiring.yaml +137 -0
- package/knowledge/cyberpunk2077/wolvenkit.cli.yaml +167 -0
- package/knowledge/cyberpunk2077/workspot.system.yaml +55 -0
- package/knowledge/cyberpunk2077/world.interactions.yaml +41 -0
- package/knowledge/cyberpunk2077/world.loot-container.yaml +167 -0
- package/knowledge/cyberpunk2077/world.sectors.yaml +233 -0
- package/knowledge/eldenring/formats.binders.yaml +237 -0
- package/knowledge/eldenring/launcher.me3.yaml +230 -0
- package/knowledge/eldenring/launcher.modengine2.yaml +119 -0
- package/knowledge/eldenring/params.paramdef.yaml +149 -0
- package/knowledge/eldenring/params.regulation.yaml +142 -0
- package/knowledge/eldenring/saves.online.yaml +118 -0
- package/knowledge/eldenring/toolchain.cli.yaml +256 -0
- package/knowledge/nivalisnights/modding.runtime.yaml +157 -0
- package/knowledge/skyrimse/archives.bsa.yaml +212 -0
- package/knowledge/skyrimse/install.detection.yaml +41 -0
- package/knowledge/skyrimse/loadorder.files.yaml +242 -0
- package/knowledge/skyrimse/plugins.esl.yaml +189 -0
- package/knowledge/skyrimse/plugins.format.yaml +224 -0
- package/knowledge/skyrimse/skse.runtime.yaml +283 -0
- package/knowledge/skyrimse/toolchain.xedit-spriggit.yaml +336 -0
- package/knowledge/stardewvalley/contentpatcher.format.yaml +338 -0
- package/knowledge/stardewvalley/distribution.channels.yaml +236 -0
- package/knowledge/stardewvalley/game.versions.yaml +202 -0
- package/knowledge/stardewvalley/install.layout.yaml +277 -0
- package/knowledge/stardewvalley/smapi.loader.yaml +284 -0
- package/knowledge/stardewvalley/smapi.logs.yaml +329 -0
- package/knowledge/stardewvalley/smapi.manifest.yaml +293 -0
- package/knowledge/stardewvalley/toolchain.build.yaml +261 -0
- package/knowledge/stardewvalley/wiki.dataformat.yaml +130 -0
- package/knowledge/subnautica2/game.build.yaml +331 -0
- package/knowledge/subnautica2/modding.state.yaml +210 -0
- package/knowledge/subnautica2/ue5.containers.yaml +72 -0
- package/knowledge/subnautica2/ue5.paks.yaml +203 -0
- package/knowledge/subnautica2/ue5.tooling.yaml +175 -0
- package/knowledge/subnautica2/ue5.ue4ss.yaml +203 -0
- package/knowledge/valheim/bepinex.loader.yaml +247 -0
- package/knowledge/valheim/bepinex.plugins.yaml +251 -0
- package/knowledge/valheim/game.versions.yaml +321 -0
- package/knowledge/valheim/install.layout.yaml +216 -0
- package/knowledge/valheim/jotunn.library.yaml +334 -0
- package/knowledge/valheim/thunderstore.packaging.yaml +217 -0
- package/knowledge/valheim/toolchain.build.yaml +111 -0
- package/package.json +29 -0
- package/scaffolds/baldursgate3/new-class-injection.yaml +148 -0
- package/scaffolds/baldursgate3/new-item.yaml +264 -0
- package/scaffolds/baldursgate3/new-mod.yaml +174 -0
- package/scaffolds/baldursgate3/new-passive.yaml +100 -0
- package/scaffolds/baldursgate3/new-project.yaml +118 -0
- package/scaffolds/baldursgate3/new-quest-stub.yaml +159 -0
- package/scaffolds/baldursgate3/new-spell.yaml +102 -0
- package/scaffolds/baldursgate3/new-status.yaml +119 -0
- package/scaffolds/baldursgate3/sequences/subclass-kit.yaml +50 -0
- package/scaffolds/cyberpunk2077/edit-tweak.yaml +70 -0
- package/scaffolds/cyberpunk2077/mesh-export-preset.yaml +170 -0
- package/scaffolds/cyberpunk2077/new-entity-patch.yaml +255 -0
- package/scaffolds/cyberpunk2077/new-garment-refit.yaml +279 -0
- package/scaffolds/cyberpunk2077/new-item-chain.yaml +548 -0
- package/scaffolds/cyberpunk2077/new-localization.yaml +130 -0
- package/scaffolds/cyberpunk2077/new-mod-settings.yaml +133 -0
- package/scaffolds/cyberpunk2077/new-player-replacer.yaml +1003 -0
- package/scaffolds/cyberpunk2077/new-project.yaml +157 -0
- package/scaffolds/cyberpunk2077/new-sector-node.yaml +156 -0
- package/scaffolds/cyberpunk2077/new-tweak.yaml +121 -0
- package/scaffolds/cyberpunk2077/new-vehicle-livery.yaml +148 -0
- package/scaffolds/cyberpunk2077/new-workspot-entity.yaml +177 -0
- package/scaffolds/cyberpunk2077/sequences/iconic-weapon.yaml +72 -0
- package/scaffolds/cyberpunk2077/sequences/quickhack-takeover.yaml +213 -0
- package/scaffolds/stardewvalley/new-cp-patch.yaml +106 -0
- package/scaffolds/stardewvalley/new-csharp-mod.yaml +195 -0
- package/scaffolds/stardewvalley/new-project.yaml +184 -0
- package/scaffolds/stardewvalley/sequences/content-pack.yaml +31 -0
- package/scripts/mw-tool.mjs +184 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
game: cyberpunk2077
|
|
2
|
+
topic: packaging.deploy
|
|
3
|
+
title: Packaging, deployment, and version compatibility
|
|
4
|
+
facts:
|
|
5
|
+
- id: cp2077.packaging.archive-cli-pack-command
|
|
6
|
+
claim: wolvenkit cli pack command packages a mod project directory into a .archive file; syntax is
|
|
7
|
+
`cli pack <source-dir> -o <output-dir> -v <verbosity>` with -v Minimal being typical for
|
|
8
|
+
distribution.
|
|
9
|
+
status: verified
|
|
10
|
+
source: ModWright field verification
|
|
11
|
+
tags:
|
|
12
|
+
- cli
|
|
13
|
+
- pack
|
|
14
|
+
- archive
|
|
15
|
+
- command
|
|
16
|
+
- deployment
|
|
17
|
+
detail: Produces <mod>.archive in the output directory. Note that -v is passed by one build script
|
|
18
|
+
but omitted from another description of the same pipeline, and no source says what it
|
|
19
|
+
controls; read it as verbosity, not compression. This is a CLI invocation, so there is no
|
|
20
|
+
in-game verification.
|
|
21
|
+
- id: cp2077.packaging.archive-xl-manifest-required
|
|
22
|
+
claim: An archivexl .archive.xl manifest file must accompany the .archive file in the deployment
|
|
23
|
+
directory; the .xl file is loaded on game init and registers resources, factories, and
|
|
24
|
+
streaming blocks from the archive.
|
|
25
|
+
status: verified
|
|
26
|
+
verified_on: "2.31"
|
|
27
|
+
source: ModWright field verification
|
|
28
|
+
tags:
|
|
29
|
+
- archivexl
|
|
30
|
+
- manifest
|
|
31
|
+
- .xl
|
|
32
|
+
- deployment
|
|
33
|
+
- registration
|
|
34
|
+
detail: <Mod>.archive is always deployed next to <Mod>.archive.xl. The .xl does not describe where
|
|
35
|
+
resources live inside the archive; it registers what ArchiveXL must wire up — localization
|
|
36
|
+
onscreens, factory csvs and streaming blocks — and the weapon's name, icon factory and world
|
|
37
|
+
case all depend on it.
|
|
38
|
+
- id: cp2077.packaging.tweakxl-yaml-deployment
|
|
39
|
+
claim: tweakxl yaml files are deployed directly to the game's r6\tweaks directory; no packing is
|
|
40
|
+
required. The yaml is loaded by tweakxl on game init or hot-reloaded via TweakXL.Reload() in
|
|
41
|
+
the CET console.
|
|
42
|
+
status: verified
|
|
43
|
+
verified_on: "2.31"
|
|
44
|
+
source: ModWright field verification
|
|
45
|
+
tags:
|
|
46
|
+
- tweakxl
|
|
47
|
+
- yaml
|
|
48
|
+
- deployment
|
|
49
|
+
- hot-reload
|
|
50
|
+
detail: A mod's yaml is copied to r6\tweaks\<Mod>\. The console call is spelled TweakXL.Reload() —
|
|
51
|
+
an earlier lowercase "tweakxl.Reload()" was wrong. How fast the reload is is not recorded.
|
|
52
|
+
- id: cp2077.packaging.powershell-build-script
|
|
53
|
+
claim: powershell build scripts (build.ps1) automate the pack → deploy → verify cycle; they handle
|
|
54
|
+
file locking (wait for game exit before copying), backup of previous versions, and optional
|
|
55
|
+
nexus packaging.
|
|
56
|
+
status: inferred
|
|
57
|
+
source: ModWright research
|
|
58
|
+
tags:
|
|
59
|
+
- powershell
|
|
60
|
+
- build
|
|
61
|
+
- deploy
|
|
62
|
+
- automation
|
|
63
|
+
- packaging
|
|
64
|
+
detail: "Correction: the example build.ps1 does NOT handle file locking and does NOT back up
|
|
65
|
+
previous versions. It is param(-Export, -Dist, -Version), then optional Blender export + CLI
|
|
66
|
+
import, then `cli pack`, then three plain Copy-Item calls, then the optional dist zip. The
|
|
67
|
+
retry-on-lock behaviour described in the project notes was run ad hoc, not from this script."
|
|
68
|
+
- id: cp2077.packaging.file-lock-retry-loop
|
|
69
|
+
claim: Archive files in the game directory are locked while the game is running; deployment scripts
|
|
70
|
+
must implement a retry loop with backoff to wait for game exit before copying new versions.
|
|
71
|
+
status: verified
|
|
72
|
+
source: ModWright field verification
|
|
73
|
+
tags:
|
|
74
|
+
- file-lock
|
|
75
|
+
- deployment
|
|
76
|
+
- game-exit
|
|
77
|
+
- retry
|
|
78
|
+
- backoff
|
|
79
|
+
detail: The lock is real and was hit during a build. The "deployment scripts must implement" half is
|
|
80
|
+
advice, and the example build.ps1 does not implement it — its Copy-Item calls simply fail
|
|
81
|
+
while the game holds the archive. yaml under r6\tweaks is not locked. This is a filesystem
|
|
82
|
+
observation, not an in-game verification.
|
|
83
|
+
- id: cp2077.packaging.nexus-zip-structure
|
|
84
|
+
claim: nexus mod packages are .zip files containing the mod directory structure with r6\tweaks\,
|
|
85
|
+
archive\, and other paths matching the game install layout; vortex unpacks these directly into
|
|
86
|
+
the game folder.
|
|
87
|
+
status: inferred
|
|
88
|
+
source: ModWright research
|
|
89
|
+
tags:
|
|
90
|
+
- nexus
|
|
91
|
+
- packaging
|
|
92
|
+
- zip
|
|
93
|
+
- vortex
|
|
94
|
+
- structure
|
|
95
|
+
detail: In the example project the zip is dist\<Author><Mod>-<Version>.zip (default version 1.0.0).
|
|
96
|
+
It contains only archive\pc\mod (the .archive and .xl) and r6\tweaks\<Mod> (the yaml) — the
|
|
97
|
+
author-only CET cleanup mod is deliberately not shipped. The mod page tells manual installers
|
|
98
|
+
to "extract the zip into the Cyberpunk 2077 root folder". Re-sourced from an uncited "nexus
|
|
99
|
+
Mods standard layout".
|
|
100
|
+
- id: cp2077.packaging.red4ext-requirement
|
|
101
|
+
claim: red4ext runtime loader 1.29.0+ is required for mods using tweakxl and archivexl; it must be
|
|
102
|
+
installed separately before any red4ext-dependent mods will load.
|
|
103
|
+
status: community
|
|
104
|
+
source: ModWright research
|
|
105
|
+
tags:
|
|
106
|
+
- red4ext
|
|
107
|
+
- loader
|
|
108
|
+
- requirement
|
|
109
|
+
- version
|
|
110
|
+
- dependency
|
|
111
|
+
detail: The 1.29.0+ floor is ArchiveXL's own stated requirement for the version compatible with game
|
|
112
|
+
2.31. The example mod lists RED4ext, ArchiveXL and TweakXL as its requirements.
|
|
113
|
+
- id: cp2077.packaging.version-matrix-breakage
|
|
114
|
+
claim: Every game patch can break mods; the version matrix (game version, red4ext, tweakxl,
|
|
115
|
+
archivexl, codeware, cet, redscript) must all align. A single version mismatch cascades into
|
|
116
|
+
silent failures or load crashes.
|
|
117
|
+
status: community
|
|
118
|
+
source: cp2077-archive-xl/README.md "Getting Started > Compatibility" (pins Cyberpunk 2077 2.31 and
|
|
119
|
+
redscript 0.5.31+, with RED4ext 1.29.0+ under Installation)
|
|
120
|
+
tags:
|
|
121
|
+
- version-matrix
|
|
122
|
+
- compatibility
|
|
123
|
+
- patch
|
|
124
|
+
- breakage
|
|
125
|
+
detail: The citable part is that a framework release pins an exact game version and exact dependency
|
|
126
|
+
floors — ArchiveXL for 2.31 requires redscript 0.5.31+ and RED4ext 1.29.0+, and the example
|
|
127
|
+
mod's CR2W assets are all stamped GameVersion 2310. A specific patch history that used to sit
|
|
128
|
+
here (RED4ext 1.26.1 breaking on 2.2, "2.31 broke core mods") came from an internal note,
|
|
129
|
+
which is not a citable source for this knowledge base, and has been removed.
|
|
130
|
+
- id: cp2077.packaging.cet-log-checks
|
|
131
|
+
claim: cet mod loading is signaled in bin/x64/plugins/cyber_engine_tweaks/cyber_engine_tweaks.log;
|
|
132
|
+
the cet console command `GetMod("name").Status()` returns the runtime state of a mod.
|
|
133
|
+
status: unverified
|
|
134
|
+
source: ModWright research
|
|
135
|
+
tags:
|
|
136
|
+
- cet
|
|
137
|
+
- log
|
|
138
|
+
- console
|
|
139
|
+
- status
|
|
140
|
+
- mod
|
|
141
|
+
detail: Two problems. The log path is not named in any of the example project's sources, so it is
|
|
142
|
+
unsupported here. And the example CET mod's init.lua registers an onUpdate handler and ends
|
|
143
|
+
with `return {}` — it exposes no Status method at all, so the console line cannot work as
|
|
144
|
+
written against that script. Method name corrected to Status() (capital S) as the project
|
|
145
|
+
notes spell it; a fabricated verified status and in-game attribution were removed.
|
|
146
|
+
- id: cp2077.packaging.game-version-compatibility
|
|
147
|
+
claim: Archive and cr2w files include a GameVersion header; a mod packed for one game version may
|
|
148
|
+
not load on another without compatibility fixes. Always verify mod dependencies match the
|
|
149
|
+
target game version.
|
|
150
|
+
status: inferred
|
|
151
|
+
source: ModWright research
|
|
152
|
+
tags:
|
|
153
|
+
- gameversion
|
|
154
|
+
- compatibility
|
|
155
|
+
- archive
|
|
156
|
+
- cr2w
|
|
157
|
+
detail: 'What is sourced: CR2W json carries a GameVersion (2310 here, i.e. game 2.31) written by
|
|
158
|
+
WolvenKit, and framework releases pin a game version. Whether a version mismatch blocks
|
|
159
|
+
loading is not recorded anywhere in these sources; the "mods built for 2.3 may not load on
|
|
160
|
+
2.1" example that used to sit in this fact was invented and has been removed, along with its
|
|
161
|
+
in-game verified attribution.'
|
|
162
|
+
- id: cp2077.packaging.mod-folder-structure
|
|
163
|
+
claim: "Game mods are installed under the game root: tweakxl yaml goes in r6\\tweaks\\, archives and
|
|
164
|
+
their .xl manifests go in archive\\pc\\mod\\, and cet mods go in
|
|
165
|
+
bin\\x64\\plugins\\cyber_engine_tweaks\\mods\\. Mods are loaded on game init and must be
|
|
166
|
+
present before launch."
|
|
167
|
+
status: inferred
|
|
168
|
+
source: ModWright research
|
|
169
|
+
tags:
|
|
170
|
+
- mod-folder
|
|
171
|
+
- directory
|
|
172
|
+
- structure
|
|
173
|
+
- layout
|
|
174
|
+
detail: The earlier version of this fact listed "r6/mods", which is not a Cyberpunk 2077 path and
|
|
175
|
+
appears in none of the sources. Redscript would live in r6\scripts; this project ships none.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
game: cyberpunk2077
|
|
2
|
+
topic: packaging.variants
|
|
3
|
+
title: Clean-pack builds, optional CET dependency, and variant/ArchiveXL gotchas (a melee weapon mod)
|
|
4
|
+
facts:
|
|
5
|
+
- id: cp2077.packaging.variants.build-sources-pack-silently-as-json
|
|
6
|
+
claim: Serialized build-source JSON files (e.g. a mesh's .mesh.json or an app's .app.json) left
|
|
7
|
+
inside the working archive-staging tree pack into the shipping archive SILENTLY, because .json
|
|
8
|
+
is a real game resource type — unlike, say, .png, which the packer skips. A clean build must
|
|
9
|
+
explicitly sweep and remove every .json in the tree except the one real localization resource
|
|
10
|
+
(en-us.json) before packing.
|
|
11
|
+
status: inferred
|
|
12
|
+
source: ModWright research
|
|
13
|
+
tags:
|
|
14
|
+
- packaging
|
|
15
|
+
- build
|
|
16
|
+
- json
|
|
17
|
+
- source-leakage
|
|
18
|
+
- silent
|
|
19
|
+
detail: "Caught as a real ship blocker in a release audit: the deployed archive was carrying 1.32 MB
|
|
20
|
+
of sources (a 1044 KB body .mesh.json and a 154 KB weapon .app.json) that should never have
|
|
21
|
+
shipped, cutting the archive from 33 entries to 29 once removed. archive-staging doubles as
|
|
22
|
+
the working tree, which is why sources end up next to shipping assets in the first place."
|
|
23
|
+
- id: cp2077.packaging.variants.dead-referenced-fx-resource-must-be-pruned
|
|
24
|
+
claim: A design revert (reverting a weapon .app back to referencing a vanilla effect instead of a
|
|
25
|
+
cloned one) can leave a now-unreferenced custom effect resource still sitting in the staging
|
|
26
|
+
tree; a clean build must verify the string does not appear anywhere in the shipping app before
|
|
27
|
+
dropping such a file, rather than assuming staleness from context alone.
|
|
28
|
+
status: inferred
|
|
29
|
+
source: ModWright research
|
|
30
|
+
tags:
|
|
31
|
+
- packaging
|
|
32
|
+
- build
|
|
33
|
+
- dead-asset
|
|
34
|
+
- effect
|
|
35
|
+
- cleanup
|
|
36
|
+
detail: The specific dead asset was fx\<mod>_idle_thermal.effect(.json), left over from the mod's
|
|
37
|
+
heat-haze work (see cp2077.fx.effects.heat-haze-is-a-particle-effect and
|
|
38
|
+
cp2077.fx.effects.placement-info-named-tag-required for that history). build.ps1 checks for
|
|
39
|
+
and removes this specific file by name.
|
|
40
|
+
- id: cp2077.packaging.variants.build-script-gates-source-and-dev-script-leakage
|
|
41
|
+
claim: "Also observed on a melee weapon mod, extending cp2077.packaging.powershell-build-script
|
|
42
|
+
(documented on a simpler example mod whose build.ps1 has no such gates): a release build
|
|
43
|
+
script can enforce its own cleanliness invariants by throwing a hard error if a named
|
|
44
|
+
build-source file is found in the packed archive's listing (via a CLI archiveinfo dump) or if
|
|
45
|
+
a named dev-only script survives into the final scripts package — catching packaging
|
|
46
|
+
regressions automatically rather than relying on a human to remember to check."
|
|
47
|
+
status: inferred
|
|
48
|
+
source: ModWright research
|
|
49
|
+
tags:
|
|
50
|
+
- packaging
|
|
51
|
+
- build
|
|
52
|
+
- gate
|
|
53
|
+
- automated-check
|
|
54
|
+
detail: "Two separate gates: one checks the packed archive's listing for the weapon .app.json and
|
|
55
|
+
body .mesh.json build sources; the other checks the staged scripts folder for any of the named
|
|
56
|
+
dev scripts. Both throw and abort the build rather than merely warning."
|
|
57
|
+
- id: cp2077.packaging.variants.dev-scripts-that-log-every-attack-must-never-ship
|
|
58
|
+
claim: Development-only redscript files that log on every attack (<Mod>_Debug.reds,
|
|
59
|
+
<Mod>_Probe.reds, <Mod>_TrailProbe.reds) are explicitly excluded from the shipped package by
|
|
60
|
+
name; at least one of these was found still deployed in the live game install during a
|
|
61
|
+
pre-release audit, despite being headed "DELETE BEFORE SHIP" in its own file.
|
|
62
|
+
status: inferred
|
|
63
|
+
source: ModWright research
|
|
64
|
+
tags:
|
|
65
|
+
- packaging
|
|
66
|
+
- build
|
|
67
|
+
- dev-script
|
|
68
|
+
- ship-blocker
|
|
69
|
+
- audit
|
|
70
|
+
detail: The audit found and removed <Mod>_Debug.reds and <Mod>_Probe.reds from the live installed
|
|
71
|
+
game folder — a real, not merely hypothetical, near-miss for shipping instrumentation to end
|
|
72
|
+
users. build.ps1's final gate (a throw if any dev script name is found in the staged package)
|
|
73
|
+
exists specifically because of this incident.
|
|
74
|
+
- id: cp2077.packaging.variants.optional-cet-dependency-flag
|
|
75
|
+
claim: A mod build script can make an entire dependency (here, Cyber Engine Tweaks, for one optional
|
|
76
|
+
cosmetic feature) opt-in via a build flag (-WithCetLight) rather than opt-out, so the default
|
|
77
|
+
build genuinely ships without that dependency listed, and a -Deploy without the flag actively
|
|
78
|
+
removes any previously-deployed instance of that dependency's files from the live game install
|
|
79
|
+
(backed up, never silently deleted).
|
|
80
|
+
status: inferred
|
|
81
|
+
source: ModWright research
|
|
82
|
+
tags:
|
|
83
|
+
- packaging
|
|
84
|
+
- build
|
|
85
|
+
- cet
|
|
86
|
+
- optional-dependency
|
|
87
|
+
- flag
|
|
88
|
+
detail: 'Rationale recorded in the script: the CET-driven weapon light only added a dynamic
|
|
89
|
+
point-light cast onto nearby surfaces (the emissive glow, haze, and tip smoke are all
|
|
90
|
+
unaffected — see cp2077.fx.lights.cet-glow-light-dropped-no-functional-loss) and "did not earn
|
|
91
|
+
a whole extra dependency," per explicit user call after comparing both builds in game. The
|
|
92
|
+
removed live CET mod is backed up to rollback\cet-<ModLight>-<timestamp> rather than deleted
|
|
93
|
+
outright.'
|
|
94
|
+
- id: cp2077.packaging.variants.archive-lock-retry-loop-on-deploy
|
|
95
|
+
claim: "Also observed on a melee weapon mod, and here actually implemented: confirming
|
|
96
|
+
cp2077.packaging.file-lock-retry-loop (documented on a simpler example mod whose own build.ps1
|
|
97
|
+
does NOT implement the retry), that mod's build script copies the shipping archive into a
|
|
98
|
+
running game's mod folder with a retry loop — every 10 seconds for up to 180 attempts (30
|
|
99
|
+
minutes) — because the file is locked while the game process holds it open."
|
|
100
|
+
status: inferred
|
|
101
|
+
source: ModWright research
|
|
102
|
+
tags:
|
|
103
|
+
- packaging
|
|
104
|
+
- build
|
|
105
|
+
- deploy
|
|
106
|
+
- file-lock
|
|
107
|
+
- retry
|
|
108
|
+
detail: The same retry-until-unlocked pattern is used independently in the mod's world-cache deploy
|
|
109
|
+
script (same 10 s interval, 180 attempts) and its mesh deploy script (5 s interval, 120
|
|
110
|
+
attempts) — a consistent project-wide convention for archive deploys, not a one-off.
|
|
111
|
+
- id: cp2077.packaging.variants.endless-flow-is-a-static-record-shape-not-a-runtime-toggle
|
|
112
|
+
claim: The "endless flow" no-finisher combo variant, as implemented by omitting the highest-index
|
|
113
|
+
final-attack record, is a property of which TweakDB records exist at build time — it cannot be
|
|
114
|
+
switched on or off at runtime, unlike vanilla's own CanWeaponInfinitlyCombo /
|
|
115
|
+
CanMeleeInfinitelyCombo status-effect-driven infinite-combo mechanism, which is inherently a
|
|
116
|
+
temporary, stackable, runtime-toggleable state.
|
|
117
|
+
status: inferred
|
|
118
|
+
source: ModWright research
|
|
119
|
+
tags:
|
|
120
|
+
- packaging
|
|
121
|
+
- variant
|
|
122
|
+
- endless-flow
|
|
123
|
+
- static
|
|
124
|
+
- design
|
|
125
|
+
detail: This is exactly why the variant's own notes frame vanilla's flag pair as "the right
|
|
126
|
+
foundation for anything like 'cyberware that lets you attack endlessly'" rather than reusing
|
|
127
|
+
the accidental record-shape variant for any future toggleable ability — the two approaches are
|
|
128
|
+
not interchangeable despite producing a similar-looking effect.
|
|
129
|
+
- id: cp2077.packaging.variants.unshipped-variant-kept-as-a-named-snapshot-folder
|
|
130
|
+
claim: An unshipped but design-relevant behavior can be preserved as a standalone variant folder
|
|
131
|
+
holding the EXACT pre-fix source files (the yaml and any redscript) needed to reproduce it,
|
|
132
|
+
rather than only as prose documentation — letting a future session restore the variant by
|
|
133
|
+
dropping those specific files back in, with no re-derivation needed.
|
|
134
|
+
status: inferred
|
|
135
|
+
source: ModWright research
|
|
136
|
+
tags:
|
|
137
|
+
- packaging
|
|
138
|
+
- variant
|
|
139
|
+
- snapshot
|
|
140
|
+
- documentation-pattern
|
|
141
|
+
detail: variants/endless-flow/ holds <mod>.yaml (pre-fix, with the AttacksNumber +1 but no
|
|
142
|
+
FinalAttack4 record) and <Mod>_AnimSteering.reds (the pre-refactor version) — described as
|
|
143
|
+
"the exact pre-fix state," distinct from the shipped versions of the same two files elsewhere
|
|
144
|
+
in the repo.
|
|
145
|
+
- id: cp2077.packaging.variants.nexus-name-field-charset-restriction
|
|
146
|
+
claim: The Nexus Mods mod-name field only accepts letters, numbers, spaces, and the characters ` _ '
|
|
147
|
+
( ) . -` ; any other punctuation in an intended display name must be dropped or substituted
|
|
148
|
+
when filling in the Nexus page.
|
|
149
|
+
status: community
|
|
150
|
+
source: ModWright research
|
|
151
|
+
tags:
|
|
152
|
+
- packaging
|
|
153
|
+
- nexus
|
|
154
|
+
- name-field
|
|
155
|
+
- charset
|
|
156
|
+
detail: The project's own release-packaging notes restate the same restriction as a pre-upload
|
|
157
|
+
checklist item ("the name field allows only letters/numbers/spaces/`_ ' ( ) . -`"), so it is
|
|
158
|
+
treated as settled practice for this project rather than re-derived each release.
|
|
159
|
+
- id: cp2077.packaging.variants.shipped-package-is-three-trees-plus-optional-fourth
|
|
160
|
+
claim: "Also observed on a melee weapon mod, extending cp2077.packaging.mod-folder-structure and
|
|
161
|
+
cp2077.packaging.nexus-zip-structure (both documented on a simpler example mod, which ships no
|
|
162
|
+
redscript): a redscript-shipping mod's package contains three trees — archive\\pc\\mod\\ (the
|
|
163
|
+
archive + its .xl), r6\\tweaks\\ (the TweakXL yaml), and r6\\scripts\\<ModName>\\ (redscript,
|
|
164
|
+
minus dev-only files) — and conditionally a fourth,
|
|
165
|
+
bin\\x64\\plugins\\cyber_engine_tweaks\\mods\\<ModName>\\, present ONLY when an optional CET
|
|
166
|
+
feature is explicitly opted into at build time."
|
|
167
|
+
status: inferred
|
|
168
|
+
source: ModWright research
|
|
169
|
+
tags:
|
|
170
|
+
- packaging
|
|
171
|
+
- build
|
|
172
|
+
- package-layout
|
|
173
|
+
- trees
|
|
174
|
+
detail: This layout matches the Vortex/manual install instructions published on the Nexus page ("the
|
|
175
|
+
zip contains archive\pc\mod, r6\tweaks and r6\scripts") when the optional 4th tree is
|
|
176
|
+
excluded, i.e. the default, no-CET build.
|