A C# plugin loader for Monster Hunter World based on .NET 8.0.
For more detailed documentation and tutorials, visit the wiki.
- Install .NET 8.0 (Get the .NET Desktop Runtime 8.0.x)
- Download the latest release from the releases page and extract it into your Monster Hunter World directory.
For more detailed instructions visit the wiki.
- Install the Visual Studio 2022 17.8 Preview 2 or later.
- Create a new .NET 8.0 class library project and add a reference to the
SharpPluginLoader.Core
NuGet package. - Create a class that implements the
SharpPluginLoader.Core.IPlugin
interface. - Put the compiled assembly into
nativePC/plugins/CSharp
. Assemblies are also allowed to be in subdirectories.
- Clone the repository with submodules:
git clone --recursive git@github.com:Fexty12573/SharpPluginLoader.git
- Setup vcpkg IDE integration if you haven't already done so:
- Open
Developer PowerShell for Visual Studio
- Run
vcpkg integrate install
- Open
- Generate cimgui VS project:
- Open
Developer PowerShell for Visual Studio
cd SharpPluginLoader\dependencies\cimgui\
cmake -B . -G 'Visual Studio 17 2022'
- Open
- Open
mhw-cs-plugin-loader.sln
- Build solution
Build -> Build Solution
- Make sure all projects are compiled in Debug mode.
- Open the
mhw-cs-plugin-loader
project properties, make sure the Debug configuration is selected and go to General > Debugging. Here set the Debugger Type to Mixed (.NET Core). - In the Attach to Process dialog, make sure Managed (.NET Core, .NET 5+) and Native are selected.
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
mkdocs serve
If you would like to contribute, feel free to fork the repository and make a PR. If you would like to join the core development team you can contact me on Discord @fexty.
- safetyhook - Native hooking library
- Reloaded.Hooks - Managed hooking library
- cimgui - C wrapper for Dear ImGui
- Dear ImGui - GUI library
- ImGui.NET - C# wrapper for Dear ImGui
- tinyobjloader - Wavefront OBJ loader
- nlohmann-json - C++ JSON library
- zlib - Compression library
- DirectXMath - DirectX Math library
- PicoSHA2 - header-only SHA256 library
- DirectXTK[12] - DirectX Toolkit, used for loading and managing textures
- Lyra: Creating the logo
- ImDevinC: Lots of testing and feedback to get Linux support working
- jn64: Writing the complete Linux installation instructions
- Ando: Writing the preloader and generally improving the native side