Repository navigation
Releases: petonexus/moddin-desktop
Release list
v0.1.0-beta.6 — the installer finally contains the app, and the first release the updater can verify
v0.1.0-beta.6 — the installer finally contains the app, and the first release the updater can verify
Read this first: every earlier installer shipped with no frontend inside it. The app launched and showed a blank window. The cause was a missing Cargo feature (custom-protocol on tauri), so the bundled build looked for a dev server at 127.0.0.1:1420 instead of its own embedded files. This release fixes it, and a build gate now fails if the feature is ever dropped again.
⚠️ Still a beta. It runs real installs, real registry writes and real process kills. Read the User Guide before applying anything new.
What changed
The window is no longer blank
tauri is now built with custom-protocol, so the installer embeds dist/ and loads it. scripts/check-bundle-features.mjs walks the repository for Cargo.toml files and fails CI when the feature is missing.
The first updatable release
Releases now carry a signed updater payload (-setup.exe, its .sig minisign signature and a CI-generated latest.json). The updater public key is in tauri.conf.json; the build refuses to compile with the old placeholder. Older installs must download the installer manually. The in-app updater currently follows the stable channel; beta releases do not appear at its /releases/latest endpoint.
Trust
The community signing key is pinned against a compiled keyring, the cached catalog is re-verified on every read, the YAML fetch host is allow-listed, and revocations now travel inside the signed catalog.json, so one signature covers both halves and they cannot disagree. Downloaded YAML must also match yamlSha256 in that signed catalog; SIGNED-BY keys must belong to the compiled, non-revoked keyring. Unsigned consent cannot bypass the digest or downgrade an entry declared signed.
Mods install what they advertise
The install transaction opens before the step loop, steps are confined to the install root, extract-zip can filter members with include/exclude, %VAR% is expanded in paths with a JSON-safe write-text-file, and an archive in which two members claim the same proxy name is refused.
Smaller and stricter
The installer is about 23% smaller, the runtime is staged from a lockfile, and cargo fmt and clippy now block CI. Rust and frontend regression tests cover the safety and UI paths; validation results are recorded per build.
Safer installation and release checks
Any failure while planning, extending backups, executing steps or committing an installation now attempts rollback. Recovery failures retain the original error and identify the transaction. Community, Collections and Contribute use the live library selection, AI receives catalog game IDs, and kill-process resolves the configured image name. Capability installs/removals enter activity history. Runtime debug overlays require development mode or explicit opt-in.
Release versions now agree across npm, Cargo and Tauri (0.1.0-beta.6). CI validates tag/version equality. The Release workflow supports manual artifact dry-runs without publishing.
AI permissions and installed MCP
Headless AI requires confirmation before sending context to the provider. CLI
permission bypasses are removed; authoring uses restricted modes and can be
cancelled. Output streams are drained concurrently with bounded buffers and
Codex's last answer is read before cleaning the run directory. The installed MCP
ships its own catalog snapshot and no longer depends on a developer checkout.
Interface
App.vue is split by responsibility, there is one dialog implementation and one error path, and the empty states, localization boundary and accessibility have had a pass.
Known gaps
- Catalog key migration: this build pins the replacement signing key
bbe4bcb7ebd11a6f. Older clients need a manual update to beta.6 before they can verify catalogs signed by that key. Community recipes retain their own availability status. - The
ofxr-bridge,uevrandreframeworkrecipes are stillstatus: planned. UE4SS is available; the installed game and required configuration must be resolved. - The per-game OpenXR binding is not shipped: it depends on a decision about what Undo does with files outside the install root.
The full audit and reasoning are in docs/AUDIT-2026-09-29.md and ROADMAP.md.
Built and signed by GitHub Actions from commit 10eae6c0e7729effd708eb3b50738952110f56a1. CI checks passed: 458 frontend tests and 343 Rust tests.
SHA-256 of Moddin.Desktop_0.1.0-beta.6_x64-setup.exe:
a237c22c9df7097092b233367197793babfb6093cc7b5e074544c5e4d02673df
v0.1.0-beta.5 — dependencies, build compatibility, and a real download step
v0.1.0-beta.5 — dependencies, build compatibility, and a real download step
Three features that Moddin already half-knew how to do finally reach the screen, plus a fix for installs that silently went nowhere. This is the beta where mods can depend on other mods, can refuse to install on an unsupported game build, and can tell you whose file they are about to replace.
⚠️ Still a beta. It runs real installs, real registry writes and real process kills. Read the User Guide before applying anything new.
What changed
Mods can have prerequisites
A recipe can now declare dependencies: and Moddin installs what is missing before the mod itself, in order, each with its own transaction. A Cheeky-on-UEVR plugin for a game that has neither UEVR nor OptiScaler gets both installed first, and the card tells you what came along.
Cycles, chains longer than 8, and ids that do not exist are refused with the whole chain spelled out, so a typo fails loudly instead of half-installing.
Game catalog entries can declare the same thing, and the library now offers you the prerequisites before applying the mod that needs them.
Mods can check the game build
A recipe can pin the game versions it supports. Moddin reads the executable's FileVersion before installing and refuses when the build is outside the window, naming the file it probed.
The card explains the refusal and offers an explicit install anyway. If you take it, the warning stays on screen afterwards — an override you cannot see is an override you cannot undo.
Proxy conflicts now name their owner
Installing OptiScaler over a dxgi.dll used to show a filename and nothing else. It now says whether the file is installed by Moddin or from another mod, and replacing a third-party file takes an explicit tick that re-runs the preview. The chosen resolution is pinned to the request, so a preview that went stale is refused instead of overwriting whatever took the slot in the meantime.
Fixed: community and AI installs went nowhere
Installing a community mod, or accepting an AI recommendation, sent empty install and executable paths to the backend. Recipes that extract archives and write files resolved those against Moddin's working directory: the install reported success, wrote nothing into the game, and recorded no transaction to undo.
Both surfaces now resolve the selected game properly — the same folders the per-game cards use. If no supported game is selected, the install is refused with a message instead of pretending.
New: mods can download their own files
Until now no install step could download anything — the extract step read a local path, so every recipe that pointed it at a URL failed with a file-not-found. A new download-file step fetches over HTTPS with a host allow-list, a size cap and SHA-256 verification, and stores the archive in Moddin's own cache so it never lands in your game folder.
BepInEx, UE4SS and REFramework are recipes now
BepInEx used to be a Rust command that nothing in the UI could reach. It is a capability recipe now — download, verify, extract — and rolls back cleanly, restoring the game folder instead of deleting two files and leaving a folder behind. UE4SS and REFramework are declared as planned recipes that say plainly they are not installable yet, replacing Rust stubs that returned "not implemented" for every operation.
Installers, catalogue entries and dedicated Rust commands for those three were removed. If your BepInEx recipe relied on automatic Unity x86/x64 detection, note that the release URL is now pinned per game in the recipe rather than sniffed at install time.
Smaller fixes
status: plannedis now enforced. A planned recipe used to "install" successfully, write nothing, and record no transaction.- The
mod-loader-pluginagent template and the other three templates pointed the extract step at a URL; they now download first. - The agent's step and check catalogues learned the new step kind.
Install (Windows 10 / 11 x64)
Download the installer below and run it. It puts Moddin in %LOCALAPPDATA%\Programs\Moddin Desktop and adds an uninstaller to Settings → Apps.
- Installer:
Moddin.Desktop_0.1.0_x64-setup.exe(attached below) — NSIS, installs per-user, no admin required - SHA-256:
1B33389D253DD3A2967977573F87D2D1F32E3208595852CD4D7CF5D97B6F35CF - The installer is larger than beta.4 (3.8 MB) because it now ships the Node runtime and the AI agent alongside the app, which is what lets the local-AI features run offline.
- WebView2 Runtime is required (pre-installed on Windows 11; Windows 10 installs it automatically if missing).
If you already installed beta.4, you can install this on top — it replaces the same files.
The installer was replaced after the first upload. The first build shipped a broken Fazer com Codex button: Moddin passed the headless flags to the bare
codexcommand, and current Codex (0.158.x) only accepts them on itsexecsubcommand, so the run died withunexpected argument '--skip-git-repo-check' found. Re-download the installer — the SHA-256 above is the fixed build; anything with a different digest is the broken one. Claude Code and Cursor were never affected.
What to test
- Open the AI mods section for a game and confirm it loads (it now also lists the shipped recipes, not only the ones you created)
- Save a mod that declares
dependencies:and install it on a game where the prerequisite is missing — both should install, and the card should name what came along - Write a recipe with a
compatibility:block and a build that does not match: Apply should be disabled with the reason, and install anyway should work and leave a visible warning - Install OptiScaler on a game folder where another mod owns
dxgi.dll: the conflict list should name the owner and offer the replace tick - Install a community mod from the community panel and confirm it actually writes files into the game folder, and that the change shows in History
- Click Fazer com Codex in this dialog with a current Codex CLI installed and confirm it returns a real answer instead of an argument error
- Confirm a planned recipe (UE4SS, REFramework) refuses to install with a clear message
Known gaps in this beta
- The shipped OptiScaler, ReShade, UEVR, OFXR Bridge and Cheeky recipes still pass a URL where a local path is expected. They are not reachable from the library (their own installers handle those modules), and they are being rewritten in a later beta.
- Installing a community mod or an AI recommendation still needs a supported game selected in the library first.
Full changelog: v0.1.0-beta.4...v0.1.0-beta.5
v0.1.0-beta.4 — plain language, no more "capability"
v0.1.0-beta.4 — plain language, no more "capability"Small follow-up to beta.3. The AI dialog and the prompt it generates still used the word "capability" in places the user reads — chips like "Melhorar uma capability", the mode description, the prompt itself ("The user installed a Moddin capability …"). Nobody outside the Moddin code knows what that word means; the rest of the app already calls these things mods.> ⚠️ Still a beta. It runs real installs, real registry writes and real process kills. Read the User Guide before applying anything new.---## What changed- AI dialog chips: Melhorar uma capability → Melhorar um mod; Criar nova capability → Criar um mod novo.- Mode descriptions: Editar uma capability existente com IA → Melhorar um mod que você já tem com a IA; Adicionar uma nova capability com IA → Criar um mod novo com a IA.- Save confirmations: Capability {id} salva → Mod {id} salvo; the body line no longer says "a nova capability aparece".- "Why this?" tooltip: Vale a pena instalar essa capability? → Vale a pena instalar este mod?.- The prompt itself: The user installed a Moddin capability (id: …) → The user installed a Moddin mod for … (internal id in the catalog file: …). The prompt also adds one sentence explaining that each mod lives under a modules: list in the YAML, so the AI knows the schema without the user needing to learn the term.- Fallback notice: Sem backend Rust ainda — usando o template local → O Moddin ainda não monta o prompt sozinho — este texto é gerado localmente. Same idea in English and Spanish.- idtech engine preset description: same terminology fix in the catalog text.- Same edits in English and Spanish.Nothing about the install, the installer size, the signing key, or the catalog changes in this release. If you already installed beta.3, you can install this on top — it replaces the same files.---## Install (Windows 10 / 11 x64)Download the installer below and run it. It puts Moddin in %LOCALAPPDATA%\Programs\Moddin Desktop and adds an uninstaller to Settings → Apps.- Installer: Moddin.Desktop_0.1.0_x64-setup.exe (attached below) — 3.6 MB (NSIS, installs per-user, no admin required)- SHA-256: A732356DF3FA693F9B35B0DA0851CA95BA082A79A9D569B1456966C71E4467C3- WebView2 Runtime is required (pre-installed on Windows 11; Windows 10 installs it automatically if missing).---## What to test- [ ] Open the AI dialog and confirm the chips say Melhorar um mod / Criar um mod novo (or the English / Spanish equivalents)- [ ] Click Gerar prompt agora and confirm the generated prompt says Moddin mod instead of Moddin capability, with a one-line note about the modules: schema- [ ] Confirm the fallback notice (when the dialog uses the local template) no longer mentions "Rust backend"- [ ] Save a mod and confirm the success heading reads Mod {id} salvo (or the localised equivalent)---Full changelog: v0.1.0-beta.3...v0.1.0-beta.4
v0.1.0-beta.3 — AI surface that explains itself, errors that tell you what to do
v0.1.0-beta.3 — AI surface that explains itself, errors that tell you what to doThird public beta. The headline is a redesigned AI surface (one primary action, plain language, no cryptic backend errors), friendly error messages across the panels that touch your system, and a switch to a smaller, per-user installer. Plus a security refresh of the community catalog signing key.> ⚠️ Still a beta. It runs real installs, real registry writes and real process kills. Read the User Guide before applying anything new.---## What you will notice right away- One AI button that does the right thing. The top-bar "Pedir ajuda à IA" entry is now a quiet chip next to the main action. Click it and you get a single big "Gerar prompt" button — not five equal-weight buttons competing for attention.- Errors that tell you what to do. When the Community, VR or Activity panels hit a problem, you see a one-line title, a sentence explaining what to try, and the technical detail tucked under a disclosure for power users. No more raw "Verification equation was not satisfied".- A smaller, per-user installer. We dropped the MSI in favour of NSIS (3.6 MB instead of 5.6 MB). It installs under your user account, no administrator prompt.## The AI surface, redone- AiAssistantDialog: one primary CTA card with a gradient, four secondary chips to switch between Recomendar / Diagnosticar / Melhorar / Criar, an "advanced" disclosure for verbosity, and a sticky footer with the action you actually want on the right.- JS-side prompt template: even without the Rust capability_authoring backend, the dialog always produces a usable prompt. You never see "Command build_author_prompt not found" again.- Library error callout: when the library scan fails, the red banner now carries an "Explicar este erro com IA" button that hands the error straight to the assistant.- Top-bar menu: the AI menu demoted from a split-button to a discrete chip, so it stops fighting with "Jogar em VR" for visual attention.- Game suggestions banner: the "Não sabe por onde começar?" callout now has a clear primary ("Pedir sugestões à IA") and a muted secondary ("Auditar meu setup"). One glance, one choice.## Friendly errors (Microsoft HAI Guidelines G1 + G2)Three panels translate raw backend errors into a clear title, an actionable "why" line, and a collapsible raw detail:- Community — signature / network / catalog-missing / generic. With the rotated catalog key, the most common "Verification equation" error stops happening.- VR system — UAC denied / generic. Tells you to retry and click "Yes" on the Windows prompt.- Activity log — file locked (antivirus, editor, backup tool) / missing / disk full / generic. Suggests what to close or free up.All in Portuguese, English and Spanish.## Security- Community catalog signing key rotated. The old key (e247ca4981f22245) was superseded by a new one (d489a3a0be894b19). Older Moddin installs need to update to validate the new catalog.## Fixes- No more red "Command build_author_prompt not found" banner. Handled in JS with a local template.- STALKER 2 catalog now lists OptiScaler as proven and ReShade as risky (UEVR compatibility note). The compatibility chip in the module card now appears for any capability with an explicit compatibilityStatus, not just a hard-coded list.---## Install (Windows 10 / 11 x64)Download the installer below and run it. It puts Moddin in %LOCALAPPDATA%\Programs\Moddin Desktop and adds an uninstaller to Settings → Apps.- Installer: Moddin.Desktop_0.1.0_x64-setup.exe (attached below) — 3.6 MB (NSIS, installs per-user, no admin required)- SHA-256: DDDA8D13DA1742017595F72995736733BC5664DF00B2504901FDAE823147584C- WebView2 Runtime is required (pre-installed on Windows 11; Windows 10 installs it automatically if missing).### Or build from sourceIf you prefer to compile it yourself, you need Node.js 20+, Rust stable (MSVC) and the Visual Studio C++ build tools.powershellgit clone https://github.com/petonexus/moddin-desktop.gitcd moddin-desktopgit checkout v0.1.0-beta.3git submodule update --init --recursivenpm cinpm run tauri buildThe installer ends up in src-tauri\target\release\bundle\nsis\, the standalone exe in src-tauri\target\release\moddin-desktop.exe.---## What to test- [ ] Click ✨ Pedir ajuda à IA on any game; the dialog renders a prompt and never shows a red "command not found" banner- [ ] The same dialog works even after closing and reopening it (mode, verbosity and intent are preserved across sessions)- [ ] With the library scan failing, the red callout shows an "Explicar este erro com IA" button that opens the dialog- [ ] Force a community catalog error (e.g. block github.com) and confirm the callout now shows a friendly title + collapsible raw detail- [ ] Try to switch OpenXR runtime while UAC is denied; confirm the friendly UAC explanation- [ ] Try to read the activity log while another process holds it (open logs/moddin-actions.log in Notepad and refresh); confirm the friendly "file in use" message- [ ] The AI top-bar chip opens the same dialog as the game suggestions bannerFound a problem? Open an issue with your Windows version, the steps to reproduce and an excerpt from Activity in the sidebar.---## Known limitations- The Rust capability_authoring backend is not in this build yet, so the "Save" button inside the AI dialog will fail. Use the dialog to draft the prompt, then paste it into ChatGPT / Claude / another AI. The UI is ready for the backend; the backend lands in the next release.- The Collections feature is stubbed. Installing or browsing a collection returns "not yet available".- Some preview text that comes from the backend (the "what Moddin will do" list) and the recommended VR settings are still in English only.- GOG games are detected by the backend but do not appear in the library yet.- OFXR Bridge is experimental and may cause artifacts or crashes depending on game, GPU and VR runtime. Every change can be undone from History.- Anti-cheat is never bypassed.---Full changelog: v0.1.0-beta.2...v0.1.0-beta.3
v0.1.0-beta.2 — clearer interface, no more console flashes
v0.1.0-beta.2 — clearer interface, no more console flashes
Second public beta. The headline is a redesigned interface that explains itself in plain language, plus two fixes every Windows user will notice.
⚠️ Still a beta. It runs real installs, real registry writes and real process kills. Read the User Guide before applying anything new.
Fixes you will notice
- No more console windows popping up. While Moddin was open, a
cmdwindow kept flashing every few seconds. Moddin checks whether your game is running, and each check opened a visible console. All background helpers now run hidden, and the check pauses while Moddin is minimised. - The app opens again. An invalid entry in the STALKER 2 catalog file made the whole window start blank. Fixed.
A redesigned interface
- Everything in one sidebar. Library, History and a Tools group (VR system, Community, Activity). The floating buttons that covered the screen are gone.
- A game page you can read top to bottom. Game name, a progress bar ("1 of 6 mods active"), a notice when the game is running, your mods grouped by category, and technical info tucked away at the end.
- Simpler mod cards. Each card shows one status (Active, Not installed, Needs attention…) and one main button. If something fails, the card says what. Checklists, updates and advanced options live under "Details".
- Consistent dialogs. Every install or launch preview answers the same questions in the same order: what Moddin will do, what to watch out for, and a reminder that you can undo it.
- History instead of "Transactions". It uses game and mod names instead of internal ids, has an "Active only" filter, and gives you one-click undo.
- Plain language in Portuguese, English and Spanish. Written for players, not engineers.
- Keyboard friendly. Esc closes any dialog, and focus stays inside the open dialog.
Also new since beta.1
- Add mods with an AI assistant. The new
moddin-agentMCP server lets an AI assistant draft capability recipes. It can only write recipe files; installing, removing and undoing still happen in Moddin, with the usual preview. - Engine presets for every supported game (Unreal 5, REDengine, RE Engine, id Tech, Unity). Each game now gets a sensible default mod list.
- Groundwork, not yet in the interface: GOG game detection, a library scan cache, PCGamingWiki lookups, restore points (snapshots) and import/export of install profiles. The backend pieces are in; the screens for them come next.
Install (Windows 10 / 11 x64)
Download the installer below and run it. It puts Moddin in Program Files\Moddin Desktop and adds an uninstaller to Settings → Apps.
- Installer: Moddin.Desktop_0.1.0_x64-setup.exe — 3.6 MB (NSIS, installs per-user, no admin required)
- SHA-256:
375F89DCA065C8C5134EE82C52C856975661252C2FFB35682C2BB2DBB427ED75 - WebView2 Runtime is required (pre-installed on Windows 11; Windows 10 installs it automatically if missing).
Or build from source
If you prefer to compile it yourself, you need Node.js 20+, Rust stable (MSVC) and the Visual Studio C++ build tools.
git clone https://github.com/petonexus/moddin-desktop.git
cd moddin-desktop
git checkout v0.1.0-beta.2
npm ci
npm run tauri buildThe installer ends up in src-tauri\target\release\bundle\nsis\, the standalone exe in src-tauri\target\release\moddin-desktop.exe.
What to test
- No console window appears while Moddin is open or while a game is running
- Steam and Epic games show up; "With mods" lists the supported ones
- Opening a game shows the right status on each mod card
- Installing a mod shows the preview, applies, and appears in History
- Undo in History restores the original files
- With the game running, install/remove buttons are blocked and the notice explains why
- VR system panel lists your VR apps (SteamVR, Meta, Virtual Desktop…)
- Switching language in the sidebar updates the whole interface
Found a problem? Open an issue with your Windows version, the steps to reproduce and an excerpt from Activity in the sidebar.
Known limitations
- Some preview text that comes from the backend (the "what Moddin will do" list) and the recommended VR settings are still in English only.
- GOG games are detected by the backend but do not appear in the library yet.
- OFXR Bridge is experimental and may cause artifacts or crashes depending on game, GPU and VR runtime. Every change can be undone from History.
- Anti-cheat is never bypassed.
Full changelog: v0.1.0-beta.1...v0.1.0-beta.2
v0.1.0-beta.1 — first public beta
Moddin Desktop v0.1.0-beta.1
First public beta. Built for early adopters who want to install mods the safe way: with a preview, a backup transaction, and an Undo that works weeks later.
⚠️ This is a beta. It runs real installs, real registry writes, and real process kills. Read the User Guide before clicking Apply on anything new.
What's in the box
Games supported out of the box
| Game | Engine | Available mods |
|---|---|---|
| Elden Ring | UE | OBS VR Capture, OFXR Bridge FrameGen, UEVR, OptiScaler, Cheeky DLSS, OpenXR helpers, VR launch profile |
| Cyberpunk 2077 | REDengine | OBS VR Capture, OptiScaler, Cheeky DLSS, OpenXR helpers, VR launch profile |
| Dawnwalker | UE5 | OBS VR, UEVR, OFXR Bridge, OptiScaler, Cheeky DLSS, ReShade, OpenXR helpers |
| STALKER 2 | UE5 | OBS VR, UEVR, OFXR Bridge, OptiScaler, Cheeky DLSS, OpenXR helpers |
| Dead Island 2 | RE Engine | OBS VR, UEVR, OpenXR helpers, OptiScaler |
| DOOM 2016 | id Tech | Desktop shortcut |
What you can do
- Detect your installed Steam + Epic games and pick the ones Moddin knows.
- See, for each game, the available mod recipes with prerequisites shown as a checklist (game present, archive reachable, hash matches, etc).
- Click Apply to see the full preview of every file and registry key the mod will touch.
- Every install is recorded as a transaction — Moddin can undo it later, even weeks later, by restoring the original files.
- Browse the community catalog of capabilities verified by Ed25519 signature (toggle from the ⇆ Community button in the top dock).
What the UI looks like
[Library] Elden Ring ✅ Catalog match
Cyberpunk 2077 ✅ Catalog match
Dawnwalker ✅ Catalog match
DOOM 2016 ✅ Catalog match
… (scan more)
[Detail view of Elden Ring]
OBS VR Capture [Ready] [Apply]
OFXR Bridge [Installed] [Reinstall] [Remove]
UEVR [Available] [Apply]
OptiScaler [Available] [Apply]
Cheeky Foveated DLSS [Available] [Apply]
ReShade [Available] [Apply]
VR launch profile [Ready] [Launch]
Install
⚠️ No prebuilt MSI in this release. The Tauri MSI pipeline is being wired
to GitHub Actions; in the meantime, build the desktop app from source.
Steps below assume you haveNode.js 20+,Rust stable MSVC, and
cargo-tauri(cargo install tauri-cli --version "^2.0") on the PATH.
-
Clone the repo and check out
v0.1.0-beta.1:git clone https://github.com/petonexus/moddin-desktop.git cd moddin-desktop git checkout v0.1.0-beta.1
-
Install frontend deps and produce the renderer bundle:
npm ci npm run build
-
Build the desktop installer (per-user MSI, no admin required):
cargo tauri build --bundles msiThe signed-per-user MSI lands at
src-tauri\target\release\bundle\msi\Moddin Desktop_0.1.0-beta.1_x64_en-US.msi. -
Run the MSI. Moddin installs under
%LOCALAPPDATA%and auto-scans your
Steam + Epic libraries on first launch.
Requirements
- Windows 10 / 11 x64
- ~200 MB free disk space for the app + caches
- WebView2 Runtime (pre-installed on Windows 11; auto-installed on Windows 10 by the MSI when produced)
- Visual C++ Redistributable x64 (pre-installed on Windows 11; auto-installed by OFXR Bridge if you install it)
What to test
Moddin works well on these scenarios — try them and tell us what breaks:
- Steam library scans all your games on first launch
- Epic library scans all your games on first launch
- Re-scan button picks up newly installed games
- Elden Ring → OFXR Bridge install completes, tray appears
- Elden Ring → OFXR Bridge Remove restores the original state
- Cyberpunk 2077 → VR launch profile preflight passes
- Any UE5 game → UEVR install downloads the right backend
- Community panel refresh fetches the signed catalog
- Community panel install signs + installs a community capability
- Activity log records every action with timestamps
If anything breaks, file an issue with:
- Moddin version (
%LOCALAPPDATA%\Moddin\config\version.json) - Windows version
- Steps to reproduce
- Activity log excerpt (
≡button → filter by error)
Known limitations
- OFXR Bridge is experimental. It may produce artifacts, freezes, or crashes depending on the game, VR mod, GPU and runtime. The activity log records every action for quick rollback.
- Anti-cheat is never bypassed. Moddin requires you to use your own offline / EAC-disabled launch path for games that need it.
- The community catalog is small (1 starter capability). More on the way.
- The build-catalog workflow on the community repo has a temporary interop bug that Marco is debugging — until then, sign capabilities locally with the Rust example (
cargo run --example sign_catalog_local).
What's coming
See ROADMAP.md. Next milestones:
- v0.2: more games in the catalog (Elden Ring Nightreign, GTA VI, Crimson Desert)
- v0.3: ReShade / UE4SS / BepInEx / REFramework as data-driven capabilities
- v0.4: Mac / Linux support (out of scope until v1.0)
Thanks
Special thanks to everyone who tries a beta build and reports what breaks. You're how this gets better.
🟢 — Marco & the Moddin maintainer team