Repository navigation
Getting Started
- An agent that reads Agent Skills: Claude Code, Codex, Cursor or GitHub Copilot.
- Python 3.9 or newer for
mpn.py. It uses the standard library only. CI runs it on Python 3.9 and 3.14 on Linux, macOS and Windows. - MADNESS: Project Nexus from Steam. The game is Windows only; on Linux and Steam Deck it runs through Proton.
- For levels and new art: Unity 2019.2.6f1 exactly, and the developer's SceneTools or ModTools project from github.com/MPN-Modders. Another Unity version upgrades the project, and its bundles will not load in the game.
- For code mods: a .NET decompiler such as
ilspycmd, and the .NET SDK to build anet48assembly. - For sharing: a community Workshop uploader (the Modding Resources Master Doc lists two).
The skills install none of these. The agent asks before anything is installed, and it never handles your Steam login.
The repository is its own marketplace. In Claude Code:
/plugin marketplace add m4bwav/madnesswright
/plugin install madnesswright@madnesswright
Not tested for these pages: this install from GitHub. The maintainer's trigger tests ran with the plugin installed from a local marketplace.
Each release carries a zip of the three skill folders plus README, LICENSE and SECURITY.md. It holds no .claude-plugin folder, so it cannot be added as a marketplace; link its folders instead. With the GitHub CLI:
gh release download v0.1.2 -R m4bwav/madnesswrightThat gives madnesswright-0.1.2.zip (88,282 bytes, SHA-256 c851db83b706c2d6670bfa5bf532ba2a56ddc609c87b9723a0b2eedc706bfba5). Unzip it somewhere stable and link or copy each folder under skills/ into your agent's skills folder: ~/.claude/skills, ~/.agents/skills, ~/.copilot/skills or .cursor/skills. Keep the three folders side by side. madnesswright-scenes and madnesswright-modtools call the helper by the relative path ../madnesswright/scripts/mpn.py.
Not tested for these pages: linking the folders into each agent. The zip's contents and its mpn.py were checked; every output on this wiki comes from that copy.
Official modding runs only on the releasebeta Steam branch (checked 2026-10-17). The release build carries the mod loader but switches it off unless the build reports itself as Beta. On the public branch nothing in the Mods folder is read and no mod log is written (release v1.11.a, build 25615280; madnesswright RESEARCH.md R-20261017-9).
- Back up your saves first. The developer says to before switching, and removing a mod that added items once wiped modded weapon inventories (fixed in beta 2.13.l, 2024-12-19).
- In Steam: Library, right-click the game, Properties, Betas, choose
releasebeta. It needs no password. - Launch the game once. Player.log then reads
GAME INITIALIZED: Beta v..., andmpn.py wherereports"mods_allowed": true.
The backup, here run against a stand-in data folder holding one save file:
python mpn.py --data-dir game-data backup --out backups{
"ok": true,
"zip": "backups\\mpn-data-<stamp>.zip",
"files": 1,
"bytes": 156,
"source": "game-data",
"errors": []
}
Exit code 0.
Without --out the zip goes to mpn-backups in your home folder, named mpn-data-<date>-<time>.zip. It holds every file in the game's data folder (careers, Mods, settings) except Player.log and Player-prev.log. --data-dir is needed here only because the run used a stand-in folder; on your machine mpn.py finds the data folder itself (see The helper).
- "Give Hank more health" or "make a green blood mod" (
madnesswright). - "Why isn't my mod loading?" (
madnesswright). - "Make a Playground map with two rooms" (
madnesswright-scenes). - "Write a Harmony patch for Project Nexus" (
madnesswright-modtools).
Each skill reads its evergreen.json first and says in one line when its research is due for a refresh.
This wiki describes madnesswright 0.1.2 (tag v0.1.2) and was last updated on 2026-10-18. The plugin is MIT licensed. Report problems in the issues. Download: madnesswright 0.1.2.
Using it
- Getting started
- Mods and MadCards
- Levels with SceneTools
- Assets and Harmony
- The helper
- Troubleshooting
- FAQ
The releases
Contributing
Elsewhere