Kingdom Come Script Extender — an SKSE-style native plugin framework for Kingdom Come: Deliverance 2. Ships as a dinput8.dll proxy, no exe patching required.
- libKCD2
- spdlog
- Visual Studio 2022+
- Desktop development with C++
- CMake 3.15+
- vcpkg
- Kingdom Come: Deliverance 2 (1.5.6)
Copy dinput8.dll to <game>/Bin/Win64MasterMasterSteamPGO/.
#include "KCSE/KCSEAPI.h"
KCSE_PLUGIN_INFO("MyPlugin", "Author", 1);
KCSE_PLUGIN_LOAD(kcse)
{
kcse->GetMessagingInterface()->RegisterListener([](KCSE::Message* msg) {
if (msg->type == KCSE::IMessagingInterface::kMessage_DataLoaded) {
// Game data loaded
}
});
return true;
}Plugins are DLLs placed in mods/<modname>/KCSE/Plugins/ or KCSE/Plugins/.
- KCSE auto-calls
KCSE::Init()when using theKCSE_PLUGIN_LOADmacro. - Available lifecycle messages:
PreDataLoaded(before main.lua / mod init scripts — publish Lua globals here),DataLoaded,LoadGame,SaveGame,NewGame,AllPluginsLoaded. - Per-frame tasks via
KCSE::GetTaskInterface()->AddTask(fn). - Trampoline hooking via
KCSE::GetTrampoline().