SharpPluginLoader.Core
0.0.7
dotnet add package SharpPluginLoader.Core --version 0.0.7
NuGet\Install-Package SharpPluginLoader.Core -Version 0.0.7
<PackageReference Include="SharpPluginLoader.Core" Version="0.0.7" />
paket add SharpPluginLoader.Core --version 0.0.7
#r "nuget: SharpPluginLoader.Core, 0.0.7"
// Install SharpPluginLoader.Core as a Cake Addin #addin nuget:?package=SharpPluginLoader.Core&version=0.0.7 // Install SharpPluginLoader.Core as a Cake Tool #tool nuget:?package=SharpPluginLoader.Core&version=0.0.7
<div align="center"> <h1>SharpPluginLoader</h1> <img src="docs/images/SPL-256x256.png"/> <br></br> <img src="https://img.shields.io/github/actions/workflow/status/Fexty12573/SharpPluginLoader/msbuild.yml"> <img src="https://img.shields.io/github/actions/workflow/status/Fexty12573/SharpPluginLoader/docfx.yml?label=docs"> <img src="https://img.shields.io/nuget/v/SharpPluginLoader.Core?logo=nuget&label=SharpPluginLoader.Core"> <img src="https://img.shields.io/nuget/v/SharpPluginLoader.ImGui?logo=nuget&label=SharpPluginLoader.ImGui"> <img src="https://img.shields.io/nuget/v/SharpPluginLoader.InternalCallGenerator?logo=nuget&label=SharpPluginLoader.InternalCallGenerator"> <br></br> </div>
A C# plugin loader for Monster Hunter World based on .NET 8.0.
For more detailed documentation and tutorials, visit the wiki.
How to use
- 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.
Plugin Development
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.
Framework Development (with Visual Studio 2022)
- 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
Enabling C# Debugging
- 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.
Hosting Docs Locally
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
mkdocs serve
Contributing
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.
Libraries Used
- 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
Credits
- Thanks to Lyra for creating the logo
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Reloaded.Hooks (>= 4.3.0)
- SharpPluginLoader.ImGui (>= 1.90.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.