end_4-Thorn_Core icon

Thorn Core

The powerful config system behind Thorn, for any mod.

Last updated an hour ago
Total downloads 206
Total rating 0 
Categories Libraries
Dependency string end_4-Thorn_Core-0.5.0
Dependants 1 other package depends on this package

This mod requires the following mods to function

averyocean65-FixPluginTypesSerialization-1.0.0 icon
averyocean65-FixPluginTypesSerialization

Fixes custom Serializable structs and such stored in mod plugin assemblies not getting deserialized by the native Unity engine code.

Preferred version: 1.0.0
BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
end_4-NukeLib-0.12.0 icon
end_4-NukeLib

eNd_4's UltraKill Library

Preferred version: 0.12.0
end_4-Notiffy-0.1.4 icon
end_4-Notiffy

Notification system for Ultrakill. This is a library and does nothing on its own.

Preferred version: 0.1.4
end_4-Fireman-0.1.1 icon
end_4-Fireman

File manager & picker for ULTRAKILL

Preferred version: 0.1.1

README

Thorn Core

GitHub || Wiki

Powerful config system

  • Supports all the usual basic data types (string, bool, numbers, enums), plus:
    • Colors with rainbow pulse
    • Enemy types
    • Keybinds with modifiers (e.g. Ctrl+A instead of just A)
    • Any custom data you can serialize to JSON, and allows custom UI
  • Compact UI, great for tuning settings live (no Esc and multiple clicks)
  • Hot reload on disk change

Comparison with PluginConfig and Configgy: see Thorn Wiki

Screenshots

Usage

public class HatsModConfig : Module 
{
    public static Setting<bool> FunkyMode = null!;
    public static Setting<EnhancedColor> HatColor = null!;
    public static Setting<FilePath> HatTexture = null!;

    public HatsModConfig() : base("myHatsMod.config", "Hats Mod", "Adds custom hat to enemies", ModuleCategory.Render) 
    {
        FunkyMode = CreateSetting("funkyMode", "Funky Mode", "Funny effects", false);
        HatColor = CreateSetting("color", "Hat Color", "The color for the custom hat", new EnhancedColor(0.66f, 1f, 0.97f, 0.5f));
        HatTexture = CreateSetting("texture", "Hat Texture", "The texture for the custom hat", HatsMod.DefaultHatTexturePath);
    }
}

[BepInDependency("com.github.end-4.thornClient")]
public class HatsMod : BaseUnityPlugin 
{
    public const string DefaultHatTexturePath = "/path/to/texture.png";

    private void Update() 
    {
        Logger.LogInfo($"Funky Mode: {HatsModConfig.FunkyMode.Value}");
        Logger.LogInfo($"Hat Color: {HatsModConfig.HatColor.Value.GetCurrentColor()}");
        Logger.LogInfo($"Hat Texture: {HatsModConfig.HatTexture.Value.ToString()}");
    }
}

For more details, see Thorn Wiki

Copyleft

Thorn's code is released under the LGPL-3.0 license, which means you are free to use its config system in your mod, whether or not it's open source; modifications to Thorn's code itself however are required to be open-sourced.

Assets are released under the CC BY-SA 4.0 license. This means you are free to reuse them as long as you give attribution and maintain the same license for derivative works.

Mods that use Thorn

Technical description

Thorn as a whole is an utility mod, with its own config system featuring a compact UI to house its 50+ modules. This package contains the base system without those modules.