A Linux/Proton port of Combat Assist — JerryYOJ's KCSE plugin for Kingdom Come: Deliverance 1 that automates perfect blocks and master strikes, configurable via in-game console variables. This build runs on Linux via Wine/Proton (and still works on native Windows).
Requires Cryhook (this project's KCSE port) — install that first.
- Grab
CombatAssist.dllfrom the latest release. - Copy it to
<game>/mods/CombatAssist/KCSE/Plugins/(create the folders if they don't exist). - Launch the game. Check
<game>/KCSE/KCSE.logforLoaded Combat Assistto confirm it's active.
On Steam Deck, or if you're not sure where <game> is or how to copy files there: see Cryhook's Steam Deck / Desktop Mode instructions — same file manager, same steps, just different destination folders.
This currently supports Steam, game version 1.9.7.0 (same as Cryhook). On any other build, Cryhook fails loudly with a clear dialog rather than silently running with wrong addresses — a crash on launch almost always means a version mismatch, not a corrupt install.
Set from the in-game console (~):
| CVar | Default | Description |
|---|---|---|
kcse_ca_alwaysPB |
0 | Always auto perfect block |
kcse_ca_alwaysMS |
0 | Always auto master strike |
kcse_ca_chancePB |
0 | 0–100: % chance to auto perfect block |
kcse_ca_chanceMS |
0 | 0–100: % chance to auto master strike |
kcse_ca_alwaysHuntPB |
0 | Auto PB during hunt/gap-close attacks |
kcse_ca_alwaysHuntMS |
0 | Auto MS during hunt attacks |
kcse_ca_autoCounter |
0 | Auto-react N times then stop (decrements each use) |
kcse_ca_alwaysTackle |
0 | Player can always tackle during a hunt attack |
Master strikes are preferred over perfect blocks when both are available.
kcse_ca_alwaysTackle requires v1.0.1+: earlier Linux builds shipped this hook broken (it failed to link), so the cvar existed but never actually worked.
These cvars aren't registered until after Combat Assist loads, so a +exec user.cfg launch option (processed at engine boot, before the plugin loads) won't set them — the console just doesn't know about them yet.
To avoid retyping them every session, put them in <game>/user.cfg as usual:
kcse_ca_alwaysPB = 1
kcse_ca_alwaysMS = 1
Riposte automatically re-runs exec user.cfg itself right after registering its cvars, so this file gets applied for real once per game launch — no launch options or manual console entry needed.
git clone --recursive https://github.com/ThisIsAkill/riposte.git
cd riposte
./build.shThis initializes the libKCD1 submodule, cross-compiles with MinGW-w64 (sudo apt install mingw-w64), and produces build-mingw/CombatAssist.dll.
libKCD1's reverse-engineered struct layouts assume MSVC's std::map (16 bytes); GCC/MinGW's std::map is 48 bytes. build.sh automatically applies patches/libKCD1-mingw-struct-layout.patch to fix the resulting size mismatches before building — you don't need to do anything manually.
Building against MSVC/vcpkg on Windows works the same way as upstream; see .buildenv/CMakeLists.txt.
This is a Linux port of JerryYOJ's CombatAssist, built on their KCSE framework and libKCD1 reverse-engineering work. All credit for the plugin's design and the reverse-engineered game internals it depends on goes to them — this fork's contribution is getting it building and running on Linux via Wine/Proton.
Parts of this port (build fixes, debugging, and documentation) were done with AI assistance.