# io.github.doritoman90000/universal-game-modder (npm · universal-game-modder)

Local MCP server: detects a game's engine and gives agents native binary analysis/patching tools.

- Trust score: 78/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- npm · `universal-game-modder`: 78/100 (this document), [markdown](https://verifymcp.io/servers/doritoman90000-universal-game-modder/universal-game-modder.md), [page](https://verifymcp.io/servers/doritoman90000-universal-game-modder/universal-game-modder)

## Channel facts

- Registry: `npm`
- Package: `universal-game-modder`
- Version: `0.1.4`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 61 of 160 dependencies flagged as unhealthy (1 deprecated).
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 17 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 79/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 6792 tokens (~67/item across 100 items; 100 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 60/100
  - Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "build_and_deploy" implies "deploy" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 100 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the io.github.doritoman90000/universal-game-modder MCP server?

io.github.doritoman90000/universal-game-modder runs locally as an npm package, launched with npx -y universal-game-modder. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add doritoman90000-universal-game-modder -- npx -y universal-game-modder
```

### Cursor

```json
{
  "mcpServers": {
    "doritoman90000-universal-game-modder": {
      "command": "npx",
      "args": [
        "-y",
        "universal-game-modder"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "doritoman90000-universal-game-modder": {
      "command": "npx",
      "args": [
        "-y",
        "universal-game-modder"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add doritoman90000-universal-game-modder -- npx -y universal-game-modder
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "doritoman90000-universal-game-modder": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "universal-game-modder"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add doritoman90000-universal-game-modder --command npx --arg -y --arg universal-game-modder
```

### Hermes

```yaml
mcp_servers:
  doritoman90000-universal-game-modder:
    command: "npx"
    args: ["-y", "universal-game-modder"]
```

### Netclaw

```json
{
  "McpServers": {
    "doritoman90000-universal-game-modder": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "universal-game-modder"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add doritoman90000-universal-game-modder -t stdio -c npx -a -y universal-game-modder
```

### Other

```json
{
  "mcpServers": {
    "doritoman90000-universal-game-modder": {
      "command": "npx",
      "args": [
        "-y",
        "universal-game-modder"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-20 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-18 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 76, +2)

- [security improvement] CVE-2026-82562 no longer affects this package
- [security improvement] CVE-2026-82417 no longer affects this package
- [security improvement] Known CVEs: fail → pass

### 2026-09-15 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-13 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-10 (score 71, +3)

- [functional improvement] Stability: unverified → 0.27

### 2026-09-02 (score 68)

First indexed and scored.

## MCP tools (100)

### `detect_engine` (~55 tokens)

Scan a game directory and detect what engine it uses (Unity, Unreal, Godot, Java, etc.). Returns engine type, runtime, and primary assembly path.

Input parameters:

- `game_path` (string, required): Full path to the game directory

### `load_game` (~75 tokens)

Set a game as the active modding target. Auto-detects engine, sets up session state, and returns what tools are available for this game type.

Input parameters:

- `game_name` (string): Optional human-readable game name (auto-detected from path if omitted)
- `game_path` (string, required): Full path to the game directory

### `game_status` (~29 tokens)

Get the current session state including loaded game, engine type, cached analysis data, and mod build status.

### `find_steam_games` (~41 tokens)

Search configured Steam library paths for installed games. Optionally filter by name.

Input parameters:

- `filter` (string): Optional name filter (case-insensitive partial match)

### `mod_this_game` (~90 tokens)

End-to-end game modding assistant. Detects engine, analyzes game structure, and returns a modding plan with available tools and next steps. Start here when modding a new game.

Input parameters:

- `game_path` (string, required): Full path to the game directory
- `objective` (string): What you want to mod (e.g. "infinite health", "speed hack", "item spawner")

### `find_gameplay_values` (~86 tokens)

Search for gameplay-related values (health, damage, speed, money, etc.) across the game code. Works with any engine by using the appropriate search tools.

Input parameters:

- `assembly_path` (string, required): Path to the game assembly/binary to search
- `search_terms` (array, required): Terms to search for (e.g. ["Health", "Damage", "Speed", "Money"])

### `build_and_deploy` (~75 tokens)

Compile a mod project and deploy the output to the game mods directory.

Input parameters:

- `build_command` (string): Custom build command (auto-detected if omitted)
- `deploy_path` (string): Path to deploy the built mod (auto-detected if omitted)
- `project_path` (string, required): Path to the mod project directory

### `debug_mod` (~50 tokens)

Analyze mod logs to diagnose errors and suggest fixes.

Input parameters:

- `game_path` (string): Game directory (for auto-detecting log location)
- `log_path` (string): Path to the mod log file

### `scaffold_mod` (~126 tokens)

Generate a mod project skeleton from templates. Creates project files, plugin class, and build configuration.

Input parameters:

- `framework` (string): Mod framework: bepinex5, melonloader, jar (auto-detected from loaded game if omitted)
- `game_managed_dir` (string): Path to game Managed directory (for .csproj references)
- `mod_guid` (string): Unique mod identifier (e.g. com.author.modname)
- `mod_name` (string, required): Mod name (used for class name and project)
- `output_dir` (string, required): Where to create the mod project

### `list_available_tools` (~42 tokens)

List all tools available for the currently loaded game engine, grouped by category.

Input parameters:

- `engine` (string): Engine to list tools for (uses current game if omitted)

### `analyze_pe_full` (~54 tokens)

Full PE (Portable Executable) analysis. Shows headers, sections, data directories, and whether it is managed (.NET) or native.

Input parameters:

- `file_path` (string, required): Path to PE file (.exe or .dll)

### `analyze_file_format` (~46 tokens)

Detect file format from magic bytes. Works with PE, ELF, Mach-O, ZIP, Java class, and other formats.

Input parameters:

- `file_path` (string, required): Path to the file

### `hex_read` (~59 tokens)

Read raw bytes from a file at a specific offset.

Input parameters:

- `file_path` (string, required): Path to the file
- `length` (number): Number of bytes to read (default 256)
- `offset` (number, required): Byte offset to start reading

### `hex_write` (~70 tokens)

Write raw bytes to a file at a specific offset.

Input parameters:

- `file_path` (string, required): Path to the file
- `hex_data` (string, required): Hex string to write (e.g. "90 90 90" or "909090")
- `offset` (number, required): Byte offset to write at

### `hex_search` (~72 tokens)

Search for a hex pattern in a binary file.

Input parameters:

- `file_path` (string, required): Path to the file
- `hex_pattern` (string, required): Hex pattern to search for (e.g. "48 8B 05 ?? ?? ?? ??")
- `max_results` (number): Max results (default 20)

### `hex_replace` (~83 tokens)

Replace bytes at a specific offset or replace a pattern throughout the file.

Input parameters:

- `file_path` (string, required): Path to the file
- `offset` (number): Specific offset to replace at (if provided, ignores search_hex)
- `replace_hex` (string, required): Hex pattern to replace with (must be same length)
- `search_hex` (string): Hex pattern to find

### `pattern_scan` (~99 tokens)

IDA-style pattern scan with wildcards. Searches for byte patterns in PE sections.

Input parameters:

- `file_path` (string, required): Path to PE file
- `max_results` (number): Max results (default 10)
- `pattern` (string, required): Pattern with wildcards (e.g. "48 8B 05 ?? ?? ?? ?? 48 85 C0")
- `section` (string): PE section to search (default: .text)

### `pattern_scan_all` (~58 tokens)

Scan entire file for a pattern (not limited to a section).

Input parameters:

- `file_path` (string, required): Path to file
- `max_results` (number): Max results (default 50)
- `pattern` (string, required): Pattern with wildcards

### `extract_strings_advanced` (~100 tokens)

Extract ASCII and UTF-16 strings from a binary file with filtering.

Input parameters:

- `encoding` (string): Encoding: ascii, utf16, both (default: both)
- `file_path` (string, required): Path to the binary file
- `filter` (string): Optional filter (case-insensitive substring match)
- `max_results` (number): Max results (default 500)
- `min_length` (number): Minimum string length (default 4)

### `extract_dll_classes` (~73 tokens)

Extract class names from a .NET DLL using stream-based analysis. Works with very large files.

Input parameters:

- `file_path` (string, required): Path to DLL file
- `max_classes` (number): Max classes to return (default 200)
- `search_terms` (array): Filter by these terms (case-insensitive)

### `search_binary_pattern` (~62 tokens)

Search for text patterns in a binary file using stream-based approach.

Input parameters:

- `file_path` (string, required): Path to binary file
- `max_results` (number): Max results per pattern (default 50)
- `patterns` (array, required): Text patterns to search for

### `extract_strings` (~52 tokens)

Simple string extraction from a binary file.

Input parameters:

- `file_path` (string, required): Path to binary file
- `filter` (string): Optional filter
- `min_length` (number): Minimum string length (default 4)

### `analyze_dll_structure` (~37 tokens)

Analyze the overall structure of a DLL: sections, imports, exports summary.

Input parameters:

- `file_path` (string, required): Path to DLL file

### `calculate_checksums` (~36 tokens)

Calculate MD5, SHA1, SHA256 checksums for a file.

Input parameters:

- `file_path` (string, required): Path to the file

### `compare_binaries_detailed` (~62 tokens)

Compare two binary files and show differences.

Input parameters:

- `file_path_a` (string, required): Path to first file
- `file_path_b` (string, required): Path to second file
- `max_diffs` (number): Max differences to show (default 50)

### `rva_to_offset` (~51 tokens)

Convert a Relative Virtual Address (RVA) to a file offset in a PE file.

Input parameters:

- `file_path` (string, required): Path to PE file
- `rva` (number, required): RVA to convert

### `offset_to_rva` (~51 tokens)

Convert a file offset to a Relative Virtual Address (RVA) in a PE file.

Input parameters:

- `file_path` (string, required): Path to PE file
- `offset` (number, required): File offset to convert

### `analyze_godot_pck` (~49 tokens)

Analyze a Godot .pck archive and list its contents.

Input parameters:

- `file_path` (string, required): Path to .pck file
- `filter` (string): Optional filename filter

### `gorebox_generate_discovery_mod` (~110 tokens)

Generate a GoreBox Lua mod that discovers all available API functions, globals, tables, and callbacks. Writes results to a dump file in the mod folder. Use this when you need to learn what Lua API is available in a game that uses Lua scripting.

Input parameters:

- `mod_name` (string): Name for the discovery mod (default: APIDisco)
- `mods_dir` (string, required): Path to the game Mods directory (e.g. C:/Users/.../GoreBox/Mods)

### `gorebox_read_api_dump` (~74 tokens)

Read and parse an API discovery dump file generated by gorebox_generate_discovery_mod. Returns structured information about all discovered globals, functions, tables, and callbacks.

Input parameters:

- `dump_path` (string, required): Path to the dump.txt file
- `filter` (string): Optional filter string to match entries (case-insensitive)

### `gorebox_generate_mod` (~152 tokens)

Generate a GoreBox-compatible Lua mod with proper info.json and main.lua. Creates a ready-to-use mod in the Mods directory.

Input parameters:

- `description` (string): Mod description
- `display_name` (string): Display name in the mod browser
- `is_plugin` (boolean): Whether this is a plugin mod (default true)
- `lua_code` (string, required): The Lua script code for main.lua
- `mod_name` (string, required): Name for the mod folder
- `mods_dir` (string, required): Path to the game Mods directory
- `safe_mode` (boolean): Whether to run in safe mode (default false)
- `version` (string): Version string (default 1.0.0)

### `gorebox_list_mods` (~40 tokens)

List all installed GoreBox mods with their info.json contents and file structure.

Input parameters:

- `mods_dir` (string, required): Path to the game Mods directory

### `unpack_game` (~171 tokens)

CATALOG-FIRST universal unpacker. Recursively walks an ENTIRE game install, classifies and sha256-hashes EVERY file, and persists the catalog into a SQLite <game>.autopsy.db (game/binary/asset/data_store tables, provenance on every row). Read-only: never writes game files. Containers (.pak/.pck/.bundle/...) are catalogued as single rows, never expanded (per-format extraction is a later slice). Idempotent: re-running on the same game re-opens the DB and upserts, no duplicate rows.

Input parameters:

- `db_path` (string): Optional output path for the .autopsy.db. Defaults to <game_path>/.autopsy/<name>.autopsy.db.
- `game_path` (string, required): Full path to the game install directory to catalog.

### `decode_assets` (~308 tokens)

Universal Asset Decoder. Reads a PR-1 autopsy catalog, cracks open Unity .assets containers, and decodes their members back into The Model (decoded=1, decoded_path set): Texture2D -> PNG (streamed pixels from sibling .resS), Mesh -> glTF .glb + .obj (plain/uncompressed; compressed noted+deferred), and AudioClip -> WAV (PCM) / OGG (bare Vorbis); FSB5-wrapped Vorbis + other codecs are noted+deferred. Read-only on game files; decoded files + DB rows are the only writes. Pass either db_path (the .autopsy.db) or game_path (whose default .autopsy/ DB is used). Optional out_dir overrides where decoded files land; asset_kinds restricts to textures, meshes, or audio.

Input parameters:

- `asset_kinds` (string): Which asset kinds to decode. 'all' (default) does textures + meshes + audio; restrict with 'textures', 'meshes', or 'audio'.
- `db_path` (string): Path to the <game>.autopsy.db produced by unpack_game.
- `game_path` (string): Game install dir; its default .autopsy/<name>.autopsy.db is used if db_path is omitted.
- `limit` (number): Optional cap on textures decoded (for quick smoke runs).
- `out_dir` (string): Optional output dir for decoded PNGs. Defaults to <db_dir>/decoded/.

### `disassemble_range` (~229 tokens)

Disassemble an arbitrary byte range of a native PE (x86-64) starting at an RVA. Resolves the RVA to its section and file offset, reads ONLY that slice (read-only on the binary), and decodes it with Capstone. Returns the instruction listing. If db_path or game_path is given AND the binary is catalogued in that autopsy DB, the decoded instructions are also summarized into The Model as a 'function' row spanning the range (provenance=verified for the bytes). Pure read-only when no DB is supplied.

Input parameters:

- `binary_path` (string, required): Path to the PE (.exe/.dll) to disassemble.
- `db_path` (string): Optional .autopsy.db for writeback.
- `game_path` (string): Optional game dir; its default .autopsy DB is used if db_path is omitted.
- `length` (number): Number of bytes to disassemble (default 256, clamped to the section).
- `rva` (number, required): Relative virtual address to start at (e.g. 0x1000).

### `disassemble_function` (~210 tokens)

Disassemble a function starting at an RVA in a native PE (x86-64). Linear sweep from the entry RVA to the first terminal instruction (ret/iret) or max_bytes, whichever comes first — a PR-3.1 boundary heuristic (CFG-accurate bounds arrive with the call-graph in PR-3.2), so the function EXTENT is tagged provenance=inferred while the decoded bytes themselves are verified. Read-only on the binary. Writes a 'function' row into The Model when db_path/game_path is supplied and the binary is catalogued.

Input parameters:

- `binary_path` (string, required): Path to the PE (.exe/.dll).
- `db_path` (string): Optional .autopsy.db for writeback.
- `game_path` (string): Optional game dir; default .autopsy DB used if db_path omitted.
- `max_bytes` (number): Safety cap on sweep length (default 4096).
- `rva` (number, required): Entry RVA of the function.

### `load_assembly` (~62 tokens)

Load a .NET assembly (DLL) for analysis. Must be called before other Unity tools.

Input parameters:

- `assembly_path` (string, required): Full path to the .NET DLL file
- `managed_directory` (string): Optional: path to the Managed directory for dependency resolution

### `list_types` (~96 tokens)

List all types (classes, structs, enums, interfaces) in a loaded assembly.

Input parameters:

- `assembly` (string, required): Assembly key (from load_assembly)
- `base_type` (string): Filter by base type name
- `filter` (string): Filter by name (substring match)
- `kind` (string): Filter by kind: class, struct, enum, interface
- `limit` (number): Max results (default 200)

### `decompile_type` (~44 tokens)

Decompile a type to full C# source code.

Input parameters:

- `assembly` (string, required): Assembly key
- `type_name` (string, required): Full type name (Namespace.ClassName)

### `decompile_method` (~66 tokens)

Decompile a single method to C# source code.

Input parameters:

- `assembly` (string, required): Assembly key
- `method_name` (string, required): Method name
- `parameter_count` (number): Parameter count to disambiguate overloads
- `type_name` (string, required): Full type name

### `inspect_type` (~45 tokens)

Inspect type structure (fields, properties, methods) without decompiling method bodies.

Input parameters:

- `assembly` (string, required): Assembly key
- `type_name` (string, required): Full type name

### `search_code` (~76 tokens)

Search across assembly for types, methods, fields, or string literals.

Input parameters:

- `assembly` (string, required): Assembly key
- `limit` (number): Max results (default 100)
- `pattern` (string, required): Search pattern
- `scope` (string): Search scope: all, types, methods, fields, strings (default: all)

### `find_references` (~66 tokens)

Find all references to a method or field.

Input parameters:

- `assembly` (string, required): Assembly key
- `limit` (number): Max results (default 100)
- `member_name` (string, required): Member name to find references to
- `type_name` (string, required): Type containing the member

### `get_inheritance_tree` (~43 tokens)

Get full inheritance tree for a type (ancestors and descendants).

Input parameters:

- `assembly` (string, required): Assembly key
- `type_name` (string, required): Full type name

### `list_monobehaviours` (~52 tokens)

List all MonoBehaviour components in assembly.

Input parameters:

- `assembly` (string, required): Assembly key
- `filter` (string): Optional name filter
- `limit` (number): Max results (default 200)

### `list_scriptableobjects` (~38 tokens)

List all ScriptableObject types in assembly.

Input parameters:

- `assembly` (string, required): Assembly key
- `filter` (string): Optional name filter

### `get_serialized_fields` (~43 tokens)

Get all serialized fields for a MonoBehaviour or ScriptableObject.

Input parameters:

- `assembly` (string, required): Assembly key
- `type_name` (string, required): Full type name

### `get_method_il` (~48 tokens)

Get raw IL bytecode for a method.

Input parameters:

- `assembly` (string, required): Assembly key
- `method_name` (string, required): Method name
- `type_name` (string, required): Full type name

### `generate_plugin` (~123 tokens)

Generate complete BepInEx 5 plugin template with Harmony patching.

Input parameters:

- `author` (string): Author name
- `description` (string): Plugin description
- `include_config` (boolean): Include config system
- `include_harmony` (boolean): Include Harmony setup
- `managed_directory` (string): Path to game Managed directory
- `plugin_guid` (string, required): Plugin GUID (e.g. com.author.pluginname)
- `plugin_name` (string, required): Plugin class name
- `version` (string): Version string (default 1.0.0)

### `generate_harmony_patch` (~101 tokens)

Generate correct Harmony patch class for a specific method.

Input parameters:

- `assembly` (string, required): Assembly key
- `method_name` (string, required): Target method name
- `parameter_count` (number): Parameter count for overload disambiguation
- `patch_class_name` (string): Custom name for the patch class
- `patch_type` (string): Patch type: prefix, postfix, both (default: both)
- `type_name` (string, required): Target type name

### `validate_patch_target` (~77 tokens)

Validate that a Harmony patch target method exists with expected signature.

Input parameters:

- `assembly` (string, required): Assembly key
- `expected_params` (string): Expected parameter types (comma-separated)
- `expected_return` (string): Expected return type
- `method_name` (string, required): Target method name
- `type_name` (string, required): Target type name

### `list_patchable_methods` (~69 tokens)

List all methods in a type that can be Harmony patched.

Input parameters:

- `assembly` (string, required): Assembly key
- `filter` (string): Optional method name filter
- `include_inherited` (boolean): Include inherited methods (default: false)
- `type_name` (string, required): Full type name

### `compile_plugin` (~96 tokens)

Compile a BepInEx plugin C# source file using Roslyn.

Input parameters:

- `assembly_name` (string): Assembly name (optional)
- `bepinex_core_directory` (string, required): Path to BepInEx/core directory
- `managed_directory` (string, required): Path to game Managed directory
- `output_path` (string, required): Output DLL path
- `source_files` (string, required): C# source file path(s), semicolon-separated

### `analyze_bepinex_log` (~44 tokens)

Analyze BepInEx log for errors, warnings, and patch issues.

Input parameters:

- `log_path` (string, required): Path to BepInEx LogOutput.log

### `validate_assembly` (~45 tokens)

Validate compiled plugin DLL for missing references and conflicts.

Input parameters:

- `managed_directory` (string, required): Path to game Managed directory
- `plugin_path` (string, required): Path to compiled plugin DLL

### `compare_signatures` (~84 tokens)

Compare expected Harmony patch signature with actual target method.

Input parameters:

- `game_assembly` (string, required): Assembly key
- `patch_kind` (string): Patch kind: prefix or postfix (default: prefix)
- `patch_params` (string, required): Patch parameter types (comma-separated)
- `target_method` (string, required): Target method name
- `target_type` (string, required): Target type name

### `read_unity_assets_info` (~34 tokens)

List Unity asset files in game data directory.

Input parameters:

- `data_directory` (string, required): Path to game _Data directory

### `read_playerprefs` (~53 tokens)

Read Unity PlayerPrefs from Windows registry.

Input parameters:

- `company_name` (string, required): Company name from PlayerSettings
- `filter` (string): Optional key filter
- `product_name` (string, required): Product name from PlayerSettings

### `analyze_save_format` (~28 tokens)

Analyze game save system by examining SaveManager classes.

Input parameters:

- `assembly` (string, required): Assembly key

### `detect_networking` (~29 tokens)

Detect networking frameworks and flag unsafe-to-patch methods.

Input parameters:

- `assembly` (string, required): Assembly key

### `diff_assemblies` (~77 tokens)

Compare two assembly versions to show changes.

Input parameters:

- `limit` (number): Max results (default 200)
- `new_assembly_path` (string, required): Path to new version DLL
- `old_assembly_path` (string, required): Path to old version DLL
- `show_methods` (boolean): Show method-level changes (default: true)

### `find_renamed_types` (~72 tokens)

Find types likely renamed after a game update.

Input parameters:

- `min_similarity` (number): Min similarity threshold 0-1 (default: 0.6)
- `new_assembly_path` (string, required): Path to new version DLL
- `old_assembly_path` (string, required): Path to old version DLL

### `verify_patches` (~50 tokens)

Verify Harmony patch targets in plugin still exist in game assembly.

Input parameters:

- `game_assembly` (string, required): Path to game Assembly-CSharp.dll
- `plugin_path` (string, required): Path to compiled plugin DLL

### `open_game` (~75 tokens)

Open a game directory for Unreal asset reading. Scans for .pak/.ucas/.utoc files.

Input parameters:

- `aes_key` (string): AES decryption key if assets are encrypted
- `game_path` (string, required): Path to game directory
- `ue_version` (string): Unreal Engine version (auto-detected if omitted)

### `list_assets` (~70 tokens)

List assets in loaded game with file sizes.

Input parameters:

- `limit` (number): Max results (default 200)
- `offset` (number): Skip first N results (default 0)
- `path_filter` (string): Filter assets by path substring
- `type_filter` (string): Filter by asset type

### `search_assets` (~40 tokens)

Search for assets by name (case-insensitive).

Input parameters:

- `limit` (number): Max results (default 100)
- `query` (string, required): Search query

### `unreal_game_status` (~17 tokens)

Check current state of Unreal asset reader.

### `read_asset` (~53 tokens)

Read all exports and properties from an asset.

Input parameters:

- `asset_path` (string, required): Asset path (e.g. /Game/Maps/MainLevel)
- `max_depth` (number): Max property nesting depth (default 4)

### `read_asset_export` (~54 tokens)

Read a specific named export from an asset.

Input parameters:

- `asset_path` (string, required): Asset path
- `export_name` (string, required): Export name to read
- `max_depth` (number): Max depth (default 5)

### `read_blueprint` (~45 tokens)

Read Blueprint class definition, components, and default properties.

Input parameters:

- `asset_path` (string, required): Blueprint asset path
- `max_depth` (number): Max depth (default 3)

### `read_datatable` (~58 tokens)

Read a DataTable asset with all rows and field values.

Input parameters:

- `asset_path` (string, required): DataTable asset path
- `limit` (number): Max rows (default 100)
- `row_filter` (string): Optional row name filter

### `list_exports` (~29 tokens)

List all exports in a package without reading full properties.

Input parameters:

- `asset_path` (string, required): Asset path

### `get_class_hierarchy` (~44 tokens)

Get inheritance chain for a Blueprint class.

Input parameters:

- `asset_path` (string, required): Blueprint asset path
- `max_levels` (number): Max inheritance levels (default 10)

### `find_blueprints_of_type` (~58 tokens)

Search for all Blueprint assets inheriting from a parent class.

Input parameters:

- `limit` (number): Max results (default 50)
- `parent_class` (string, required): Parent class name
- `path_filter` (string): Optional path filter

### `jar_open` (~46 tokens)

Open and extract a JAR file for exploration and editing.

Input parameters:

- `jar_path` (string, required): Path to the JAR file
- `session_id` (string): Optional custom session ID

### `jar_close` (~43 tokens)

Close a JAR session and clean up temp files.

Input parameters:

- `cleanup` (boolean): Delete temp files (default: true)
- `session_id` (string, required): Session ID

### `jar_list_sessions` (~16 tokens)

List all active JAR sessions.

### `jar_list` (~52 tokens)

List contents of an opened JAR file.

Input parameters:

- `filter_pattern` (string): Optional filename filter
- `max_results` (number): Max results (default 100)
- `session_id` (string, required): Session ID

### `jar_search` (~59 tokens)

Search within JAR for classes, methods, or strings.

Input parameters:

- `search_term` (string, required): Search term
- `search_type` (string): Type: filename, content, classname (default: filename)
- `session_id` (string, required): Session ID

### `jar_search_bytecode` (~54 tokens)

Search for numeric values or strings in bytecode.

Input parameters:

- `file_filter` (string): Optional file filter pattern
- `search_value` (string, required): Value to search for
- `session_id` (string, required): Session ID

### `jar_search_opcodes` (~54 tokens)

Search for bytecode opcode patterns in .class files.

Input parameters:

- `file_filter` (string): Optional file filter
- `pattern` (string, required): Opcode pattern to search for
- `session_id` (string, required): Session ID

### `jar_read_class` (~75 tokens)

Read and decompile a Java .class file.

Input parameters:

- `class_path` (string, required): Path to .class file within JAR
- `decompile` (boolean): Decompile to Java source (default: true)
- `extra_classpath` (array): Additional classpath entries
- `session_id` (string, required): Session ID

### `jar_read_file` (~41 tokens)

Read a text file from the JAR.

Input parameters:

- `file_path` (string, required): File path within JAR
- `session_id` (string, required): Session ID

### `jar_inspect_constant_pool` (~67 tokens)

Dump the constant pool of a .class file.

Input parameters:

- `class_path` (string, required): Path to .class file
- `filter_type` (string): Filter by constant type
- `filter_value` (string): Filter by value
- `session_id` (string, required): Session ID

### `jar_hex_view` (~69 tokens)

Read raw bytes from a .class file as hex dump.

Input parameters:

- `class_path` (string, required): Path to file
- `length` (number): Bytes to read (default 256)
- `offset` (number): Start offset (default 0)
- `session_id` (string, required): Session ID

### `jar_detect_mod_info` (~35 tokens)

Auto-detect mod loader, version, and structure from JAR contents.

Input parameters:

- `session_id` (string, required): Session ID

### `jar_edit_file` (~52 tokens)

Edit a text file within the JAR.

Input parameters:

- `file_path` (string, required): File path within JAR
- `new_content` (string, required): New file content
- `session_id` (string, required): Session ID

### `jar_edit_class_constants` (~83 tokens)

Edit numeric constants in .class file bytecode.

Input parameters:

- `class_path` (string, required): Path to .class file
- `occurrence` (number): Which occurrence to replace (0-indexed)
- `replacements` (object, required): Map of old_value -> new_value
- `session_id` (string, required): Session ID
- `value_type` (string): Value type hint

### `jar_edit_constant_pool` (~56 tokens)

Edit constants by their exact constant pool index.

Input parameters:

- `class_path` (string, required): Path to .class file
- `edits` (object, required): Map of pool_index -> new_value
- `session_id` (string, required): Session ID

### `jar_hex_edit` (~62 tokens)

Write raw bytes at a specific offset in a file.

Input parameters:

- `class_path` (string, required): Path to file
- `hex_data` (string, required): Hex string to write
- `offset` (number, required): Byte offset
- `session_id` (string, required): Session ID

### `jar_add_file` (~69 tokens)

Add a file from disk into the JAR.

Input parameters:

- `jar_path` (string, required): Destination path within JAR
- `overwrite` (boolean): Overwrite if exists (default: true)
- `session_id` (string, required): Session ID
- `source_path` (string, required): Source file on disk

### `jar_add_file_content` (~68 tokens)

Write text content as a new file in the JAR.

Input parameters:

- `content` (string, required): File content
- `encoding` (string): Encoding (default: utf-8)
- `jar_path` (string, required): Destination path within JAR
- `session_id` (string, required): Session ID

### `jar_compile_java` (~121 tokens)

Compile Java source code and optionally inject into JAR.

Input parameters:

- `auto_classpath` (boolean): Auto-add JAR to classpath (default: true)
- `class_name` (string, required): Fully-qualified class name
- `classpath` (array): Additional classpath entries
- `inject_into_jar` (boolean): Inject compiled class into JAR (default: true)
- `java_release` (number): Java release target (default: 21)
- `session_id` (string, required): Session ID
- `source_code` (string, required): Java source code

### `jar_diff` (~39 tokens)

Show differences between original and modified file.

Input parameters:

- `class_path` (string, required): File path within JAR
- `session_id` (string, required): Session ID

### `jar_restore_file` (~41 tokens)

Restore a file from backup to undo modifications.

Input parameters:

- `class_path` (string, required): File path within JAR
- `session_id` (string, required): Session ID

### `jar_preset_save` (~79 tokens)

Save a named preset of constant edits for reuse.

Input parameters:

- `class_path` (string, required): Target class path
- `description` (string, required): Preset description
- `edit_mode` (string): Edit mode: constants or pool (default: constants)
- `edits` (object, required): Edit map
- `preset_name` (string, required): Preset name

### `jar_preset_apply` (~55 tokens)

Apply a saved preset of constant edits.

Input parameters:

- `preset_name` (string, required): Preset name to apply
- `reverse` (boolean): Reverse the edits (default: false)
- `session_id` (string, required): Session ID

### `jar_preset_list` (~16 tokens)

List all saved edit presets.

### `jar_repack` (~45 tokens)

Repack the modified JAR file with all changes.

Input parameters:

- `output_path` (string): Optional output path (defaults to original)
- `session_id` (string, required): Session ID

### `jar_scaffold_mod` (~114 tokens)

Generate a minimal Minecraft mod JAR structure.

Input parameters:

- `author` (string): Author name
- `description` (string): Mod description
- `loader` (string): Mod loader: fabric, forge, neoforge (default: fabric)
- `mc_version` (string): Minecraft version (default: 1.21.5)
- `mod_id` (string, required): Mod ID (lowercase, no spaces)
- `mod_name` (string, required): Mod display name
- `output_dir` (string, required): Output directory

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/doritoman90000-universal-game-modder/universal-game-modder#diagnostics

## Score history

- 2026-09-20: 78
- 2026-09-19: 77
- 2026-09-18: 77
- 2026-09-17: 76
- 2026-09-16: 76
- 2026-09-15: 74
- 2026-09-14: 73
- 2026-09-13: 73
- 2026-09-12: 72
- 2026-09-11: 72
- 2026-09-10: 71
- 2026-09-09: 68
- 2026-09-08: 68
- 2026-09-07: 68
- 2026-09-06: 68
- 2026-09-05: 68
- 2026-09-04: 68
- 2026-09-03: 68
- 2026-09-02: 68

## Common questions

### What is the io.github.doritoman90000/universal-game-modder MCP server?

io.github.doritoman90000/universal-game-modder is an MCP server listed in the public MCP registry as io.github.doritoman90000/universal-game-modder. Local MCP server: detects a game's engine and gives agents native binary analysis/patching tools. This page covers its npm package (universal-game-modder).

### Is the io.github.doritoman90000/universal-game-modder MCP server safe to use?

io.github.doritoman90000/universal-game-modder scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.doritoman90000/universal-game-modder MCP server expose?

io.github.doritoman90000/universal-game-modder exposes 100 tools: detect_engine, load_game, game_status, find_steam_games, mod_this_game, and 95 more. Their descriptions and schemas cost roughly 6,792 tokens of context every time the server is loaded.

### Is the io.github.doritoman90000/universal-game-modder MCP server still maintained?

io.github.doritoman90000/universal-game-modder is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.doritoman90000/universal-game-modder MCP server under?

io.github.doritoman90000/universal-game-modder declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/universal-game-modder
- Socket report: https://socket.dev/npm/package/universal-game-modder
- Repository: https://github.com/doritoman90000/universal-game-modder
- Changelog RSS feed: https://verifymcp.io/servers/doritoman90000-universal-game-modder/universal-game-modder.xml
- Changelog JSON feed: https://verifymcp.io/servers/doritoman90000-universal-game-modder/universal-game-modder.json
- HTML version of this page: https://verifymcp.io/servers/doritoman90000-universal-game-modder/universal-game-modder
