SkongGamemodes

v1.2.0·Updated 2025-10-12

Library that allows you to make a new gamemode in a few lines of code.

About this mod Author’s original text

SkongGamemodes

A lightweight framework for creating custom gamemodes in HK: Silksong

Features

  • Initialize multiple gamemodes with custom names, colors, and descriptions.
  • Easily Initialized in just a few lines

Installation

  • Download SkongGamemodes.dll.
  • Add SkongGamemodes.dll to your BepInEx plugins folder alongside your main plugin DLL.
  • Reference it in your main mod project (Don't forget to add using SkongGamemodes;).
  • When you publish your mod, don't forget to add it as a dependency in manifest.json, the custom modes won't load without it being in plugins folder

Usage

  • Initialize a game mode

using UnityEngine;

using SkongGamemodes;

[BepInDependency("dervorce.hkss.gamemodemanager", BepInDependency.DependencyFlags.HardDependency)] // Add this to make sure it loads before your plugin

[BepInPlugin("dervorce.hkss.mypluh", "My Plugin", "1.0.0")]

public class MyPlugin: BaseUnityPlugin

{

private GameModeManager.GameModeData myMode;

private void Awake()

{

myMode = GameModeManagerPlugin.Instance.Manager.Init(

this,

"Bound Soul", // Mode Name

"Enable The Binder by Pressing H", // Description

new Color(0.941f, 0.780f, 0.255f, 0.8f) // UI Color (Nullable, if you put in null, it will not modify the color)

);

}

}

  • Accessing mode state

[HarmonyPatch(typeof(PlayerData), "TakeHealth")]

public static class Patch_GlassyBoy

{

[HarmonyPrefix]

public static void glAss(PlayerData __instance, ref int amount)

{

if (BoundSilkPlugin.glassBoundMode.Enabled) // if GlassBoundMode is enabled

{

amount = __instance.CurrentMaxHealth; // Die in one hit

}

}

}

  • Creating multiple modes

var steelBoundMode = GameModeManagerPlugin.Instance.Manager.Init(

this,

"SteelBound Soul",

"Bound by Pantheon, Chained by Steel",

null, // color but nulled

steel: true // if steel is enabled, this will make it based off steel soul mode instead of normal mode, which means steel soul exclusive stuff and permadeath being part of your gamemode

sprite // you can add in a UnityEngine.Sprite which will override the regular image

);

Notes

  • Make sure your main plugin references this DLL and includes using SkongGamemodes;.
  • Do not add multiple instances of GameModeManager—it’s a singleton.

License

MIT License – feel free to use, modify, or integrate into other mods.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

File & checksum

Filename
SkongGamemodes-1.2.0.zip
File size
34.4 KiB