

中文 | English
This is a Unity MOD for the game White Knuckle , implementing basic networked player mapping (currently only maps grabbable player capsules).
Important Disclaimer :
Known Issues:
Potential Future Goals:
graph RL
%% Module 1: Player Display
subgraph Player Display
1a[Hand Sprites]
1b[Player Body Imported Models]
1c[Animated Body Models]
1d[Display Other Players' Held Items]
1e[Custom Hand Sprites]
end
%% Module 2: Player Interaction
subgraph Player Interaction
2a[Mutual Damage]
2b[Item Grabbing/Stealing]
2c[Add New Items]
2d[Player Teleportation]
2e[Respawn After Death]
end
%% Module 3: Data Synchronization
subgraph Data Synchronization
3a["Sync Man-made Structures (Rock Bolts, Rebars)"]
3b[Sync Inventory]
3c[Sync Pickup Items]
3d[Sync Mass Data]
3e[Sync Entity Data]
end
%% Module 4: Network Architecture
subgraph Network Architecture
4b["Support Hybrid Networking (Legacy LiteNetLib + Steam)"]
end
%% Dependency Connections (cross-module and within modules)
1a --> 1e
1b --> 1c
3b --> 1d
1a --> 1d
1d --> 2b
Download the required .dll files from the Releases page and place them into the BepInEx/plugins directory within your game folder.
bash
# 1. Clone this repository locally
git clone https://github.com/Shen-X-L/WKMultiMod.git
# 2. Build the MOD
# Method A: Open and build WhiteKnuckleMod.sln in Visual Studio
# Method B: Use the command line
dotnet build -c Release
WhiteKnuckleMod.dll file into your game directory's BepInEx\plugins\ folder.LiteNetLib.dll file to the same BepInEx\plugins\ folder.text
WhiteKnuckleMod/
├── src/
│ ├─ Component/
│ │ └─ Component.cs # Component class, handles network data
│ ├─ Core/
│ │ ├─ LocalPlayerManager.cs # Local player info packaging class
│ │ ├─ MPCore.cs # Core class, handles main events
│ │ ├─ MPMain.cs # Startup class, initializes patches
│ │ └─ RemotePlayerManager.cs # Remote player object management
│ ├─ Data/
│ │ ├─ DataEnum.cs # Enum definitions
│ │ └─ PlayerData.cs # Player network data + serialization utils
│ ├─ NetWork/
│ │ ├─ MPLiteNet.cs # (Currently deprecated)
│ │ ├─ MPSteamworks.cs # Separated Steam networking logic
│ │ └─ NetworkEvents.cs # Network event bus
│ ├─ Patch/
│ │ └─ Patch.cs # Patches for interception/injection
│ └─ Util/
│ ├─ TickTimer.cs # Debug output frequency counter
│ └─ TypeConverter.cs # String-to-bool utility
├── lib/ # External dependencies (add manually)
│ └── README.md # Dependency acquisition guide
├── WhiteKnuckleMod.sln
├── WhiteKnuckleMod.csproj
└── README.md
dotnet restore in the project root directory.lib/README.md to acquire the necessary game DLL files and place them in the lib/ directory.Compiling this project requires referencing some DLL files from the game itself ( these files are copyrighted and must NOT be committed to this repository ), primarily including:
Assembly-CSharp.dllUnityEngine.dllUnityEngine.CoreModule.dlllib/README.md for details).The project file (WhiteKnuckleMod.csproj) is configured with key references and build targets, ensuring TargetFramework is set to netstandard2.1 and allowing unsafe code.
After enabling cheat mode (cheats) in-game, use the following commands:
host <lobby_name> [max_players] - Create a lobby.
host abcdegetlobbyid - Get the lobby room code.join <room_code> - Join a lobby using the room code.
join 109775241951624817After enabling cheat mode (cheats) in-game, use the following commands:
host <port> [max_players] - Host a server.
host 22222join <ip_address> <port> - Join an existing host server.
join 127.0.0.1 22222 or join [::1] 22222leave - Leave the current host server.There are no configurable options at this time.
Welcome to submit Issues for bug reports or suggestions! Pull Requests are also welcome.
Reminder : The code quality in this project is inconsistent, and some is AI-generated. Please keep this in mind when contributing.
git checkout -b feature/YourAmazingFeature).git commit -m 'Add some AmazingFeature').git push origin feature/YourAmazingFeature).