# Universal Modder for Claude Code: Install, fal Costs, Limits

> Universal Modder is a free MIT toolkit that helps Claude Code mod PC games you own. The agent plan and fal assets cost extra: about $0.21 per default sprite.

- URL: https://blog.laozhang.ai/en/posts/universal-modder
- Published: 2026-10-06
- Updated: 2026-10-06
- Author: LaoZhang AI Team (https://blog.laozhang.ai/en/about)
- Topic: Claude Code
- Tags: Claude Code, Game Modding, Agent Skills, MCP, fal

---
Universal Modder, the open-source repo `rehan-remade/universal-modder`, is not an app that mods games by itself. It is a free, MIT-licensed kit that gives an AI coding agent such as Claude Code or Codex a method for modding PC games you own: Agent Skills with engine playbooks, a Python command-line tool called `um`, a preconfigured connection to fal for generating sprites, 3D models and sound, and a library of field notes from earlier mods. The agent still does the work. You need a paid agent plan, a game with a workable modding route, and usually a fal API key, which bills per generation. Online games with anti-cheat are off-limits under the toolkit's own rules, and its automated in-game testing runs only on Windows or WSL.

**What was tested, and what wasn't.** On October 6, 2026, the plugin was installed into Claude Code 2.1.288 on a Mac, and a set of `um` commands was run against dummy files (repo commit 76b9c7e, `um` 0.2.0). No game was scanned, modded or launched. No mod was built, no fal asset was generated, and no money was spent. The Codex, Gemini CLI, Cursor, Windows and WSL routes were not tried. Every code block below is labeled either **Ran** (trimmed real output from that session) or **README** (copied from the project's instructions, not run).

## What Universal Modder is: an agent toolkit, not a mod generator

The repo was created on September 30, 2026, and had 4,225 GitHub stars as of October 6, 2026, with new commits landing daily. Its package version is 0.2.0. The repo describes itself as "Skills, tools and the fal MCP that let Claude Code mod almost any PC game you own," and the README adds install routes for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Installing it gives your agent four things:

- **Ten Agent Skills.** The entry point, `mod-any-game`, holds the overall workflow, the safety rules and 12 engine playbooks, covering Unity, Unreal, .NET/XNA games such as Terraria and Stardew Valley, Godot, Source, Bethesda, Minecraft, Age of Empires II, native C++ and a long tail of indie engines. The other skills cover recon, reverse engineering, fal assets, sprite pipelines, game automation, showcase videos, "game inside a game" mashups, publishing and field notes.
- **The `um` CLI.** `scan` finds installed games and fingerprints the engine, anti-cheat, loaders and save folders. `fal` and `comfy` generate assets, `sprite` and `render3d` turn art into game-ready frames (`render3d` needs Blender), `win` controls Windows games, `backup` snapshots saves, `publish check` screens a mod before release, and `kb` searches the field notes.
- **The fal MCP server.** fal's hosted server at `https://mcp.fal.ai/mcp`, authenticated with your `FAL_KEY`, lets the agent search models, check prices and run generations.
- **Field notes.** The `knowledge/` folder holds notes that agents wrote after finishing a mod: the versions that worked, the route and why, how the result was verified, and the gotchas.

The `mod-any-game` skill makes the agent follow the same ten steps each time: search the field notes, recon the game and pick a route, set up a lab with saves backed up, read the game's actual code, get one small slice working, generate assets, verify in the running game, record, package, and write a field note. The kit supplies method and tools. Whether a particular game ends up with a working mod still depends on its engine, the loaders available for it, and the agent session.

Two names get mixed up with it. Videos titled "Claude Mods" cover a separate Claude Code feature that has nothing to do with this repo, and `drago-suzuki58/universal_modloader` on GitHub is a different project.

## Tested on October 6, 2026: plugin install and offline um commands, no game

Everything in this table ran on macOS 26 with Python 3.12 against commit 76b9c7e. The save files, images and mod folder were dummies made for the test.

