Diagnostic Tool

Controller Mapping Tool — Steam Input config designer

A controller mapping tool lets you design a custom button layout for your gamepad — useful when a button breaks, when you want a different layout for fighting games or accessibility, or when you need a consistent layout across games. Our free browser-based mapping designer is honest about what it does: the browser cannot inject inputs into other applications, so this tool generates a Steam Input config file that Steam loads to actually apply the remapping when you play. Click any button on the live diagram to assign it a new action, or drag-and-drop to swap two buttons. Save named presets to localStorage, then export the Steam Input VDF when you are ready. Works with any controller the browser recognizes as a standard gamepad. No download required.

Loading diagnostic…
How It Works

How the mapping designer works

    01

    Connect your controller

    Plug in or pair your controller and press any button. The diagram updates live as you press physical buttons, so you can verify the mapping by feel before exporting. Live preview is optional — you can design the mapping without a controller connected if you already know the layout you want.

    02

    Click a button to assign an action

    Every button on the controller diagram is clickable. When you click, a picker dropdown appears with all available Steam Input actions grouped by category (face buttons, shoulders, center, sticks, D-pad). Pick the action you want this physical button to fire. The diagram updates immediately and the button is marked as remapped.

    03

    Drag-and-drop to swap two buttons

    On desktop, drag any button onto another button to swap their assigned actions. This is the fastest way to do common layout changes — swapping X and Square on a PlayStation controller for example, or moving the A button to where the B button is for a left-handed player.

    04

    Save the layout as a named preset

    Click Save Preset, give the layout a name, and it is stored in your browser via localStorage. The presets list at the bottom of the page lets you load any saved layout instantly. Useful when you have different mappings for different game genres — fighting, FPS, accessibility — and switch between them.

    05

    Export to Steam Input and load in Steam

    Click Export to Steam Input. The tool generates a .vdf config file with your custom mapping. Open Steam, go to Settings → Controller → Controller Settings, import the config, and Steam applies the remapping for any game launched through Steam. The browser never touches game inputs — Steam does the actual remapping work.

Common Use Cases

When this mapping designer

Three distinct audiences use mapping designers, each with different priorities. This tool handles all three through the same interface — click-to-assign for repair, drag-to-swap for layout changes, named presets for layout libraries.

Use CaseHow to Approach ItWhy People Need It
Broken button repairRemap the broken button to one you rarely useOut-of-warranty controllers with a single failed button can stay playable for months or years by remapping the broken input. Example: L1 stops registering, remap to Square (which most games use less). Click the broken button on the diagram, pick the replacement action, export, load in Steam — done.
Accessibility layoutsMove all gameplay-critical actions to one handPlayers with limited mobility on one side benefit from layouts where all essential actions are reachable from a single hand. Swap face buttons and triggers, move D-pad navigation to face buttons, disable buttons that get bumped accidentally. Save as a named preset so the layout persists across sessions.
Fighting-game layoutsReorganize face buttons to match arcade conventionsFighting games traditionally use a four-button row (LP/MP/HP/Kick or similar). On a standard gamepad with diamond-arranged face buttons, this is awkward. Remap face buttons + bumpers to form a row of attacks that matches what the player is used to from arcade or fight stick play. Save per-fighting-game presets to switch between Street Fighter and Tekken layouts instantly.
Esports / per-game loadoutsSave a preset per game you play seriouslyCompetitive players often want different layouts for different games — sprint on a bumper for FPS, weapon switch on a stick click for hero shooters, build on D-pad for survival games. The named preset system lets you switch between layouts in seconds rather than re-designing each time.
Custom non-standard layoutsMap buttons in ways the game does not support nativelySome games offer no in-game remapping (looking at you, certain console ports). Steam Input runs before the game sees the controller, so a Steam Input layout overrides whatever the game thinks the controller is doing. Lets you fix games that ship with bad default mappings.
Works With Any Standard Gamepad

