The project's README from github.com/rehan-remade/universal-modder. As one markdown file: README.md.
Skills, tools and a shared knowledge base that let any AI coding agent mod almost any PC game you own.
The agent finds the game, works out the engine and the route, reads the real code, builds the mod, makes art, 3D and sound
with fal, tests it in the running game, cuts the video, and writes down what it learned for the next agent.
Coming next: the mod hub at universalmodder.com. Publish your mods, remix other people's, and make new ones.
Share what you make, get help, and follow along:
Pick your agent. Each gets the same skills (Agent Skills format), the fal MCP server, and the um CLI.
| Agent | Install |
|---|---|
| Claude Code | /plugin marketplace add rehan-remade/universal-modder/plugin install universal-modder@universal-modder |
| Codex | codex plugin marketplace add rehan-remade/universal-moddercodex plugin add universal-modder@universal-modder |
| Gemini CLI | gemini extensions install https://github.com/rehan-remade/universal-modder |
| VS Code / Copilot | Enable chat.plugins.enabled, run Chat: Install Plugin From Source, and enter this repo's URL |
| Cursor | Cursor Marketplace, or clone (Cursor reads AGENTS.md and .cursor/mcp.json) |
| OpenCode | Clone and run opencode inside it (opencode.json adds the skills and the fal MCP server)or, on OpenCode 2, opencode plugin add 'github:rehan-remade/universal-modder#main::path:plugins/opencode' (the um tool and fal MCP; add the skills with Skills only) |
| Skills only (any agent) |
npx skills add https://github.com/rehan-remade/universal-modder |
| Anything else | git clone https://github.com/rehan-remade/universal-modder and start your agent inside it |
Inside a clone, each agent finds the skills where it looks for them: .agents/skills (Codex, Gemini CLI,
Copilot, Cursor, OpenCode) and .claude/skills (Claude Code) are copies of skills/. Instructions are in
AGENTS.md, which CLAUDE.md and GEMINI.md point to. MCP config is in .mcp.json, .codex/config.toml,
.cursor/mcp.json, .vscode/mcp.json and opencode.json (which also points OpenCode at skills/).
Without a clone, OpenCode 2 installs the plugin in plugins/opencode/ with opencode plugin add: one
um_run tool that passes its arguments straight to the CLI and runs um from PATH (see below), plus the
fal MCP server when FAL_KEY is set and none is configured. A clone doesn't need it. See
plugins/opencode/README.md.
The um CLI. The Claude Code plugin puts it on PATH (its SessionStart hook), and so does a clone opened in
Claude Code (.claude/settings.json); in a clone with another agent, export PATH="$PWD/bin:$PATH". Other
agents' plugin installs (Codex, Cursor, Gemini CLI, OpenCode) don't, so install it once:
uv tool install git+https://github.com/rehan-remade/universal-modder # or: pipx install git+...
For assets, get a fal API key. It powers both the fal MCP server and
um fal. Rather than exporting it from a shell profile or a .env, store it once with um fal key set: on
Linux it goes into the desktop keyring (libsecret's secret-tool), elsewhere into an owner-only
~/.secrets/fal-key, and um fal finds it there (um fal key status shows which source is used). FAL_KEY
in the environment still works and wins. The agent configs read FAL_KEY, so start your agent with it set; on
Linux, take it from the keyring as below. With no key, fal's OAuth endpoint https://mcp.fal.ai/mcp-relay
signs you in through the browser instead (fal's MCP guides),
and um comfy makes images on a local ComfyUI server. um sprixen (2D sprites, animation sheets, tiles) uses
Sprixen, a separate paid service with its own API key (um sprixen key set).
um fal key set # hidden prompt
export FAL_KEY="$(secret-tool lookup service fal.ai key api)" # Linux: before starting the agent
You also need Git, Python 3.10+ and ffmpeg. uv is recommended. Blender is needed for 3D → sprite renders.
Windows games are driven natively or from WSL.
Mod Terraria: add a homing missile launcher and a tactical nuke that craters the world. Make the sprites with fal.
Make a new civilization for Age of Empires II with a unique unit rendered from 3D.
Put real Minecraft inside GTA V story mode. Minecraft's camera should follow GTA's, and its TNT should blow up GTA cars.
Port the Warthog from my Halo install into Minecraft, with a gunner on the turret.
What engine is
C:\Games\Foo, and has anyone modded it before?
The agent starts with the mod-any-game skill and runs the same loop every time:
knowledge/ holds field notes: how specific games were actually modded, decompiled and
reverse-engineered. Each note gives:
Every agent that finishes a mod can open a pull request with its note, so the next agent starts where it left off instead of rediscovering the same traps.
um kb search "grand theft auto" # before you start: prior art (works outside the repo too)
um kb new --game "Hades II" --title "A new boon god" --from-scan hades --agent "Codex (gpt-6)"
um kb check knowledge/games/hades-ii/a-new-boon-god.md
um kb pr knowledge/games/hades-ii/a-new-boon-god.md --yes # after your human says OK: branch, push, PR
Browse knowledge/INDEX.md. Every game is welcome. Contribution rules, for humans and
AIs, are in CONTRIBUTING.md: no game files, no decompiled dumps, no cheating other
players, and an honest status and verification.
A few notes from the community:
Skills (skills/, Agent Skills format)
| Skill | What it does |
|---|---|
mod-any-game | The whole loop, hard safety rules, and engine playbooks: Unity, Unreal, .NET/XNA (Terraria, Stardew, Celeste), Godot, Source 1/2, Bethesda, Minecraft, AoE2/Genie, Bannerlord, Binding of Isaac, RE Engine/MT Framework/FromSoft/GTA/Hedgehog Engine/Black Rock/Cyberpunk/BG3/Avalanche, native C++, indie engines (GameMaker, RPG Maker, Ren'Py, Paradox, Doom, HTML5, LÖVE, Java), retro decomps |
game-recon | Prior field notes, engine and version, managed or native, anti-cheat, loaders, save folders, community route → MODDING_PLAN.md |
game-research-websearch | Open-web research that survives dead forums: Wayback/archive.today, GitHub/code and Nexus/Workshop/Thunderstore APIs, Reddit/YouTube, login-gated handoff, screenshots as evidence |
reverse-engineering | ILSpy / Cpp2IL / Vineflower / Ghidra and IDA over MCP / Cheat Engine / Frida / RenderDoc; reverse-engineer a file format and prove it with a round trip |
fal-assets | Sprites with real transparency, consistent variants, pixel art, seamless textures, PBR maps, image-to-3D, auto-rigging, SFX, music, voice, cutscene video |
asset-pipeline | Art → engine-exact frames: cutout, nearest-neighbour fit, palettes, sheets, team-colour masks, 3D → 8/16-heading sprites |
game-automation | Launch, screenshot (GPU-safe), click/type safely, windowed mode, crash-reporter cleanup, in-game agent bridges |
showcase-video | Record the window with only the game's audio, pick moments, cut a styled video from an EDL |
mashup-mods | Game inside a game: content ports, passthrough mods (worked example: Minecraft × GTA V), decomps as libraries, reimplementations |
publish-mod | Lint, package per platform, credits, the post |
port-a-mod | Port an existing mod to a newer version or loader without drift: one pinned source, a private decompile, data extracted by script, unit-by-unit tests, audits by layer, resumable status docs, and a Forge 1.7.10 → Fabric 1.20.1 mapping table |
share-field-notes | Search the knowledge base, write your own note, open the PR |
Agents (agents/, subagent files with name + description frontmatter): a three-agent team for mods
that take days. Claude Code loads them with the plugin; in a clone, start with
claude --plugin-dir . --agent mod-orchestrator. Cursor plugins and Gemini CLI extensions read an agents/
folder too (untested here; Gemini CLI's subagents can't start other subagents). Three agents use several
times the tokens of one, so keep it for long mods. What worked for one user: the orchestrator on Fable 5.1 at
medium effort, the game worker on Sonnet 5.5 at medium, and the offline worker on Opus 5.5 at high. Any agent can
read the files as role briefs.
| Agent | What it does |
|---|---|
mod-orchestrator | The supervisor. Plans the work, runs the two workers, checks what they claim against logs and files, and reports to the human in plain language. Start it as the main session: claude --agent mod-orchestrator |
mod-game-worker | The only agent that touches the running game: build, deploy, launch, probe, measure, fix |
mod-offline-worker | Never touches the game: studies SDK data, dumps and other mods, designs features, writes generators and patches, tests them against stubs, and hands over the exact live probes to run |
The um CLI (Python). Every command has --help with examples.
| Command | What it does | |
|---|---|---|
um scan | Find Steam/Epic/Xbox installs; fingerprint engine and version, .NET vs native, anti-cheat, installed loaders, save folders, ranked routes | |
um fal | sprite, image, edit, rmbg, pixelate, upscale, texture, pbr, model3d, rig, sfx, music, voice, video, run, search, schema, price. Plain REST, with a manifest of every generation | |
um comfy | status, image (--sprite cuts it out), run (any workflow saved with Export (API)). Images from a local ComfyUI server, no API key | |
um sprixen | sprite (one style per project), animate (sprite id → one-row sheet), tile, projects, credits, key. 2D art from Sprixen's paid API, with a manifest of every generation | |
um sprite | cutout, fit, pixelate, palette, sheet, slice, frames, team-mask, seamless, preview | |
um render3d | GLB → sprite frames from the game's camera (aoe2, iso8, trueiso, topdown, side, turntable) with Blender | |
um win | shot, record (gfxcapture + process-loopback audio), drive (input that only reaches the game), ps, kill, launch, reg | |
um video | contact sheets, compile (EDL → titled, beat-cut video with music), mux, beats, first-frame | |
um backup | Snapshot, diff and restore save folders | |
um publish check | Blocks shipping game files, decompiled code and leaked keys | |
um kb | The knowledge base: search, show, new, check, index, sync, pr |
Two no-build Windows tools ship inside the package (um/ps1/): WinDrive input and ProcLoopback game-only
audio, both PowerShell with embedded C#.

.sld sprite writer.Each has a field note with every non-obvious lesson: knowledge/INDEX.md.
Full reasoning: skills/mod-any-game/references/safety.md.
Show it off in the Discord, and put the badge on your mod's page:
[](https://github.com/rehan-remade/universal-modder)
Use made-with-light.svg on a light page.
MIT licensed. Brand type: Geist Pixel, Sometype Mono and Instrument Sans. Video titles: Space Grotesk and JetBrains Mono. All under the SIL OFL.