Greeneye, Enshwick, SET and more
How Kiln runs mods for SET, Greeneye Loader, Creative Mode's Flame, Shroudtopia, Enshwick, shroudlink and Ember.
Kiln has a part for each of these frameworks. All of them come with Kiln, so you don’t install the framework. Each part steps aside when the framework’s own loader runs, so a mod never runs twice. Since dev.22 the launcher also copies your profile’s mods into the folder that loader reads (details). New in 0.2.0-dev.18: unless a section says otherwise, they ran in Kiln’s tests and on test servers, and no player has checked them in the game yet.
The launcher imports mods of all of them: drop a mod on the window and it is in the list on Play, switched on, with
its framework next to its name (what it accepts). Or put the mod in
the folder named below, inside the game folder, and switch that framework’s drop-in on (the profile’s Folders and
notes). The list on Play shows those mods too, marked Game folder, and whether they load
(Profiles and mods). Since dev.24 files a mod wrote into its folder in the
game (settings, logs, saved values) are carried to the new version at an update, and kept in kiln/kept-mod-files when
the mod is switched off or Kiln is uninstalled.
SET
Lua mods for Shrouded Engine Tweaks (SET 0.1.1).
- Folder:
shrouded_engine_tweaks/mods/<mod>/with itsinit.lua. - You don’t need SET’s
powrprof.dll. - Where it runs: SET itself only runs in a world you host. On Kiln, SET mods also run on a dedicated server. Their windows, drawing and keys only work in the game.
- Console: SET’s console is part of its overlay. On Kiln, write Lua lines into a file
kiln/control/set/<name>.lua. Kiln runs them at the next game step, writes the output tokiln.log, and deletes the file. - Limits: Kiln runs SET mods with time limits and keeps each mod to its own folder. Only sprint-stamina and fall-damage systems can be switched off.
- SET installed too: if any other tool’s
powrprof.dllis loaded (SET’s own, Enshwick’s, Shared XP), Kiln’s SET part stays off.
In dev.20: Admin.setLevel, Admin.setFlameLevel, English item names and Res.text lookups are available.
General English localization tags need a locally generated client text catalog; a server without it returns nil.
Kiln.DevTools supplies Bindings, Resources, Hooks, Game Log, Status and Console views. These are Kiln views: Bindings shows
Kiln key bindings, Hooks shows Kiln hook statistics; SET’s private Lua binding registry and full capture diagnostics are
not reproduced. Drawing/input still needs a client. GameOptions.*, Admin.send, ImGui Debug and SET’s settings.ini
editor remain unavailable.
The final assembled dev.20 dedicated-server probe passed 39 checks, no failures: names/texts, hooks, a registered
DebugEnemyProjectileEvent posted and observed with its payload, and flame levels changed 3 → 4 → 20 → 3 with restoration.
This supersedes the earlier 37/2 record from before the integrated event fixes. It does not establish client windows,
physical input, fog or placement limits. Status: partial for the remaining API differences and client checks above.
In dev.21: SET no longer re-reads a catalog without texts every 60 s, and handles non-ASCII Windows paths. SET mod
placement no longer refuses a game folder because /home is a link to /var/home (Fedora Atomic, Bazzite).
In dev.24: SET 0.2 mods: rules, saved settings and the tools windows. Under Proton the check for a second SET runtime could fail and leave SET’s tools out. SET’s tools were seen in a real game (Linux, Proton).
In dev.22: SET mods load again when C# mods are on. Kiln’s SET part took Kiln’s own in-game mod list for SET’s runtime and stood aside. With a Cyrillic, Chinese or accented Windows user name or game folder, SET mods did not load; that is fixed too. Neither fix has run on a Windows PC.
Greeneye Loader
Client mods for Greeneye Loader 1.2.2: The Worst Map Mod, Find, Quick Deposit, Town Portals, Embervale Teleport, Hollow Halls Progression.
- Folder:
greeneye/<mod>/with itsmod.jsonand DLL. Settings stay in the mod’s own folder, as before. Since dev.24 a Greeneye mod added in the launcher runs from its own folder in the game too, where it keeps its settings. - You don’t need Greeneye’s
dbgcore.dll. - Linux and Steam Deck: Greeneye Loader doesn’t start under Wine or Proton. Kiln runs its mods there.
- Mod authors: Greeneye’s hot reload works the same way.
- Greeneye’s whole API is there. Its log file
kiln/logs/greeneye-loader.logis kept for bug reports.
Status: untested in game.
Creative Mode (Flame)
Creative Mode (Nexus mod 146) brings its own small loader, Flame. Kiln starts Creative Mode without it.
- Folder:
mods/creative/, from Creative Mode’s download. You don’t need itsdinput8.dll; if you install it, Kiln keeps it and lets it run the mod instead. - You can add Creative Mode in the launcher too. Since dev.24 Kiln runs it from the game’s
modsfolder (mods/<id>/), where it reads its own files. What it writes there stays across updates and goes tokiln/kept-mod-fileswhen it is switched off, removed or Kiln is uninstalled; the next time it is placed, those files come back. - When Creative Mode has no data for the current game build, Kiln’s own
/creativestays available and says why. - Creative Mode changes building cost, flight and time of day, like Kiln’s own creative mode. Use one or the other.
- Its server version hasn’t been tried.
Status: untested in game. Creative Mode 3.2.0 started on a test server.
Shroudtopia
Mods for Shroudtopia 0.1.1 and its Enshrouded 1.0 release: minimaps, first-person view, flight, small tweaks.
- Folder:
mods/<mod>.dll, ormods/<mod>/with itsmod.jsonand DLL. - You don’t need Shroudtopia’s
winmm.dllorshroudtopia.dll. - Settings:
kiln/config/shroudtopia/shroudtopia.json, in Shroudtopia’s own format. The first start copies your oldshroudtopia.json. Set a mod’sactiveto switch it on or off while you play. The launcher edits it too. - Shroudweave’s mods (Minimap and Weather Clock) use the same format as far as we know, but haven’t been tried.
- Hooks (dev.21): a mod’s
CreateDetouron the game exe is a link in Kiln’s hook registry, owned byshroudtopia:<mod>. Shroudtopia and EMF mod hooks on one function run newest first, before Kiln’s own links, as layered hooks did before. Hooks outside the game exe still use plain safetyhook.
Status: untested in game.
Enshwick
Enshwick mods of every kind: DLL mods, Luau mods (main.luau) and data packs (pack.toml), for Enshwick
1.0.0-alpha.14 (bundled since dev.23).
- Folder:
mods/<author.name>/. - You don’t need Enshwick. Kiln ships Enshwick’s own loader, built from Enshwick’s source, and starts it. Every Enshwick feature is Enshwick’s own code: settings per world, the Mods screen, the server console command, the join check.
- Enshwick installed too: your own copy wins. Kiln uses the loader in
mods/enshwick/when it’s there, and its own copy only when it isn’t (setting"loader": "auto"inkiln/config/kiln-enshwick.json). If Enshwick’spowrprof.dllstarts by itself, Kiln starts nothing, and since dev.22 it copies new profile mods intomods/for it. Enshwick’s loader may see a mod that was copied while it was already running only from the next start. - Linux and Steam Deck: you don’t need the
WINEDLLOVERRIDES=powrprof=n,blaunch option. - Join check: Enshwick’s own. A server records its mods, and a player with a different version of a mod that has a join check can’t join.
- To switch off an Enshwick mod you installed by hand, move it out of
mods/(Enshwick’s own rule). Mods you added in the launcher switch off with their switch in the list on Play. - Data packs written like Enshwick’s own examples (
authors = ["You"],exports = [...],[[setting]],[[point]]inpack.toml) import since dev.24; before, they were refused as “its pack.toml is invalid”. - On the client Kiln is first. Enshwick no longer hooks a function another program hooked first, so a feature of Enshwick that needs such a function may be off, and its log then names a Kiln DLL. Read from Enshwick’s source; not measured in a game.
- Without any Enshwick mod, the loader doesn’t start at all.
Status: untested in game. On a test server Enshwick’s DLL mods, a Luau mod and a data pack ran, next to Kiln’s own features.
shroudlink
Server mods for shroudlink 0.8.0: chestsort, assistants, storage, meter, gemforge, and any mod built on shroudlink’s kit.
- Folder:
shroudlink_mods/<name>.dllin the server folder. - You don’t need shroudlink’s
steam_api64.dll, so a Steam file check or game update no longer removes it. - Kiln runs shroudlink’s own server part, so mods behave as under shroudlink, hot reload included.
- shroudlink’s EML data mods (bigger stacks, bigger chests) go to Kiln’s EML part.
- Players: shroudlink’s optional client addon (a
dinput8.dll) adds the MODS tab, chest search and slot locks. Install Kiln in the game and it keeps the addon and loads it. Drop the addon on the launcher (alone, or in shroudlink’s singleplayer package) and it is added as a mod of its own, loaded with your profile. Before dev.22 the launcher took it for a loader Kiln doesn’t need and left it out, so the tab never appeared. You still don’t need shroudlink’s core: Kiln runs it. - shroudlink’s own core installed: it reads only flat DLLs in
shroudlink_mods/, not Kiln’s layout. While it runs, the profile’s shroudlink mods don’t load through Kiln, and the state file and the launcher’s engine row say so. - Moving from shroudlink’s own setup: stop the server, delete
steam_api64.dll, renamesteam_api64_o.dllback tosteam_api64.dll(or verify the files in Steam), keepshroudlink_mods/, install Kiln.
Status: works on a test server (shroudlink’s own self-test passed). With players joined: untested. The MODS tab after dropping the addon on the launcher: not seen in a real client yet.
Ember
Ember is a mod kit for dedicated servers. It hasn’t published its loader yet, so there is nothing that could start its mods.
- Folder:
ember/mods/<mod>/in the server folder. - Kiln finds Ember mods, lists them in the launcher and the log, and says they’re waiting for Ember. It doesn’t run them.
- When Ember releases its loader, Kiln plans to run Ember mods too.
- Not to be confused with the EML mod called “Ember” (Nexus mod 79): Kiln’s EML part runs that one.
Status: not running yet.