A compact dinput8.dll proxy loader for Nioh 3 that automatically loads DLL mods from the plugins folder and generates detailed crash reports to make debugging easier.
What This Mod Does
-
It proxies the original system
dinput8.dll, so the game’s normal behavior remains intact. -
It scans
<game root>/pluginsand loads any plugin DLLs found there. -
It calls each plugin’s
nioh3_plugin_initializeentry point. -
It installs an unhandled exception logger and writes crash diagnostics for troubleshooting.
Installation For Players
-
Place this mod’s
dinput8.dllin the Nioh 3 game root, in the same folder as the game.exe. -
Create a
pluginsfolder in the game root if one does not already exist. -
Put your DLL mods inside the
pluginsfolder. -
Start the game.
Log File
-
Log file name:
NIOH3PluginLoader.log -
File location: your Windows
Documentsfolder
Troubleshooting
If a plugin does not load:
-
Confirm the DLL is located in
<game root>/plugins. -
Make sure it exports exactly
nioh3_plugin_initialize. -
Check
NIOH3PluginLoader.logfor load or initialization errors.
For Mod Authors
The loader runs each plugin on the main thread after the game finishes DRM decompression and is about to enter WinMain. At that stage, you can do signature scanning, patching, and similar work directly in DllMain.
You may export this function, although it is not required:
constexpr uint32_t NIOH3_PLUGIN_API_VERSION = 1;
struct Nioh3PluginInitializeParam {
uint32_t loader_api_version;
uint16_t game_version_major;
uint16_t game_version_minor;
uint16_t game_version_patch;
uint16_t game_version_build;
const char* game_version_string;
const char* game_root_dir;
const char* plugins_dir;
};
extern "C" __declspec(dllexport)
bool nioh3_plugin_initialize(const Nioh3PluginInitializeParam* initialize_param);
Uninstall
-
Delete
dinput8.dllfrom the game root. -
Optionally remove the
pluginsfolder and any plugin DLLs.
Source Code
GitHub: https://github.com/kassent/NIOH3-Plugin-Loader
by