Compatible controllers

The designer works with any controller the browser recognizes as a standard gamepad. The exported Steam Input config applies to whatever controller you have plugged in when launching a game through Steam.

Frequently Asked

Mapping Tool questions

No — and we are deliberately clear about this. The browser cannot inject inputs into your games. What this tool does is help you design a custom layout visually, then export a Steam Input config file. You load that file in Steam, and Steam does the actual remapping when you launch a game through it. The browser is the designer; Steam is the runtime. If you are not using Steam, you would need a different runtime remapper (reWASD, DS4Windows, JoyToKey) — we can copy your designed layout there manually, since there are only so many buttons.

Yes, and this is one of the most common use cases. Click the broken button on the diagram, pick the action you want it to take (typically a button you rarely press), then click Export. Load the config in Steam. The broken button now triggers whatever you mapped it to, and the original action stays accessible through the button you replaced. Buys you significant playable life from a controller that would otherwise be e-waste.

Open Steam, click your username in the top right, choose Controller Settings, then Browse Configs. Click the import button (usually a folder icon) and select the .vdf file you downloaded. Steam will load it as a usable configuration. Apply it to a specific game or to the default desktop layout. Steam now handles the remapping whenever that controller is connected and the game is launched through Steam.

Only if you launch the game through Steam. Add the game as a non-Steam game (Steam → Games → Add a Non-Steam Game), launch it from Steam, and Steam Input will intercept the controller and apply your remap. For games launched directly without Steam in the loop, you would need a different runtime tool — reWASD and DS4Windows are the common choices on Windows.

Yes. Use Save Preset to give the current layout a name. Saved presets appear at the bottom of the page and load with a single click. Up to 20 presets are kept in your browser via localStorage. Useful when you have different layouts for different game genres — save them once, switch instantly. Future versions will sync presets to a cloud account so the same layouts follow you across browsers.

When you remap physical button A to fire action B, physical button A now fires action B and stops firing its original action. If you also want the original action accessible, you need to remap a different physical button to take over its role. The "swap" interaction (drag one button onto another) handles this in one motion — the two buttons swap their assigned actions, so both actions are still reachable.

Steam Input passes through standard button and trigger inputs but does not currently expose the DualSense's adaptive trigger resistance levels or fine-grained haptic feedback in its config format. If you remap the DualSense L2 or R2 to something other than a trigger action, you may lose adaptive trigger functionality in some games. Standard rumble and analog trigger value continue to work.

Because "generic mapping file" puts the burden on the user to figure out how to use it — and most users will not bother. Steam Input is the broadest-compatibility runtime: it ships with Steam (used by over a hundred million people), works with any game launched through Steam, supports any major controller, and is genuinely free. Generating a config that works with the most-used remapper produces actual remapped controllers; generating a config that works with nothing produces zero. We pick the path that ships real outcomes.

Sources & Methodology

How the mapping export works

The design surface is a live SVG controller diagram bound to the browser gamepad interface — every button is interactive (click to assign, drag to swap) and every press on the connected controller highlights the corresponding button on the diagram for verification. Mapping state lives in a single object keyed by physical button (a, b, x, y, l1, r1, etc.) with values from the Steam Input logical action vocabulary (button_a, button_b, left_bumper, left_trigger, dpad_north, and so on). Export generates a Steam Input VDF (Valve Data Format) text file with a single action set, each physical button bound to its assigned logical action via xinput_button bindings. The format is the same one Steam exports from its own controller configuration UI — the file is interchangeable with Steam-authored configs and can be edited by hand or in Steam's editor after import. The browser does not run the remapping itself; Steam does. localStorage persists the current working mapping plus up to 20 named presets. Methodology published by GPADLAB Engineering.

Read the methodology

Run the full Controller Health Score

This test is one of six diagnostics in the composite score. See how your controller stacks up overall.

Run the Benchmark