Library / SDK
praydog/REFramework avatar
praydog/REFramework

REFramework: a mod loader and Lua scripting platform for RE Engine games

Mod loader, scripting platform, and VR support for all RE Engine games.

5,530 stars638 forksC++MIT

At a glance

What is it?
REFramework injects a DLL into RE Engine titles to add a Lua scripting API, VR support and built-in fixes. It is aimed at mod authors and players who want mods without editing game files.
Who is it for?
Adopt REFramework if you mod RE Engine titles and want a Lua API plus built-in fixes, or if you want generic 6DOF VR in a supported game. Skip it if your game is not on the supported list, if you refuse to drop a DLL next to the executable, or if you need a vendor-supported tool.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 14 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What REFramework adds to an RE Engine game

RE Engine games do not ship with a public modding interface. REFramework fills that gap by loading into the game process and exposing the engine's internals to scripts. The README describes it as a "mod framework, scripting platform, and modding tool for RE Engine games", and the included feature list is broad: a Lua scripting API and plugin system, generic 6DOF VR support, motion controls for RE2, RE3, RE7 and RE8, a free camera, an FOV slider, a scene timescale control, a vignette disabler, ultrawide and aspect ratio fixes, and a GUI hider. It also bundles fixes rather than leaving them to separate mods, including the RE8 startup crash, RE8 stutters when killing enemies or taking damage, and crashes in Monster Hunter Rise and RE8 caused by third party DLLs.

The audience is two groups. The first is players who want those fixes and conveniences without assembling a mod list. The second is mod authors, who get the Lua API, the plugin system and developer mode tools such as Game Objects Display and Object Explorer. The supported game list spans Resident Evil 2, 3, 4, 7, Village and Requiem, Devil May Cry 5, Street Fighter 6, Monster Hunter Rise, Monster Hunter Wilds, Monster Hunter Stories 3, Dragon's Dogma 2, and several titles that reuse another build, such as Ghosts 'n Goblins Resurrection on the RE8 build and Apollo Justice: Ace Attorney Trilogy on the DD2 build.

How the DLL gets into the game process

The mechanism is DLL proxying. The release archive contains a dinput8.dll, and the game loads it because Windows resolves that name from the game directory before the system copy. The README's non-VR instructions are explicit that you extract only the dinput8.dll into the game folder. Once inside the process, the framework hooks the engine and exposes its objects to the scripting layer, which is why the Lua API can reach game state that a purely external tool cannot.

That design explains the shape of the rest of the project. Because the framework lives inside the game, it can present its own in-game GUI, run Lua scripts and plugins, and switch the render path for VR. It also explains the DirectX note: the README states support for both DirectX 11 and DirectX 12, which matters because the supported games do not all use the same API. The repository layout reflects the same split between framework and mods: src/ and include/ hold the framework, shared/ holds common code, scripts/ and examples/ hold script and plugin examples, and reversing/ holds the reverse engineering work that the hooks depend on. Two example plugins ship in the tree, examples/example_plugin/ and examples/weapon_stay_big_plugin/, which gives a new plugin author something to read rather than a blank directory.

Installing REFramework and loading a first script

Get the last stable build from the Releases page. The README points at the Nightly Developer Builds repository if you want newer builds. For a non-VR setup, extract only the dinput8.dll from the zip into the game folder. The README's example path is a Steam library location, G:\SteamLibrary\steamapps\common\RESIDENT EVIL 2 BIOHAZARD RE2, which is the level of the directory tree the DLL belongs in, next to the game executable.

bash
# Non-VR: copy only this file into the game folder
dinput8.dll

For VR the instructions differ: install SteamVR unless you are using OpenXR on a supported headset, then extract the whole zip into the game folder rather than the single DLL. The README links a VR Troubleshooting/FAQ wiki page for problems after that.

On Proton or Linux, extraction is the same but the loader needs to be told to prefer the local DLL. The README gives this launch option for the game's Steam properties:

bash
WINEDLLOVERRIDES="dinput8.dll=n,b" %command%

After launching, the framework's own GUI is the first thing to check, since it is where the included tools and script loading live. The developer mode tools, Game Objects Display and Object Explorer, are the practical starting point for anyone writing Lua: they show the live object graph you are scripting against. The scripting API itself is documented on the project's wiki, not in the README, so plan on reading refdocs.praydog.com alongside the game.

VR is the part most likely to go wrong

