-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Thorn is meant to be a collection of (small) utilities and HUD indicators. To support this, it includes a configuration system built from the ground up with a compact UI to scale with a huge number of (micro-)modules, and a flexible widget system. This page will help you decide whether Thorn is for you as a developer.
Wanna start right away? Modules/Config, HUD modules
-
Cool things:
- It features a compact hack-client-like UI that makes tuning settings fast and observable live
- Keybinds made simple: It's possible to have modifiers (like Ctrl+C) in one bind, and you can easily subscribe directly to the keybind, instead of having a raw KeyCode you have to check yourself
-
Downsides:
- It's not purely a config system, as we ship a range of modules by default. But there's module search, so your config entry will always be accessible when needed.
- Thorn is quite new, so you could say it's not as mature/time-tested as PluginConfig or Configgy.
-
A non-exhaustive comparison between Thorn and the other two config systems. Please remember that checkmark count is not a good scoring metric in this kind of comparison table...
| Feature | Thorn | PluginConfigurator | Configgy |
|---|---|---|---|
| Open source license | LGPL3 | MIT | No license |
| Config format | JSON | Newline-separated key-value pairs | BepInEx (TOML-like) |
| Config hot reload | ✅ | ❌ | ❌ |
| Custom UI | ❌ | ✅ | ❌ |
| Compact UI w/o fullscreen panel | ✅ | ❌ | ❌ |
| Purely a config system | ❌ | ✅ | ✅ |
| Supports presets | ❌ | ✅ | ❌ |
| Documentation | ✅ | ✅ | ❌ |
* Bold indicates superior text item. BepInEx config has the bonus of being editable through mod managers like r2modman.
Is Thorn for you? Start here: Modules
To date, Thorn is the only HUD system library we know of for ULTRAKILL. If you're looking to create HUD elements that are freely draggable and can be anchored to the sides, try it!
Come talk to @end_4 (or just ask around) in the ULTRAKILL Modding Discord server