mirror of
https://github.com/ApfelTeeSaft/Whack.git
synced 2026-08-26 19:43:25 +00:00
Update README.md
This commit is contained in:
@@ -1,2 +1,79 @@
|
||||
# Whack
|
||||
MegaBonk Godmode Mod
|
||||
# Whack (Megabonk IL2CPP Godmode)
|
||||
|
||||
BepInEx plugin for **Megabonk** (Unity 2023, **IL2CPP**) that enables **player godmode** by intercepting the `PlayerHealth` damage pipeline.
|
||||
|
||||
> **Status:** Only **HARD** godmode (skip damage) is implemented and confirmed working. A “soft” mode (zeroing damage but keeping effects) is **not** tested in this repo.
|
||||
|
||||
---
|
||||
|
||||
## BepInEx & Tooling
|
||||
|
||||
- **BepInEx:** **6.0.0-be.735 (IL2CPP)** recommended (matches dev logs). Other recent bleeding-edge BepInEx 6 IL2CPP builds will likely work.
|
||||
- **Unity Runtime:** 2023.2.x (game specific)
|
||||
- **.NET SDK:** .NET 6
|
||||
- **IDE:** Visual Studio 2022
|
||||
|
||||
---
|
||||
|
||||
## Manual references (add these in VS)
|
||||
|
||||
Because the `.csproj` uses **absolute** `HintPath`s, you must manually add references on your machine:
|
||||
|
||||
- **0Harmony** — `...\Megabonk\BepInEx\core\0Harmony.dll`
|
||||
- **BepInEx.Core** — `...\Megabonk\BepInEx\core\BepInEx.Core.dll`
|
||||
- **BepInEx.Preloader.Core** — `...\Megabonk\BepInEx\core\BepInEx.Preloader.Core.dll`
|
||||
- **BepInEx.Unity.Common** — `...\Megabonk\BepInEx\core\BepInEx.Unity.Common.dll`
|
||||
- **BepInEx.Unity.IL2CPP** — `...\Megabonk\BepInEx\core\BepInEx.Unity.IL2CPP.dll`
|
||||
- **Assembly-CSharp (DummyDll)** — `...\Il2CppDumper\DummyDll\Assembly-CSharp.dll` (from your Il2CppDumper output)
|
||||
|
||||
> In **Properties** for each reference, set **Copy Local = False**. The DummyDll is **compile-time only** (do not ship it).
|
||||
|
||||
If your BepInEx install uses a different folder structure, point the references to your actual files.
|
||||
|
||||
---
|
||||
|
||||
## Build (Visual Studio 2022)
|
||||
|
||||
1. Install **BepInEx 6 IL2CPP** into the game folder and run the game once.
|
||||
2. In VS, open **`Whack.sln`**.
|
||||
3. Add the **manual references** listed above (right‑click project → Add → Reference → Browse).
|
||||
4. Ensure **Target Framework** is **.NET 6.0** (`net6.0`).
|
||||
5. Select **Release | Any CPU** (or Debug).
|
||||
6. Build → **Build Solution**.
|
||||
7. Output DLL: `Whack\bin\Release\net6.0\Whack.dll`
|
||||
|
||||
---
|
||||
|
||||
## Install
|
||||
|
||||
1. Copy `Whack.dll` to the game’s **`BepInEx\plugins\`** folder:
|
||||
```
|
||||
...\Megabonk\BepInEx\plugins\Whack.dll
|
||||
```
|
||||
2. Launch the game.
|
||||
3. Verify in `BepInEx\LogOutput.log` that the plugin loads (look for “Whack loaded” and Harmony patches).
|
||||
|
||||
---
|
||||
|
||||
## How it works (HARD mode)
|
||||
|
||||
The plugin patches `PlayerHealth.Damage(DamageContainer dc, bool ignoreShield)` to **skip** the original method, preventing any HP loss. It also guards common external damage entry points where applicable.
|
||||
|
||||
- Pros: Simple and robust godmode.
|
||||
- Cons: Any effects performed **inside** the original `Damage()` (e.g., specific shakes/counters) won’t run.
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **“0 plugins to load”** → Ensure your main class has `[BepInPlugin("com.apfelteesaft.megabonk.whack", "Whack", "1.0.0")]` and the DLL is in `BepInEx\plugins\`.
|
||||
- **Missing types at compile time** → Add **Assembly-CSharp (DummyDll)** from Il2CppDumper.
|
||||
- **Missing types at runtime** → Do **not** ship DummyDlls. Only the plugin DLL goes in `plugins\`.
|
||||
- **Wrong BepInEx** → Use the **IL2CPP** build of BepInEx 6.
|
||||
- **Blocked DLL** → Right‑click the DLL → Properties → **Unblock**.
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
None (no license specified). Use privately at your own discretion.
|
||||
|
||||
Reference in New Issue
Block a user