The VR path carries the heaviest requirements. SteamVR is a dependency unless you are on OpenXR with a supported headset, the whole archive has to be extracted rather than one file, and the README sends you to a separate troubleshooting wiki instead of documenting failure modes inline. Motion controls are listed for RE2, RE3, RE7 and RE8 only, while the generic 6DOF support is described as applying to all games. That distinction matters if you bought a headset expecting tracked hands in a title outside those four.

The framework is also the wrong tool outside its game list. It hooks a specific engine generation, and the supported list is finite; a game that is not on it is not a configuration problem you can fix. If your goal is to change textures or models in an unrelated engine, a file-replacement mod loader is a better fit than an injected framework. And if you play on a platform where you cannot place a DLL next to the executable or set a Steam launch option, the installation model has no fallback.

REFramework compared with a plain file-replacement mod loader

The obvious alternative for many of these games is a loose file loader, the approach where mods ship as replacement assets and a loader swaps them in at runtime. The difference in approach is where the code runs. A loose file loader intercepts file reads; REFramework loads into the process and exposes the engine's live objects. That is why REFramework can offer an FOV slider, a scene timescale, a free camera and a Lua API, and why a file loader cannot: those are runtime state changes, not asset substitutions.

The trade-off runs the other way too. A file loader does not need to understand the engine's internals, so it tends to survive game patches better and to work across engines. REFramework's hooks are tied to RE Engine internals, which is exactly why its supported game list is enumerated and why some titles are handled by borrowing another game's build. If what you want is a retexture, the injected framework is more machinery than the job needs.

Maintenance status, licence and upgrade cost

The repository is not archived, and the last push was on 2025-03-05, which is the same date as the v1.5.9.1 release. The preceding releases were v1.5.9 on 2025-03-04 and v1.5.8 on 2024-10-25, so the release cadence over that window is not uniform. The README also maintains a separate nightly repository for developer builds, which means there are two update channels to track: stable for players, nightly for people who want fixes before they are tagged.

Upgrading means replacing the dinput8.dll in the game folder, and for VR replacing the extracted archive contents. There is no documented rollback procedure in the README, so keeping a copy of the previous DLL is the practical approach if a new build misbehaves. The licence is MIT, which permits reuse and redistribution with the licence and copyright notice preserved; the README also credits Kanan as the inspiration and a source of code, and names SkacikPL, cursey, The Hitchhiker and alphaZomega for contributions. If you redistribute a build, those notices travel with it. This is a description of the licence text, not legal advice.

Editorial conclusion

Adopt REFramework if you mod RE Engine titles and want a Lua API plus built-in fixes, or if you want generic 6DOF VR in a supported game. Skip it if your game is not on the supported list, if you refuse to drop a DLL next to the executable, or if you need a vendor-supported tool. Before installing, check that your game appears in the supported list, confirm whether you need the stable build or the nightly developer builds, and on Linux or Steam Deck add the WINEDLLOVERRIDES launch option.

Frequently asked questions

What is REFramework?

It is a mod framework, scripting platform and modding tool for RE Engine games, according to the README, and it is inspired by and uses code from Kanan. It bundles a Lua scripting API and plugin system, VR support, and a set of fixes and convenience features.

Is REFramework free to use?

The repository is licensed under MIT, which permits use and redistribution provided the licence and copyright notice are preserved. The README does not mention any paid tier or licence key.

Is REFramework still being updated?

The repository is not archived and the last push was on 2025-03-05, the same date as the v1.5.9.1 release. Newer work goes to the separate nightly developer builds repository that the README links.

How to install REFramework?

Download the last stable build from the Releases page, then extract only the dinput8.dll from the zip into your game folder. For VR, install SteamVR unless you use OpenXR on a supported headset, and extract the whole zip instead.

How to install REFramework for Monster Hunter Wilds?

The README's installation steps are the same for every supported game: extract dinput8.dll into the game folder, or the whole zip for VR. Monster Hunter Wilds appears in the supported games list, and the README separately notes that Onimusha 2: Samurai's Destiny uses the MHWILDS build.

Is REFramework safe to use?

The README documents the installation and the fixes it applies but makes no security claims, so nothing in the repository can confirm this either way. What it does state is that the framework loads as dinput8.dll inside the game process, which is the same mechanism other mod loaders use.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/praydog-reframework.svg)](https://hysenlabs.com/projects/praydog-reframework)