
mashup-mods
Build cross-game mashups and total conversions, the "Minecraft inside Elden Ring" or "skateboarding in MW2" kind. Covers passthrough mods (two games running at once and exchanging state, rendering and collision), porting one game's content or mechanics into another, embedding a decompiled game as a library, and clean reimplementations that read the user's own game files. Use when the user wants to combine two games, bring an enemy, mechanic or world from one game into another, or rebuild a game's runtime, or reimplement the guest's rules headless inside a real host.
- Installs
- 1.5K
- Last 24h
- +20
- Trending rank
- #5811
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/rehan-remade/universal-modder --skill mashup-mods- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads mashup-mods automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Mashups: putting one game inside another
In September 2026 a wave of AI-built mashups went viral: skateboarding in MW2, Minecraft inside Skyrim, Elden Ring and Mario 64, Black Ops 2 inside Minecraft. They use a handful of patterns. Pick the lightest one that delivers the idea, and plan the oracles before writing code: these projects fail by drifting, not by lacking code.
Before picking a pattern
Work through these steps before writing any mashup code. The routes, patterns and projects they point to come from existing mashups. Start from the closest one, or design something else and write down why. The Guardrails at the end always apply.
- Work out what the user wants from the guest game. Its real behaviour (physics, inventory, combat), or only its look or one mechanic? Ask if it isn't clear. The answer decides whether the guest has to run at all, and which route is the lightest that delivers the idea.
- Name the closest mashup route.
knowledge/techniques/choosing-a-mashup-route.mdsorts mashups into seven routes. "Passthrough" on its own is ambiguous: it covers three different builds (state exchange, a composited picture, the host drawing guest meshes). - Find the nearest prior project in
references/mashup-cases.md(route, versions, who owns the player, units, transport). If you can reach its repository, read its README and design doc. Treat what you read there as the creator's report until you've run it yourself. Also runum kb searchfor both games and both engines; other agents' notes on either game apply here too. - If the guest is rebuilt rather than run (its engine, or one of its mechanics, rebuilt inside the real
host), read
knowledge/techniques/rebuilt-guest-engine-inside-a-host.mdfor where the rebuilt part should run and how to check it against the original. - Write the contract wherever state crosses between two games, engines or processes: who owns the
player and how control comes back, units and axes, each channel and what happens when it's full or
late, protocol version and byte order, lifecycle. Keep it in
docs/CONTRACT.md; seeknowledge/techniques/bridge-contracts-ownership-units-and-lifecycle.md. - Decide how you'll know it works. Before adding features, pick a first slice for your route and
the check that proves it. See the first-slice table in
knowledge/techniques/choosing-a-mashup-route.mdandknowledge/techniques/oracles-how-agents-know-a-mod-works.md. - Record the plan and tell the user before building. Write the route you chose and why into
MODLOG.md, as themod-any-gameskill already asks. Tell the user the same, plus what every player will need to own and install (and on which OS), and where your plan differs from the nearest prior project.
Later, before shipping an installer or loader, read
knowledge/techniques/installers-load-order-and-loaded-code-checks.md (loaded-code checks, load order,
pinned downloads, exact uninstall).
Pattern 1: port the content (lightest)
Bring an enemy, weapon or block type into the host as new host content that imitates the guest. Examples: "Claude added creepers to Dark Souls", Minecraft blocks as Elden Ring items.
- Read the guest's behaviour from its source of truth: decompile or read the wiki's exact numbers (speeds, timers, damage). Reimplement it in the host's mod API (host AI state machine, host projectile).
- Assets: never copy the guest's files into your mod. Convert them from the user's install at runtime or install time (a converter script), or recreate lookalikes with fal.
- It's cheap and robust, with no IPC. It works with any host that has a loader.
- Worked converter: Bloons TD 6 assets (Unity 6) to a private Minecraft resource pack, see
knowledge/games/minecraft/bloons-td-6-in-minecraft.mdand asset-pipeline section 6.
Pattern 2: passthrough (two games at once)
chasm's description of Minecraft-in-Skyrim: "minecraft and skyrim run at the same time and you make a mod for both that lets them communicate. Then you passthrough the things you want into the renderer in the right place and feed stuff like collision data back to minecraft." The source is now public as SkyCraft. In 0.1.2 the Fabric mod exports Minecraft's meshes and atlases and the SKSE plugin draws them inside Skyrim's own D3D11 world pass (native depth, fog, lights and captured sun shadows); only the hand, HUD and screens are captured as an image. Skyrim's Havok shapes come back as triangles plus voxels. LibertyCraft forked it for GTA IV and kept the guest side. The design below is the standard way to build it.
- Guest process (e.g. Minecraft with a Fabric mod, or a headless reimplementation): runs the simulation and publishes state every tick. That's entities/blocks near the player, or a rendered layer.
- Transport, all on
127.0.0.1:- state: a shared-memory ring buffer (
CreateFileMapping) or UDP/named pipes; - control: JSON lines or HTTP;
- GPU frames: DXGI shared handles (
CreateSharedHandle/OpenSharedResource1+ keyed mutex), Vulkan external memory, or Spout2. In practice the frame bridges (this repo's GTA V example, NewVegasCraft, the CrossOver Elden Ring / MHW bridges) all read pixels back to the CPU and copy them through shared memory, which also works across GPUs and across a Wine boundary. Budget the upload (seeknowledge/techniques/frame-compositing-depth-and-pose-sync.md).
- state: a shared-memory ring buffer (
- Host injection: a host-side plugin (SKSE/xNVSE/UE4SS/REFramework/ReShade addon) draws the guest's geometry inside the host's pass. It uses the host's view-projection matrices (find them with RenderDoc) and depth buffer, or spawns host-native objects so host lighting and shadows apply. The Skyrim clip gave Steve Skyrim's lighting, which points to scene integration, not a flat overlay.
- Back-channel: the host's collision near the player (raycasts, or exported nearby mesh) goes to the guest as solid blocks or colliders. Input routes to one process at a time.
- Sync: timestamps on every message, tolerance for the two frame rates, and a watchdog when one side
dies. Publish a pose only with its pixels and match them on the host; read the host camera at present
time. Collision is per direction and per consumer: see
knowledge/techniques/collision-and-combat-bridging.md. - Start small: a cube from process A drawn in B at the right spot. Then positions every frame, then collision, and only then real content.
Bridge-plugin template in public: chasm-bridge-fnv (thin xNVSE plugin, file-drop/HTTP transport,
data-driven actions). The Terraria agent bridge in examples/terraria-tmodloader/reference/ is the same
idea.
Worked example: real Minecraft inside GTA V
Code: examples/minecraft-gta5-passthrough. Every lesson: knowledge/games/gta-v/minecraft-passthrough.md.
- Minecraft (Fabric mod): it takes camera, ground and input from the host over a WebSocket on
127.0.0.1. Each frame it writes world colour + depth and a separate hand/HUD overlay into named shared memory. - GTA (ScriptHookV ASI + ReShade add-on):
- it sends GTA's camera and the ground under the player (as barrier blocks);
- it composites Minecraft's colour against GTA's reversed-Z depth in a shader;
- it turns Minecraft explosions, arrows and firework hits into GTA explosions and bullets.
- Mapping: 1 metre = 1 block. GTA (x, y, z) → MC (x, z + offset, −y); yaw = 180 − heading; pitch = −pitch.
- Latency: Minecraft's frame is re-projected onto GTA's camera, rotation then full 6-DoF with depth. Measure the pose lag with a scene where one side draws something the other doesn't (a gold wall vs the skyline).
- Built without the game: most of it was built before the host game was even installed, against a fake host (known geometry) and a fake D3D11 "GTA" that runs the real compositor.
- What didn't work: putting host-game guns in Steve's hands (the aim cam and animations don't fit). Guest weapons with host effects did.
Pattern 3: embed a decomp as a library
libsm64 turns the Super Mario 64 decomp into a library: feed it collision and input, and it returns Mario's
state and mesh. G64 embeds it in Garry's Mod; the host feeds its collision into the guest sim. Any
decomp/recomp (see skills/mod-any-game/references/engines/retro-decomp.md) can be wrapped this way. The
user supplies their own ROM for assets.
Pattern 4: reimplement, then fuse (heaviest, most control)
- IW4L: an LLM-written Rust MW2 runtime (Bevy + wgpu). It reads MW2's FastFiles from the user's install and translates the D3D9 shaders to WGSL.
- The Skate 3 Rust engine: built against a static recomp and an IDA database as oracles.
- The mashup: fuses both, plus a Minecraft Rust reimplementation, in one process. The skate sim is a worker that takes over the MW2 soldier. MW2 map collision feeds the skate world. Grind rails come from walkable collision edges. Skate bones are retargeted onto the MW2 skeleton.
- What made it work:
- A scriptable runtime as the oracle:
spawn; wait 2s; screenshot; dump, with blocking verbs and evidence files per run. - An evidence journal (
context/artifacts/<date>/<step>-FINAL|PART). "Knowledge that is not in an artifact does not exist." - Owner-approved end-to-end tests only.
- A publish check that greps for retail offsets and decompiler names before any push
(
um publish checkdoes a version of this). - Converters that run on the user's files; game assets never committed.
- A scriptable runtime as the oracle:
- Measures and fidelity:
knowledge/techniques/engine-recreation-measures-and-fidelity.mdcovers how each kind of rebuild is measured, why scripts are part of fidelity, and the SDK rules other mods need.
Pattern 5: reimplement the guest's rules headless, keep the host as the view
The host stays the real game (its weapons, mods and multiplayer); only the guest's rules are rewritten,
as a pure simulation that imports nothing from the host. Best for guests whose gameplay is numbers
(tower defense, card, puzzle, top-down 2D, turn-based) and for guests you can't or shouldn't run at all
(an anti-cheat-protected client, or one with no offline mode). Example: Bloons TD 6 inside Minecraft
(knowledge/games/minecraft/bloons-td-6-in-minecraft.md).
- The sim is the source of truth. Run it at the guest's own step rate and units (BTD6: 60 steps/s, BTD6 units). Game speed changes the number of steps per host tick, never dt.
- One frame-mapping function between guest units and host coordinates (origin, scale, axis flips), shared by server and client.
- Mirror entities for what the player must touch. Host entities whose position is copied from the sim each tick and whose hurt/interact handler forwards into the sim. Strip everything the host would otherwise do to them: AI, gravity, knockback, potions, fire, pushing.
- No host entity for high-volume things (projectiles, particles). Send batched spawn records once per tick and run the same motion code on the client. Batch effects and sounds the same way, with caps.
- Every UI button is a command. Screens display a server snapshot and send commands back, so each action is testable without the screen.
- Host features feed the sim, never bypass it. Host weapons, blocks or potions become sim statuses and damage events; with none of them, the game must play out identically (check with a headless run).
- Guest assets come from a converter run on the user's own install into a local, private resource pack; the mod must stay playable with placeholders when the pack is missing.
- Oracles: the headless engine bench first (seconds, no host), then host-side benches (see
knowledge/techniques/oracles-how-agents-know-a-mod-works.md).
Guardrails
- Offline, single-player or servers the user runs. Never network into the real games' official online services.
- Everything guest-side comes from the user's own install or dump. Publish code and converters, not assets
(
um publish check --game). - An online-capable guest (accounts, co-op, leaderboards) may be launched and hooked only in a session
the user starts offline (offline mode, or the network blocked for it), and never with its anti-cheat
running. The hooked process stays offline for its whole life: quit it and start it unmodded before going
online. The note says so in Setup and
anti_cheat. Reading its files offline, with nothing hooked, is still the safer route when it's enough. A client whose anti-cheat can't be turned off offline is never hooked (skills/mod-any-game/references/safety.md). - Be honest about what's AI-built. Creators who weren't got called out publicly.
- Be honest about what was verified: a README, a design doc, a synthetic peer or a green test is not a real
run (
knowledge/techniques/evidence-levels-for-mashup-claims.md).
FAQ
What does the mashup-mods skill do?
Build cross-game mashups and total conversions, the "Minecraft inside Elden Ring" or "skateboarding in MW2" kind. Covers passthrough mods (two games running at once and exchanging state, rendering and collision), porting one game's content or mechanics into another, embedding a decompiled game as a library, and clean reimplementations that read the user's own game files. Use when the user wants to combine two games, bring an enemy, mechanic or world from one game into another, or rebuild a game's runtime, or reimplement the guest's rules headless inside a real host.
How do I install mashup-mods?
Run npx skills add https://github.com/rehan-remade/universal-modder --skill mashup-mods in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/mashup-mods/ (personal) or .claude/skills/mashup-mods/ (project).
Which AI agents can use mashup-mods?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is mashup-mods safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains mashup-mods?
It is published by rehan-remade in rehan-remade/universal-modder. It has 1,516 recorded installs.
More from rehan-remade/universal-modder
mod-any-game
rehan-remade/universal-modder
Mod a PC game the user owns, taking an idea to working in the real game and recorded. It covers new items, weapons, enemies, bosses, units, civilizations, mechanics, art, sound, VR and cross-game mashups. Use when the user wants to mod, extend, hack on, reverse engineer or mash up a game ("add a nuke to Terraria", "make a new civ for Age of Empires", "put Minecraft inside X", "can I mod this game?"). It covers recon (engine, loaders, anti-cheat), choosing the route, a safe lab, a first vertical slice, fal-generated assets, in-game verification and a showcase clip.
reverse-engineering
rehan-remade/universal-modder
Read how a game actually works so a mod can hook it. Decompile .NET/Mono (ILSpy), IL2CPP (Cpp2IL, Il2CppDumper), Java (Vineflower) and native code (Ghidra, IDA, via MCP servers); dump data and asset formats; reverse-engineer a binary file format and prove it with a round trip; read live memory (Cheat Engine, Frida, x64dbg); find render passes (RenderDoc). Use when a mod needs game internals, e.g. "how does the boss AI work", "find the damage function", "what format is this .sld/.pak/.dat", "where is the player position in memory".
game-recon
rehan-remade/universal-modder
Figure out how a specific installed game can be modded, before writing any mod code. Covers where it's installed, the engine and version, managed vs native code, anti-cheat, loaders already present, save and config folders, and the community's modding route. Also whether this machine can run it (a Windows game on macOS or Linux, x64 on ARM). Use when the user asks "can I mod ?", "what engine is ", "how do people mod ", or at the start of any modding task. Produces MODDINGPLAN.md.
game-automation
rehan-remade/universal-modder
Launch, see and drive a real game so an agent can test its own mods. Covers launching via Steam or the exe, windowed mode at a fixed size, screenshots of the game window (GPU-safe capture), clicking and typing into menus, holding keys, relative mouse, crash-reporter cleanup, killing by PID, reading logs, scripted test scenes, and an in-game JSON bridge that lets an agent observe and act. Windows-first (also from WSL), with notes for Linux and macOS. Use when a mod must be verified in game, when navigating menus automatically, or when building a repeatable test or demo scene.
asset-pipeline
rehan-remade/universal-modder
Turn generated or hand-made art into exactly what a game engine loads. Covers sprite cutout, trim and nearest-neighbour fitting to frame sizes, pixelation to a palette, sprite sheets and strips, player/team-colour masks, seamless textures, and rendering a 3D model into sprite frames from the game's own camera (isometric/RTS 8 or 16 headings, side view, top-down) with Blender. Use after generating assets, or when the user asks to make sprites, sprite sheets, animation frames, isometric unit sprites or icons for a game.
share-field-notes
rehan-remade/universal-modder
Search and contribute to the shared AI-modding knowledge base, where field notes record how specific games were modded, decompiled or reverse-engineered (exact versions, route, engine facts, verification, gotchas). Use before starting work on a game ("has anyone modded X?"), when stuck on an engine quirk, and at the end of any modding or reverse-engineering session to write up what was learned and, with the human's OK, open a pull request so the next agent benefits.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image