Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
KydlCore
Shared runtime for all KydlDev mods: one UI root and theme, the KY hub window (F6; the one menu of every KydlDev mod) and the KY-Items category and registry.
By KydlDev
| Date uploaded | a day ago |
| Version | 1.1.0 |
| Download link | KydlDev-KydlCore-1.1.0.zip |
| Downloads | 316 |
| Dependency string | KydlDev-KydlCore-1.1.0 |
This mod requires the following mods to function
ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.2denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2360README
KydlCore
Shared runtime for all KydlDev mods: one UI root and theme, the KY hub window (F6; the one menu of every KydlDev mod) and the KY-Items category and registry.
Features
- KY hub (F6): one window for every KydlDev mod. Row 1 lists the installed mods, row 2 their tabs (settings, the mod's own pages). Escape closes it; your character does not move while it is open.
- Settings pages: every KydlDev mod's player settings as switches, sliders, drop-downs and key pickers, with live reload (a change applies at once).
- KY-Items: the hammer category of all KydlDev build pieces and a tab listing every item and piece the installed KydlDev mods add (shown only when such a mod is installed).
- Shared look: dark panels, gold accents, one font for every KydlDev menu.
- Flight recorder: when something goes wrong (an error of a KydlDev mod, a failed self-check) KydlCore writes a short report file with what the tracked creatures and the game were doing in the last two minutes, so a bug report can include it. It only keeps this in memory until then.
How to use
- Press F6 in game (changeable:
[General] HubKey). - KydlCore has no gameplay of its own: install it together with the KydlDev mods that need it (your mod manager does this for you).
- KydlCore is always on: it has no on / off switch, because every KydlDev mod relies on it.
Configuration
BepInEx/config/com.kydldev.KydlCore.cfg (or the hub's Settings tab):
| Section | Setting | Default | What it does |
|---|---|---|---|
| General | HubKey | F6 | Opens / closes the KY hub (None = no key) |
| DebugLog | Enable | false | Detailed lines in the BepInEx log for bug reports |
| Diagnostics | FlightSampleSeconds | 1 | Flight recorder: seconds between two samples (0.25-10) |
| Diagnostics | FlightWindowSeconds | 120 | Flight recorder: seconds of history a report holds (30-600) |
| Diagnostics | FlightMaxDumps | 30 | Most report files written per game start (1-200) |
| Diagnostics | FlightKeepDays | 3 | Reports older than this many days are removed at game start (1-30) |
| Diagnostics | FlightKeepFiles | 100 | Most report files kept; the oldest go first (10-1000) |
Edits to the file are picked up while the game runs.
Multiplayer
KydlCore can be installed on your game only: you can join a server without it. When the server has it too, both must have exactly the same version. The KydlDev gameplay mods themselves must be on every player and the server (each says so in its own description).
For mod makers (KydlDev mods)
Hub tabs: KyHub.AddTab / AddPage / RemoveTab / HasTab / ConfigEntries. KY-Items: KyItems.Contribute(new KyContribution { Id = "<modid>:<item>", ... })
(duplicate ids are rejected), KyItems.Withdraw(id), KyItems.All / FindById / Changed.
Diagnostics: FlightRecorder.Track(component, label, () => facts) for every creature or object the mod moves, FlightRecorder.Dump(reason) from a watchdog,
FlightRecorder.Note / Untrack; ModLog.State / Decision / Every / IsDue write debug lines and feed the recorder's timeline.
Bug reports
Turn on [DebugLog] Enable, reproduce the problem, and attach BepInEx/LogOutput.log. If BepInEx/cache/KydlCore/flight/ holds a newer report file, attach that too.
CHANGELOG
Changelog
1.1.0
- New for mod authors: the flight recorder.
FlightRecorder.Track(component, label, facts)keeps the last two minutes of a creature or object (position, speed, health, AI target, network owner, whether its zone is loaded, the mod's own facts);FlightRecorder.Dump(reason),Note,Untrack,LastDumpPathandTrackedCountcomplete it. It is always on, in memory only. - It writes a report file to
BepInEx/cache/KydlCore/flight/only when something goes wrong: a failed DrakesTestLab test, a CHECK OFF, an error of a KydlDev mod, or a mod's ownFlightRecorder.Dump. At most 30 files per game start; files older than 3 days and everything beyond the newest 100 are removed at game start. Attach such a file to a bug report. - New for mod authors:
ModLog.State,ModLog.Decision,ModLog.EveryandModLog.IsDue(debug lines as before, and always on the flight recorder's timeline, even with the debug log off). - New settings in the
[Diagnostics]section (hub Settings tab):FlightSampleSeconds(1 s),FlightWindowSeconds(120 s),FlightMaxDumps(30),FlightKeepDays(3),FlightKeepFiles(100). They only size the recorder; it cannot be switched off. - Nothing was removed or renamed: mods built for KydlCore 1.0.0 keep working. A server that runs 1.1.0 needs the same version on every player who has KydlCore (exact match).
- Tested in game with the full TestLab suite (8 tests, including the new flight recorder test): 3 green runs in a row on 2026-11-08; no errors from this mod, all 13 KydlDev mods loaded together.
1.0.0
- Tested in game with the full TestLab suite (7 tests): 3 green runs in a row on 2026-11-05, plus the ecosystem run with all 12 KydlDev mods loaded together.
- New for mod authors: PieceLearning (learn a build piece with the game's normal "new piece" message, check known pieces / items).
- Settings pages: a setting name that is too long is cut with "..." instead of running under its slider, long text values (webhook URLs) stay inside their box, and sliders are about 10 % shorter with a gap to the name. New mod icon.
- KydlDev spec layout; KY-Items: Jotunn-free registry with namespaced contributions (KyItems.Contribute / Withdraw / FindById), duplicates rejected; KyHub.HasTab; KydlCore can no longer be switched off (no EnableAll); exact network version, joins servers without KydlCore (VersionCheckOnly). Checked in game on 2026-11-04 (clean start and quit with all mods loaded, no errors from this mod).
- First version (project created 2026-10-29). Checked in game on 2026-11-04 (clean start and quit with all mods loaded, no errors from this mod).