WindowsLinuxmacOS

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

Windows
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.

Linux
~/.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.

macOS
~/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.