MurderModLoader.API 0.1.11

dotnet add package MurderModLoader.API --version 0.1.11
                    
NuGet\Install-Package MurderModLoader.API -Version 0.1.11
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MurderModLoader.API" Version="0.1.11" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MurderModLoader.API" Version="0.1.11" />
                    
Directory.Packages.props
<PackageReference Include="MurderModLoader.API" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MurderModLoader.API --version 0.1.11
                    
#r "nuget: MurderModLoader.API, 0.1.11"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MurderModLoader.API@0.1.11
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MurderModLoader.API&version=0.1.11
                    
Install as a Cake Addin
#tool nuget:?package=MurderModLoader.API&version=0.1.11
                    
Install as a Cake Tool

murder-mod-loader

Mod loader for Murder Engine games. Uses Harmony for runtime method patching.

Requirements

  • murder-unpack (uv tool install murder-unpack)
  • .NET 8 SDK matching the game's architecture (x64 game needs x64 SDK)

Installation

Install the tools

# Install murder-unpack (bundle extraction)
uv tool install murder-unpack

# Install the mod loader installer
dotnet tool install -g murder-mod-install

Install into a game

# Auto-detects SDK, extracts bundle, sets up mod loader
murder-mod-install "/path/to/game"

# macOS .app bundles are also supported
murder-mod-install "/path/to/Game.app"

# Specify .NET SDK path manually if needed
murder-mod-install "/path/to/game" "/path/to/dotnet-sdk-8.0"

Launch

/path/to/game/launch-modded.sh    # Linux / macOS
/path/to/game/launch-modded.bat   # Windows

Steam Proton / Wine (Linux playing Windows-only games)

Some Murder Engine games only ship a Windows build. The mod loader supports these via Proton by using a Windows .NET 8 runtime to run the extracted bundle inside Wine.

  1. Download the Windows x64 .NET 8 runtime (zip) from Microsoft and extract it.

  2. Install the mod loader (auto-detects Proton when it finds a .exe game):

    murder-mod-install "/path/to/game" "/path/to/dotnet-runtime-win-x64"
    
  3. Set Steam launch options (right-click game > Properties > Launch Options):

    ./launch-modded.sh %command%
    

Installing Mods

# From NuGet
murder-mod-install add nuget:MyMod "/path/to/game"
murder-mod-install add nuget:MyMod@1.0.0 "/path/to/game"

# From a git repository
murder-mod-install add git:https://github.com/user/my-mod "/path/to/game"

# From a zip URL (e.g., GitHub release)
murder-mod-install add https://github.com/user/my-mod/releases/download/v1.0/my-mod-windows.zip "/path/to/game"

# From a local zip file
murder-mod-install add ./my-mod.zip "/path/to/game"

Git sources are built automatically if the repository contains a .csproj.

Disabling a mod

Place a .disabled file in the mod's directory, or set Enabled: false in mod.yaml.

Creating a Mod

Create a directory with mod.yaml and a C# project:

# mod.yaml
Id: my-mod
Name: My Mod
Version: 1.0.0
DLL: MyMod.dll
using HarmonyLib;
using MurderModLoader.API;

public class MyMod : IMurderMod
{
    private Harmony? _harmony;
    public void OnLoad(ModContext context)
    {
        _harmony = new Harmony(context.HarmonyId);
        _harmony.PatchAll(context.ModAssembly);
    }
    public void OnUnload() => _harmony?.UnpatchAll(_harmony.Id);
}

Reference the mod API in your .csproj:

<PackageReference Include="MurderModLoader.API" Version="0.1.*" />

For game type references (Murder, Bang, FNA), set GameAssemblyPath in your .csproj to the game's .modded/ directory, or let the build command handle it.

Build and install from source

murder-mod-install build <mod-dir> <game-dir>

Publishing a mod

Mods can be distributed as:

  • NuGet package -- include mod.yaml and DLLs in a NuGet package
  • Git repository -- include mod.yaml and either source (.csproj) or pre-built DLLs
  • Zip file -- zip the mod folder containing mod.yaml and DLLs

Building from Source

git clone https://github.com/yuna0x0/murder-mod-loader.git
cd murder-mod-loader
dotnet build

# Run the installer directly from source
dotnet run --project src/MurderModLoader.Installer -- <game-dir>
dotnet run --project src/MurderModLoader.Installer -- build <mod-dir> <game-dir>
dotnet run --project src/MurderModLoader.Installer -- add <source> <game-dir>

Limitations

  • SingleFileBundle only -- NativeAOT games can't be patched at runtime
  • Architecture match -- the .NET SDK must match the game (x64 game needs x64 SDK)

AI Disclosure

AI was used to assist in the creation of some of this tool's base code.

License

MIT

Product 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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.11 92 4/15/2026
0.1.10 90 4/14/2026
0.1.9 94 4/14/2026
0.1.8 95 4/14/2026
0.1.7 91 4/14/2026
0.1.6 97 4/14/2026
0.1.5 88 4/14/2026
0.1.4 93 4/14/2026
0.1.3 91 4/14/2026
0.1.2 97 4/14/2026