This plugin extends Kerbal Space Program’s native Steam Input support by adding extra action sets and fixing maneuver mode detection, which broke in KSP 1.6. For background on the original issue, see KSP Issue #22165.
It also restores joystick (HID game controller) support, which stopped working reliably in the Steam build because of Squad’s built-in Steam Controller plugin. This mod disables that plugin and ships a replacement.
The plugin adds several action groups:
- Compatible with Squad’s built-in Steam Input plugin for:
- Menu — menus and UI
- Flight — flight (including maneuver node mode)
- Docking — docking
- Editor — vehicle editor
- Map is split into three action groups:
- MapFlight — map while using flight controls
- MapDocking — map while using docking controls
- MapEVA — map while in EVA
- Additional action groups:
- Tracking Station — tracking station interface
- Mission Builder — mission editor
- Construction Mode — EVA construction with engineers
- FreeIVA — FreeIVA mod
The settings lets you change the plugin’s log level for troubleshooting. The default is Info; set Debug or Trace for more detail in KSP.log.
To view logs in near real time, open the debug console (Alt+F12), go to Debug → Console, and enable Flush logs
- Linux or Windows 10 or later
- Steam client installed and running
- Kerbal Space Program 1.12 (Steam build)
- A Steam Input–compatible controller with back buttons (or equivalent), for the bundled layouts:
- Steam Controller
- Legacy Steam Controller
- HORIPAD for Steam
- Xbox Elite controller — use the default profile so Steam can use the paddles; install Xbox enhanced feature support from Steam (see Settings → Controller).
- DualShock 4 / DualSense — only with extra rear inputs mapped (e.g. to stick clicks), or a model with back buttons; see Troubleshooting below.
- Any other Steam Input–capable device — you can build your own layout in Steam’s configuration UI.
- Create a folder named
controller_configin your Steam directory (e.g.C:\Program Files (x86)\Steam\controller_config).- A
controller_basefolder may already exist there; do not modify it.
- A
- Copy
game_actions_220200_[your language].vdfintocontroller_configand rename it togame_actions_220200.vdf.
Extract the plugin into GameData/SteamInput inside your KSP install.
You can either:
- Launch the game and bind everything in Steam’s controller UI, or
- Use one of the pre-built layouts shipped with the mod:
ksp_steaminput_steamcontroller_[language].vdf— Legacy Steam Controllerksp_steaminput_steamcontroller_v2_[language].vdf— Steam Controllerksp_steaminput_hori_[language].vdf— HORIPAD for Steamksp_steaminput_ps4_[language].vdf— PlayStation-style pads (see requirements above)ksp_steaminput_xboxelite_[language].vdf— Xbox Elite (see requirements above)
Check that steam is NOT running, and place custom layouts in:
${SteamDir}/steamapps/common/Steam Controller Configs/[your SteamID]/config/220200/
Then, start Steam, and go to the controller settings of Kerbal Space Program. Under Your configurations, you should see the layouts you just added.
After installation, the plugin automatically activates the right action set for your current game context — the controller itself needs no extra setup.
To display the cheat sheet, click the toolbar icon. It shows the inputs of the configuration you have selected, so you first need to choose one in the main combo box:
- If you installed one of the pre-built layouts, you will find it in that list, under the name it was given during installation.
- If you built your own layout in Steam's controller UI, export it first through the Steam interface so it shows up in the list.
Because KSP ships with an old version of SteamInput, the mod cannot detect which configuration is currently active on your controller — that is why you select it yourself here.
If something goes wrong:
- Steam is running and KSP is started from Steam.
- VDF files are in the paths described above.
- The plugin files are under
GameData/SteamInput. - The controller is connected and visible to Steam.
- Check
KSP.logfor lines prefixed with[SteamInput]; increase the log level in-game if needed.
- Install Xbox enhanced feature support: Steam → Settings → Controller → install next to that option.
- Update the controller firmware if prompted.
- No Xbox Accessories “slot” profile should override Steam: the LED under the Xbox button should be off when using the default Steam profile.
- Standard DualShock 4 / DualSense pads have no rear buttons; the bundled PS4-style layout expects extra inputs (e.g. stick clicks used as back buttons).
- Map those extra inputs as described in System Requirements.
- You can always author a custom Steam Input configuration for your hardware.
Separate VDF files are provided per language even though VDF can carry localization; getting Steam’s localization path to work reliably is still TODO — contributions welcome.
On Linux, non–US English keyboard layouts (e.g. non-QWERTY) may cause issues; see this report.
Issues, feature requests, and contributions: GitHub repository.
The shared UI code lives in the KSP-Shared submodule and is compiled directly into the plugin, so its sources must be present before building. Clone recursively:
git clone --recurse-submodules https://github.com/lhervier/KSP-SteamInputPlugin.gitIf you already cloned without --recurse-submodules, initialize the submodules afterwards:
git submodule update --init --recursiveTODO
-
Windows / Linux
-
VS Code
-
.NET / target framework (e.g. .NET Framework 4.7)
-
Node.js (for VDF merge scripts)
-
build.bat— build release outputs into theReleasefolder -
install.bat— deploy built files
This project is licensed under the MIT License — see the LICENSE file for details.