| Command | Result |
| --- | --- |
| `claude plugin marketplace add` and `claude plugin install` in Claude Code 2.1.288 | Installed and enabled, version 76b9c7e77ead. No login was needed for these commands |
| The plugin's own `bin/um --version`, system Python 3.12, no uv | `universal-modder 0.2.0` |
| `um scan --list` on a Mac with no games installed | "no Steam/Epic/Xbox installs found" |
| `um scan` on the repo's Terraria example folder | Suggested tModLoader as the first route |
| `um kb search terraria` | Five field notes |
| `um backup create`, `diff`, `restore` on dummy save files | Full round trip worked |
| `um sprite cutout` and `um sprite fit --size 32x32` on a 512×512 test PNG | 32×32 sprite with a transparent background |
| `um publish check` on a folder with a `.env` file | Two failures for a leaked `FAL_KEY`, exit code 1 |
| `um fal price` with no fal key | Refused: "FAL_KEY is not set" |
| `um win ps` on macOS | Refused: Windows or WSL only |
| The project's test suite, `pytest tests` | 65 passed, 1 skipped |

Not run: anything inside a real game (scanning an installed game, installing a loader, building a mod, checking it in game), any fal or ComfyUI generation, Blender renders, `um video`, Windows or WSL, the installs for Codex, Gemini CLI, Copilot, Cursor and OpenCode, and a chat session in which Claude actually used the skills. The mods described in the next section are the author's examples and were not reproduced.

## Can Claude Code mod games with Universal Modder? The author's examples say yes

The repo ships three worked examples, each with a field note. These are the author's claims:

- **Fal Arsenal for Terraria**, built on tModLoader: a homing missile launcher, a tactical nuke that craters the world, a chain-lightning rifle, a black-hole gun, an orbital strike, three new enemies and a two-phase Drone Mothership boss. The README says every sprite came from fal, and the field note mentions a video with about 400,000 views.
- **San Franciscans for Age of Empires II DE**: a new civilization with a Robotaxi unique unit, Delivery Drones rendered from fal image-to-3D models, a Transamerica Pyramid wonder and a reverse-engineered writer for the game's `.sld` sprite format.
- **Minecraft inside GTA V story mode**: a Fabric mod and a ScriptHookV plus ReShade add-on that exchange camera, ground and game events over a local WebSocket, so Minecraft TNT blows up GTA cars.

So can it create new weapons and enemies? The Terraria example is exactly that. The README doesn't say how many attempts, hours or tokens these mods took, so treat them as proof that the approach can work, not as a measure of effort.

The examples also show where to start. Games with an established mod loader and existing field notes, such as Terraria through tModLoader, give the agent a documented route. A native game with no known route sends it into reverse engineering. When `um scan` ran on the Terraria example folder, it listed both kinds of route:

