StixsworldHD Songs of Conquest mods

Install BepInEx 5 (x64)

BepInEx is the foundation both mods stand on. It takes about five minutes: one download, one extract, one game launch. When you're done, your game folder will look exactly like the screenshots below.

What BepInEx actually is

BepInEx is the standard open-source plugin loader for Unity games. It works through a trick called doorstop: a tiny winhttp.dll file placed next to the game's EXE. Windows loads that DLL automatically when the game starts, and it quietly boots the BepInEx framework, which then loads any plugin DLLs it finds in BepInEx\plugins. Nothing in the game's own files is ever modified — which is why removing one file returns the game to 100% vanilla.

Songs of Conquest is a 64-bit Unity Mono game on Windows, which is exactly what BepInEx 5 (win_x64) targets. Both mods on this site are built against it.

Get the right build

You need BepInEx 5.x, win_x64. Three easy mistakes to avoid:

  • Not x86 — the 32-bit build will not hook a 64-bit game. Nothing loads, no error shown.
  • Not BepInEx 6 / “Bleeding Edge” — a different plugin API; these mods are BepInEx 5 plugins.
  • Not the unix / macOS builds — this guide covers Windows.
  1. Find your game folder the folder that contains SongsOfConquest.exe

    Steam: Library → right-click Songs of ConquestManageBrowse local files. Steam opens the folder directly — this works no matter which drive your library lives on.

    Typical locations:

    — Steam, default library —
    C:\Program Files (x86)\Steam\steamapps\common\SongsOfConquest\
    
    — Steam, custom library on another drive (as used throughout this guide) —
    F:\SteamLibrary\steamapps\common\SongsOfConquest\
    
    — GOG, default —
    C:\GOG Games\Songs of Conquest\

    Confirm you're in the right place: you should see SongsOfConquest.exe, UnityPlayer.dll and a SongsOfConquest_Data folder. Keep this window open — every remaining step happens here. Close the game before continuing.

  2. Download BepInEx 5 (x64) one zip from the official GitHub releases

    Open the official releases page: github.com/BepInEx/BepInEx/releases. Under the newest 5.4.x release (5.4.23.3 at the time of writing — any newer 5.4.x is fine), download:

    BepInEx_win_x64_5.4.23.3.zip   ← “win_x64” and a 5.4.x version number are the parts that matter
    If the download is blocked

    Browsers sometimes flag loader DLLs. BepInEx is open source and the official GitHub release is the trusted source — choose Keep. If Windows later marks the extracted files as “blocked”, step 3 has the fix.

  3. Extract into the game folder contents go next to the EXE, not into a subfolder

    Open the zip and drag everything inside it straight into the game folder from step 1 (or right-click the zip → Extract All… and point the target at the game folder). The zip's contents must land at the same level as SongsOfConquest.exe:

    SongsOfConquest\
    ├── BepInEx\                      ← new
    ├── MonoBleedingEdge\
    ├── SongsOfConquest_Data\
    ├── .doorstop_version              ← new
    ├── changelog.txt                  ← new
    ├── doorstop_config.ini            ← new
    ├── SongsOfConquest.exe
    ├── UnityPlayer.dll
    └── winhttp.dll                    ← new — this is the doorstop
    The #1 install mistake

    If you end up with SongsOfConquest\BepInEx_win_x64_5.4.23.3\BepInEx\… you extracted the zip as a folder instead of merging its contents. The game will start completely vanilla with no error. Move the inner files up so winhttp.dll sits directly beside SongsOfConquest.exe.

    If Windows extracted the files with a “blocked” flag (rare, but it silently prevents loading): right-click winhttp.dllProperties → tick Unblock → OK.

    Songs of Conquest game folder after installing BepInEx: BepInEx folder, winhttp.dll and doorstop_config.ini next to SongsOfConquest.exe
    Checkpoint — your game folder after step 3. BepInEx\, winhttp.dll, doorstop_config.ini, .doorstop_version and changelog.txt sit beside SongsOfConquest.exe. (Shown here on a custom Steam library at F:\SteamLibrary.)
  4. Launch once to initialize BepInEx builds its folder structure on first run

    Start the game normally (Steam / GOG Galaxy / the EXE — all fine). Let it reach the main menu, then quit. It will look 100% vanilla — that's expected; no plugins are installed yet. During this launch BepInEx creates its working folders:

    SongsOfConquest\BepInEx\
    ├── cache\          ← generated
    ├── config\         ← generated — mod config files appear here
    ├── core\           (shipped in the zip)
    ├── patchers\       ← generated
    ├── plugins\        ← generated — mod DLLs go here in Parts II & III
    └── LogOutput.log   ← generated — your best friend when troubleshooting
    BepInEx folder after first launch showing cache, config, core, patchers, plugins and LogOutput.log
    Checkpoint — inside BepInEx\ after the first launch. If plugins\, config\ and LogOutput.log exist, the loader is alive.
  5. Verify thirty seconds now saves an hour later

    Open BepInEx\LogOutput.log in Notepad. A healthy first run starts like this:

    [Message:   BepInEx] BepInEx 5.4.23.3 - SongsOfConquest (…)
    [Info   :   BepInEx] Running under Unity v2022.3.x
    [Message:   BepInEx] Preloader started
    [Message:   BepInEx] Preloader finished
    [Message:   BepInEx] Chainloader ready
    [Message:   BepInEx] Chainloader started
    [Info   :   BepInEx] 0 plugins to load          ← correct for now — none installed yet
    [Message:   BepInEx] Chainloader startup complete
    • LogOutput.log exists and mentions BepInEx 5.4.x.
    • BepInEx\plugins\ and BepInEx\config\ folders exist.
    • The game itself still launches and plays exactly as before.
    Foundation complete

    BepInEx is installed and idling. It will now load any BepInEx 5 plugin you drop into BepInEx\plugins — which is precisely what Parts II and III do.

No LogOutput.log after launching?

BepInEx never started. Work down this list — it's nearly always the first two:

More cures live on the Troubleshooting page.

Removing BepInEx later

Delete winhttp.dll, doorstop_config.ini, .doorstop_version, changelog.txt and the BepInEx folder from the game directory. That's the whole uninstall — the game never knew it was there.