Where Does Steam Input Store Controller Configs?
Steam Input keeps personal bindings in userdata 241100 with templates in controller_base. Paths per OS.
Last updated
Steam Input splits personal bindings from shipped templates. Your edits and saved layouts live in the userdata tree under app 241100, in controller_config folders per game with .vdf files. Those sync through Steam Cloud as your personal set.
Defaults live elsewhere: controller_base holds templates and genre presets that ship with Steam. Copying a template into your game folder exposes it as a base; editing templates in place affects every game borrowing them. Deck-era working copies add a third spot under the common configs tree.
Where Steam Input stores this, by platform
C:\Program Files (x86)\Steam\userdata\<user-id>\241100\remote\controller_config
Personal and per-game .vdf bindings with Cloud sync. Templates ship in Steam\controller_base and controller_config beside the client. Replace the Steam root and user ID with yours; Deck working copies sit under steamapps/common/Steam Controller Configs.
~/.steam/steam/userdata/<user-id>/241100/remote
Same userdata layout with library-root variants under .local/share/Steam. Templates in controller_base/templates beside the client. Version differences move working copies, so confirm with the latest community paths.
~/Library/Application Support/Steam/userdata/<user-id>/241100/remote
Same 241100 remote tree on Mac. Client templates sit inside the Steam app bundle Contents/MacOS folders. Personal bindings sync the same way as other platforms.
Frequently asked questions
Where are my custom Steam controller layouts?
In userdata/<your-id>/241100/remote/controller_config/<app-id> as .vdf files. Those are your personal and saved layouts with Cloud sync. Templates and recommended sets live in controller_base instead.
Can I copy a Steam Input config to another game?
Yes by copying the .vdf into the target app folder under controller_config and renaming per Valve docs. Personal layouts import cleanly; template edits should copy out first so updates do not overwrite them.
Why did my controller bindings reset?
Cloud conflict or a working-copy mismatch after updates moved the active file. Check the 241100 remote tree timestamps against the common configs copy. Re-export the layout after fixing to re-anchor Cloud.
Notice an outdated path? Let us know.