**Ran** (`um scan` on the repo's example folder, trimmed):

```text
$ um scan universal-modder/examples/terraria-tmodloader
  engine:    Unknown native engine  [10%]  evidence: no known engine signature
  anti-cheat: none found
  loaders:   none installed
  routes:
    1. tModLoader (free Steam app 1281930): C# ModItem/ModNPC/ModProjectile/ModSystem, hot reload from ModSources
    2. proxy-DLL loader + function hooks (MinHook/SafetyHook), memory reading; Ghidra/IDA + x64dbg + Cheat Engine
```

The engine guess is weak because that folder holds the example mod's source code, not the game's files. The route list still recognized Terraria by name and put the free tModLoader app first.

## Requirements: a paid agent plan, Python 3.10+, ffmpeg, Windows

- **An agent you can run.** For Claude Code, [Anthropic's Claude Code setup docs](https://code.claude.com/docs/en/setup) say it "requires a Pro, Max, Team, Enterprise, or Console account" and that the free Claude.ai plan doesn't include it. You also have to be in one of Anthropic's supported countries; the US is on the list. Claude Code runs on macOS 13+, Windows 10 1809+, Ubuntu 20.04+ and Debian 10+, with at least 4 GB of RAM. For plan prices, see the [Claude Code Pricing Guide 2026](https://blog.laozhang.ai/en/posts/claude-code-pricing-guide); for setup, see [How to Install Claude Code](https://blog.laozhang.ai/en/posts/claude-code-install).
- **Git, Python 3.10+ and ffmpeg**, with uv recommended. Without uv, the plugin's `um` launcher falls back to the system `python3`, which then needs `pip install pillow numpy`.
- **Blender**, only if you want 3D models turned into sprite frames.
- **A fal API key** for cloud-generated art, 3D and audio. Without one, `um comfy` can generate images through a local ComfyUI server, with no audio, 3D or video.
- **A copy of the game you own.** The README says Windows games are driven natively or from WSL, which matters for the testing step (see the Mac section below).

## How to install Universal Modder in Claude Code

The README's route is two commands typed inside a Claude Code session:

**README** (not run in this form):

```text
/plugin marketplace add rehan-remade/universal-modder
/plugin install universal-modder@universal-modder
```

The test used the equivalent `claude plugin` subcommands from a terminal, with a fresh, empty Claude Code config folder:

**Ran** (Claude Code 2.1.288 on macOS, trimmed):

```text
$ claude plugin marketplace add rehan-remade/universal-modder
Adding marketplace…Cloning via SSH: git@github.com:rehan-remade/universal-modder.git
✔ Successfully added marketplace: universal-modder (declared in user settings)

$ claude plugin install universal-modder@universal-modder
✔ Successfully installed plugin: universal-modder@universal-modder (scope: user)

$ claude plugin list
  ❯ universal-modder@universal-modder
    Version: 76b9c7e77ead
    Scope: user
    Status: ✔ enabled
```

None of these commands asked for a login. The marketplace was cloned over SSH on a machine that had GitHub SSH access. A machine without SSH keys was not tried, so if the clone step fails, check your GitHub access first.

The plugin puts `um` on your PATH, according to the README. Running the copy inside the plugin folder with plain system Python returned `universal-modder 0.2.0`. For assets, the README's next step is to set your key, which both the fal MCP server and `um fal` read:

**README**:

```bash
export FAL_KEY=...
```

Without it, fal commands stop before sending anything:

**Ran**:

```text
$ um fal price fal-ai/trellis-2
um: FAL_KEY is not set. Create a key at https://fal.ai/dashboard/keys and `export FAL_KEY=...` (or put FAL_KEY=... in a .env file here)
```

If you use a different agent, the README lists these routes. None of them were run:

| Agent | README install command |
| --- | --- |
| Codex | `codex plugin marketplace add rehan-remade/universal-modder`, then `codex 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", enter the repo URL |
| Cursor | Cursor Marketplace, or clone the repo |
| OpenCode | Clone the repo and run `opencode` inside it |
| Skills only, any agent | `npx skills add https://github.com/rehan-remade/universal-modder` |
| `um` CLI only | `uv tool install git+https://github.com/rehan-remade/universal-modder` (or pipx) |

For a wider look at what else to add to Codex, see [Which Codex Plugins Should You Install First?](https://blog.laozhang.ai/en/posts/codex-plugin-recommendations). If you're unsure how plugins, skills and hooks differ in Claude Code, [Claude Code Hooks vs Skills vs Slash Commands](https://blog.laozhang.ai/en/posts/claude-code-hooks-slash-commands-skills) explains the split.

## Is universalmodder.org the official site? The GitHub repo doesn't link to it

According to whois, universalmodder.org was registered on October 5, 2026, five days after the repo was created. The GitHub repo's homepage field is empty, and no file in the repo mentions the domain. As of October 6, 2026, the site links back to the GitHub repo and collects newsletter sign-ups and contact messages. It offers no separate download.

Nothing shows the site is malicious, and nothing ties it to the repo's author either. Install through your agent's plugin command or from [the universal-modder repository on GitHub](https://github.com/rehan-remade/universal-modder). The repo's own safety notes warn that a viral mod's "download" is often malware.

## First session on a game you own: scan, back up saves, then one small change

The toolkit's workflow front-loads recon and backups. The `um` side of that can be checked before any agent session starts.

![Five first-session steps: um scan, um kb search and um backup ran on a Mac with dummy files, while agent recon and a first working item were not run](https://blog.laozhang.ai/posts/en/universal-modder/img/first-session-steps.webp)

1. **Find your games.** `um scan --list` looks for Steam, Epic and Xbox installs. Its code also checks Steam's default folders on macOS and Linux, which was not tested with a game installed. On the test Mac it found nothing:

   **Ran** (trimmed; the message goes on to suggest passing a game folder to `um scan`):

   ```text
   $ um scan --list
   no Steam/Epic/Xbox installs found
   ```

2. **Check for field notes on your game.** If a note exists, the agent starts from a route that already worked:

   **Ran** (trimmed):

   ```text
   $ um kb search terraria
   games/terraria/fal-arsenal-tmodloader.md
      Fal Arsenal: missiles, a tactical nuke, new enemies and a boss for Terraria  [Terraria | xna-fna | loader-api | working]
   games/terraria/eye-of-cthulhu-rl-agent.md
   techniques/driving-real-games-safely.md
   techniques/oracles-how-agents-know-a-mod-works.md
   techniques/recording-game-footage.md
   ```

3. **Back up the save folder** before anything touches it. A restore first snapshots the current state, so the restore can be undone too. New files stay unless you add `--clean`. This round trip used dummy `.wld` files, not a real Terraria save:

   **Ran** (dummy files, paths shortened):

   ```text
   $ um backup create saves --name demo-saves
   ~/.universal-modder/backups/demo-saves/20261006-210035.zip  (1 files, 0.0 MB)

   $ um backup diff demo-saves saves
   {
    "snapshot": "~/.universal-modder/backups/demo-saves/20261006-210035.zip",
    "target": "saves",
    "added": [
     "world2.wld"
    ],
    "removed": [],
    "changed": [
     "world1.wld"
    ]
   }

   $ um backup restore demo-saves --yes
   restore 20261006-210035.zip -> saves: 1 changed, 0 missing, 1 new since (new files kept)
   ~/.universal-modder/backups/demo-saves-pre-restore/20261006-210112.zip  (2 files, 0.0 MB)
   restored 1 files
   ```

4. **Ask the agent for recon before a build.** The `game-recon` skill writes a `MODDING_PLAN.md` with the engine, anti-cheat, loaders, save folders and the community route. A first prompt can be as narrow as "Recon Terraria and write MODDING_PLAN.md, then stop before installing anything." That prompt is a suggestion and was not run. The README's own sample prompts aim higher, for example:

   > Mod Terraria: add a homing missile launcher and a tactical nuke that craters the world. Make the sprites with fal.

5. **Get one item or one enemy working in the game before generating a batch of art.** That matches the skill's "one working slice" step, and it keeps fal spending small until the route is proven.

The rules say the agent asks before it installs loaders into game folders, drives your mouse and keyboard, or publishes anything. Expect those prompts, and read what it plans to put in the game folder.

## Universal Modder cost: free code, about $0.21 per default sprite

The code costs nothing. The two bills are your agent plan and fal. The table maps each `um fal` recipe to its default model and the price on fal's model pages as of October 6, 2026.

| `um fal` recipe | Default model | um default setting | fal list price |
| --- | --- | --- | --- |
| `sprite` | `openai/gpt-image-2` | `--quality high`, square_hd (priced here as 1024×1024) | $0.211 per image; $0.053 medium, $0.006 low |
| `image` | `fal-ai/nano-banana-2` | 1K, one image | $0.08 per image; 2K costs 1.5×, 4K costs 2× |
| `model3d` | `fal-ai/trellis-2` | um doesn't set a resolution | $0.25 / $0.30 / $0.35 at 512p / 1024p / 1536p |
| `sfx` | ElevenLabs sound effects v2 | length from your prompt | $0.002 per second |
| `video` | Seedance 2.5 image-to-video | 5 seconds, 720p | Run `um fal price` with your key first |
| `music` | ElevenLabs Music v2.5 | 60 seconds | Run `um fal price` with your key first |

Sources: fal model pages for [Nano Banana 2](https://fal.ai/models/fal-ai/nano-banana-2), [GPT Image 2](https://fal.ai/models/openai/gpt-image-2), [Trellis 2](https://fal.ai/models/fal-ai/trellis-2) and [ElevenLabs sound effects v2](https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2). Prices change, and the repo's defaults do too, since "Model ids move fast," as `um fal --help` puts it.

**Example: a small mod with 10 sprites, 1 piece of key art, 1 3D model and 5 two-second sound effects.** The 3D model uses the $0.30 middle price.

| Sprite quality | Sprites | Key art | 3D model | Sound (5 × 2 s × $0.002) | Total |
| --- | --- | --- | --- | --- | --- |
| Default (`high`) | 10 × $0.211 = $2.11 | $0.08 | $0.30 | $0.02 | **$2.51** |
| `--quality medium` | 10 × $0.053 = $0.53 | $0.08 | $0.30 | $0.02 | **$0.93** |
| `--quality low` | 10 × $0.006 = $0.06 | $0.08 | $0.30 | $0.02 | **$0.46** |

Those are list prices for one attempt each. Art rarely lands on the first try. If every sprite took three tries at the default quality, the sprites alone would cost 30 × $0.211 = $6.33, and the mod $6.73.

![Bar chart of a small mod's fal bill at $2.51, $0.93 and $0.46 by sprite quality, with $0.40 of other assets in each and $6.73 if every sprite takes three tries](https://blog.laozhang.ai/posts/en/universal-modder/img/small-mod-fal-budget.webp)

Two practical points follow. First, pixel-art sprites get shrunk to the game's frame size anyway. The test above fitted a 512×512 image into 32×32, so trying `--quality medium` before paying for `high` is reasonable. Second, the `fal-assets` skill tells the agent to check prices before batching 3D, video or long music, and to tell you the rough cost before more than about 20 generations. Video and music are the open-ended items in this budget.

The agent is the other bill, and it doesn't show up in fal's dashboard. Claude Code needs at least a Pro plan, and a session that decompiles a game, writes code and retries builds draws on that plan's usage limits. The [Claude Code Pricing Guide 2026](https://blog.laozhang.ai/en/posts/claude-code-pricing-guide) covers which plan fits heavier use.

## Does Universal Modder work on Mac or Linux? Setup yes, game control no

On macOS, every `um` command in the test worked except game control. `um win`, the part that launches games, takes screenshots, sends input and records game-only audio, refused to run:

**Ran** (macOS 26):

```text
$ um win ps
um: `um win` drives Windows games (native Windows or WSL). On Linux use xdotool/ydotool + ffmpeg x11grab/pipewire; on macOS use screencapture + ffmpeg avfoundation (see skills/game-automation).
```

| Task | Windows (native or WSL) | macOS / Linux |
| --- | --- | --- |
| Install the plugin, skills and fal MCP | README route | Ran on macOS: works |
| `um scan` finds installed games | Steam, Epic and Xbox (README) | Code checks Steam's default folders; not tested with a game installed |
| `um backup`, `um sprite`, `um publish check`, `um kb` | README | Ran on macOS: works |
| `um win`: launch, screenshot, drive input, record | Supported (README) | Refuses, and points to screencapture/ffmpeg on macOS or xdotool/ydotool on Linux |

The `game-automation` skill describes itself as "Windows-first (also from WSL), with notes for Linux and macOS." On a Mac or Linux machine, the agent can plan, write code and generate assets. The "verify in the real game" step falls to you, or to capture tools the agent sets up from those notes.

## Will Universal Modder get you banned? Anti-cheat games are a hard stop

The README and the toolkit's [safety rules file](https://github.com/rehan-remade/universal-modder/blob/main/skills/mod-any-game/references/safety.md) set these limits for the agent:

- **Any game you own**, whether single-player, multiplayer or a server you host. It refuses to inject into online games with anti-cheat, write cheats against other players, or bypass anti-cheat, DRM or ownership checks.
- **Named anti-cheat systems are a stop sign for code injection**: EasyAntiCheat, BattlEye, Vanguard, EA Javelin, Ricochet, ACE, nProtect, XIGNCODE and mhyprot. Official mod tools such as Workshop, map editors and mod kits are allowed, and so are official offline modes that ship without the anti-cheat. The safety file calls launching Elden Ring offline through ModEngine2 or me3 with EAC disabled the community norm.
- **Valve's VAC** bans modified clients on VAC-secured servers. The rule is to test locally with `-insecure` and never join public servers while anything is injected.
- **No game files or decompiled code in a released mod.** Mods ship as code, your own assets, patches or converters.
- **Backups before saves are touched**, processes killed only by exact process ID, and a confirmation before input automation, loader installs or publishing.

These are instructions the agent reads and follows, not a technical lock. No refusal was tested, and you still decide which game to point the agent at. The safety file also says "None of this is legal advice" and cites takedowns that happened even without shipped game assets: Take-Two against the re3 and reVC projects in 2021, and Activision's cease-and-desist to the H2M mod in 2024.

One rule does have a tool behind it. `um publish check` scans a mod folder before release, and with `--game` pointing at the game's install folder it also looks for copied game files. On a test folder with a `.env` file holding a fal key, it blocked the release:

**Ran** (test folder):

```text
$ um publish check mymod
FAIL  env file (secrets?): .env
FAIL  FAL_KEY assignment in .env
WARN  no README (install steps, requirements, credits)
FAIL: 3 files, 2 failures, 1 warnings
```

Run it before you share anything, especially if your fal key ever sat in a `.env` file inside the mod folder.

## Universal Modder FAQ: price, Codex, Minecraft

### Is Universal Modder free?

The code is free under the MIT license. Using it isn't. Claude Code needs a Pro, Max, Team, Enterprise or Console account, and fal bills per generation, about $0.211 for one sprite at `um`'s default quality as of October 6, 2026. Without a fal key, `um comfy` can make images through a local ComfyUI server.

### Does Universal Modder work with Codex?

The README lists a Codex route: `codex plugin marketplace add rehan-remade/universal-modder`, then `codex plugin add universal-modder@universal-modder`. Codex gets the same skills, fal MCP server and `um` CLI. The October 6 test covered only the Claude Code install, so the Codex route is untested.

### Can Universal Modder make Minecraft mods?

Minecraft has its own playbook in the `mod-any-game` skill, and the GTA V example includes a Fabric mod for Minecraft. The README also links community field notes on Halo 3 weapons and vehicles ported into Minecraft, Bloons TD 6 inside Minecraft, and real Minecraft running inside Portal 2. Those are community claims; no Minecraft mod was built in the October 6 test.

## Sources

External pages this guide links to, in the order they appear. Last updated 2026-10-06.

- [Anthropic's Claude Code setup docs](https://code.claude.com/docs/en/setup) (code.claude.com)
- [the universal-modder repository on GitHub](https://github.com/rehan-remade/universal-modder) (github.com)
- [Nano Banana 2](https://fal.ai/models/fal-ai/nano-banana-2) (fal.ai)
- [GPT Image 2](https://fal.ai/models/openai/gpt-image-2) (fal.ai)
- [Trellis 2](https://fal.ai/models/fal-ai/trellis-2) (fal.ai)
- [ElevenLabs sound effects v2](https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2) (fal.ai)
- [safety rules file](https://github.com/rehan-remade/universal-modder/blob/main/skills/mod-any-game/references/safety.md) (github.com)
