This thread aims to be a resource for understanding Steam Input - the umbrella term referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games.
Valve's Steam Controller hardware and the Steam Input Configurator software were developed to find a solution to lounge PC gaming and having every PC game playable with a controller - including the games without native controller support that expect a mouse / keyboard. The Steam Input Configurator helps the hardware behave as multiple input devices, offering a myriad of customisation and hybrid combinations for tailoring the controller to specific games and personal choice. Configs can be shared via the Steam Community.
Both have successfully developed over the past two years to become extremely powerful tools for lounge PC gaming. These tools are now opened up to other popular controllers, which are only limited by the controller's capabilities. Current support includes:
- Steam Controller
- Playstation 5 DualSense Controller - (INITIAL BETA SUPPORT)
- Switch Pro Controller - Now In Beta
- Playstation 4 Controller (and many of it's variants, fight sticks etc)
- Xbox 360 Controller (and many of it's variants, fight sticks etc)
- Xbox One / Xbox Series S|X Controllers (and many of it's variants, fight sticks etc)
- Any generic XInput Controller
- Any Direct Input gamepad
- Legacy- Most PC games are designed around limited input, such as gamepad only, or mouse and keyboard only, or both. Many will not let you mix and match. The Steam Input Configurator has many options to work around this.
- Native - Developers can use the Steam Controller API (SCAPI) to write input for their game. The system revolves around "actions" rather than buttons. This opens a wealth of options as the game is not limited to any one input device. Eg In Okami, you can bind all painting to motion controls despite the developers config not including Mouse / Gyro by default.
The Steam Controller has extra flexibility from haptics, trackpads, gyros, accelerometer, dual stage triggers, grip buttons, heavy software integration and dynamic firmware. Ergonomically, the Steam Controller is also unique compared to traditional controllers. This is in order to angle users thumb tips to the trackpads for greater precision and to give greater comfort for using triggers, bumpers and grips.
Additionally without Steam the controller itself is detected by a PC (or other device) as an actual mouse and keyboard (Lizard Mode). This allows basic functionality on any device that supports a mouse / keyboard, from old consoles such as the Dreamcast, to your Android phone or even your own PC UEFI bios.
Steam is required for the full suite of customisability and on the fly changes via Steam's Overlay in big picture mode (BPM). You can also use non-Steam games and anything else on your PC that is outside of Steam, by simply adding them to the Steam Client as a non-Steam game.
The Steam Input Configurator supports multiple styles of input, all of which are heavily customisable and can be mixed to match any particular game. The controller can handle:
Xinput Controls (eg Xbox 360 Pad)
All controller functions with exception of the guide button can be mapped straight to the controller or rearranged and customised. The grips act as additional buttons to this, while the dual stage analogue triggers can bind multiple functions eg aim, fire, hip fire from a single trigger.
Keyboard / Mouse bindings
Every keyboard key with the exception of the Windows key can be mapped to various Steam Controller input modalities. Mouse movement can be mapped over one trackpad or blended over both trackpads. The functions of a 5 button mouse can be bound to the controller including left, right, middle, scroll up, scroll down and the two additional buttons.
Scroll Wheel
Clockwise or anticlockwise rotation of the outer ring of the trackpad simulates functionality of a scroll wheel, click wheel etc.
Joystick Mouse
Converts analogue stick movements into mouse movements. A great solution for some older games that support controller but may have odd sections where a mouse is required. If you happen to have a traditional gamepad, this can be a rough solution for using the mouse. There are many settings to play with should you want higher or lower base sensitivity. Also keep in mind that Steam will automatically use this mode for some games that have launchers where a controller can not normally be used.
Mouse
The biggest use for the Steam Controller is to solve providing velocity based movement - something that most PC games rely on or require from you to stay competitive / even find a game playable. The haptic feedback and trackpad simulate a trackball mouse allowing for velocity based control. The sensation is of an actual ball in the controller, with a simulated size, mass, momentum etc. Friction can be adjusted so that flicks take longer to decay. As with any trackball, returning your thumb to the pad will immediately stop your turn. This solution compensates for the lack of surface area and produces excellent results with practice. Below shows quick 180s possible with the trackball simulation at a low sensitivity.
Mouse & Motion Control (gyro / accelerometer)
Gyros can also be used and customised in many ways to provide further modulation of velocity based control. A popular use case is to have higher sensitivity on the trackpads and lower sensitivity on the gyros.Here is an example video of motion controls set in such a way for MGS V where the motion controls activate only when the thumb is on the right trackpad.
Mouse-Like Joystick
For the vast majority of PC players who want to keep velocity based aim rather than that of an analogue stick, this option communicates with the game in such a way as to make trackpad movements translate into analogue stick outputs that behave as a mouse would - velocity based. There are limits to this approach. You must make sure the game's camera / right joystick sensitivities are at their maximum. You will also need to compensate for any deadzone added by the game. There are a myriad of options here to do this and thankfully many cunning members of the community have got configs ready to go so you won't have to do too much leg work.
Mouse Regions
In games that have specific areas of the screen you may want to jump to and use the mouse frequently, Mouse Regions are the solution. These are great for old CRPGs and RTS where you may want to make quick jumps. The below image for KOTOR, shows a visualisation of how I am using mouse regions to easily access the on screen menus rather than use lots of hotkeys. The blue circles are the custom area I mapped the mouse region on each pad:
There are many more tricks you can do utilising different button combinations. The below example resolves point and click movement, by creating a mouse region based that reacts based on analogue stick movement:
Mouse Region Demonstration
Touch Menus
Touch Menus, as shown above are a way of changing the trackpads into a touchable hotkey system. This is very useful for games that have a lot of key shortcuts. You can customise these to your hearts content using all manner of symbols / images / colours. This is limited to about 16 hotkeys per menu. The menu is an overlay and will show a representation of your thumb if you like. If you choose to memorise the menu, you can press specific locations and not see the menu.
Radial Menus
Turn the trackpad into a circular menu. The size of this menu can be customised and supports upwards of 20 hotkeys per menu. Again, there are many options to customise this how you want, change it's size location and usage. The menu enlarges the icon you are currently selecting. You can also simply click there area you need if choose to memorise it. Here is an example from Elite Dangerous:
Directional Pad / Button Pad
Splits the trackpad into multiple segments, or in the case of the dpad can support different layouts to suit taste. Cross-Gate, more closely matches the indentations already on the pad rather than segmented slices
You can choose if the dpad needs to be pressed to activate or touched, change the dead zone to suit the activity. A very small dead zone can allow for rocking of the thumb to activate directions. Here is a video with impressions of the dpad functionality in some platformers
Joystick Move / Joystick Camera
Movement emulates a stick on touch pads. The origin can be central as a traditional stick or dynamic, where the origin begins where you start movement.
Keyboard Typing
There is also an on screen keyboard solution integrated into BPM that can be called at any time, either in game, via the overlay or while web browsing. It splits the keys over the two trackpads and ghosts your thumb positions. The key positions are absolute and the pads need to be clicked to type, making it a similar experience to texting on a smart phone but with some added feedback.
Steam Chords
Steam chords are slightly different to the above features. Steam Chords are functions that are persistent regardless of whether you are in game, using particular bindings or out of game (so long as Steam in open). Chords all use the Steam Guide button in combination with another button to trigger a function. By default, most of these functions are for utility, such as screenshots, powering off the controller, opening the keyboard etc:
A key feature of the Steam Input Configurator is the ability for sharing controller configurations per application, whether these are Steam games or non-Steam games, and regardless of the type of controller.
- Recommended - In this section you can find the developers preferred solutions. This can vary from full native support via SCAPI or config sets created by the developers. For older games there may be no recommendation as the developer hasn't defined one
Native Steam Input support utilises actions rather than buttons. These can be utilised for any kind of input you want. Typically a config will be split into action sets - a config that is specific to a scenario, eg when you are in a menu, when driving etc. These are developer defined and often have unique actions included. As an example here is what Okami's Native support looks like:
As an example of customisation, you can change anything you want that the developer may not have considered. In the above example, I have set mouse input to the right pad so all camera controls behave as a mouse would with velocity based movement. Additionally, I altered the Celestial Brush to be motion controlled - which is awesome!
- Personal - Here you can find any configs you have made and saved for an application
- Your Friends - Here you'll find any configs created by Steam friends
- Community - Links to all publicly exported configs from the Steam Community. You can sort these by votes or collective playtime and filter by controller types. You can also preview each binding to understand any minor changes someone made.
- Your Other Games - Any configs that you saved for other applications can be found here. This is very useful if you like something you made previously and want to make some smaller modifications
- Preset Templates - If you want to start from scratch creating some bindings, the Steam Input Configurator has several different preset templates. Depending on the type of controller you have and the features it can utilise. Below are specific to the Steam Controller's features:
Whether you want to come up with a scheme from scratch or want to build upon one of the community bindings or templates, you can enter the game options for a game and head to "configure controller". There are so many options and permutations that I can't possibly go into much depth, so here are some choice features that are quite powerful
Activators
Any button can have activators applied to make it multi-functional or to only activate when a certain style of press is used.
This includes regular press / double press / long press / start press / release press / chorded press.
There is a lot of depth here including all manner of combinations, timings and adding multiple per button. There are also options for frequency of input upon a type of press, whether these are interuptable, toggles etc.
Mode Switching
Holding a button will change the controller bindings to a completely different set. This can be for just a specific set of buttons. A fun lazy example I have used previously is having each grip button (which are already set to specific functions) also apply touch menus to each trackpad only when held:
Action Sets
Similar to mode switching, except this lets you activate an entirely new set of controls for the entire controller at the press of either a button, combination, or any other arrangement of activators. A great example is having driving controls activate when only when you use a specific combination or just the button to get into / out of a vehicle. Using this option will start you off with a blank controller config to create.
An awesome option here is choosing what activates the action set. For example, some games will bring up a mouse cursor, but are otherwise controller centric. You can actually trigger an action set only when a mouse cursor appears. This is an excellent option for games like Shadow of Mordor, where you can have the flexibility and speed of both input types.
Action Layers
As above, except this time consider it similar to a photoshop layer. The previous Action Set / Config you selected will be recreated, and you can then modify the layer. This opens a wealth of options. An excellent usage can be in older CRPGs / RTS games where different button combinations can create different mouse regions so you can glide through inventory / setting menus / build queues / map / path finding
Outer Ring Binding
Set a touchpad's outer ring to a perform a different action / modifier etc, set turbo functionality on hold for rapid presses when held in one are, change the repeat interval and rate of the turbo. For example this could be useful for sprinting without having to move from the trackpads
Analogue Joystick / Trigger Response Curve
Adjust how the variance in the action of the stick or trigger changes dependant on the distance travelled. For the triggers there are also multiple different styles to suit the type of activation you want, such as hipfire settings for light quick activation to aid burst fire accuracy in some games.
Mouse-Like Joystick Options
Again, there are a ridiculous amount of options hidden in the additional options section of this input type. A recent addition is "Enhance Small Movement Precision". In some games when using this simulated mouse setup, you may still not quite have the accuracy you need unless you go for extreme sensitivity, which may get jittery. This option helps curtail that. I love using this in games like FFXV to get as close to mouse input as possible, while utilising gamepad controls so I can simultaneously use analogue movement systems.
Dpad
Change whether the pad needs to be pressed to activate or touched, change the dead zone to suit the activity. A very small dead zone can allow for rocking of the thumb to activate directions. Vary haptic feedback to suit taste. There are also different layout configurations to suit taste and situation, including Cross-gate that more closely matches the indentations of the controller.
Mouse Customisation
There's a lot of mouse customisation to suit a whole lot of scenarios. A particularly useful option is the trackball friction. Doom's developer config demonstrates the utility of this option. Light flicks can be utilised for longer tracking of enemies or simply looking around, but this can also provide excellent freedom to make extremely quick flick turns, while maintain more reasonable sensitivity for mouse aim overall.
Triggers
Style of trigger can be changed to suit actions required. For example it is possible to have aim, fire and hip fire, all bound to a single trigger but activated based on different types of action
- Useful Addition Tools
Great OP. A few tools that might come in handy:
- GloSC - This will allow you to use the Steam Controller with just about anything, including UWP games.
- OSOL- (Origin Steam Overlay Launcher) - An easy way to ensure that games with launchers will work with the Steam Overlay. It will also shut down the launcher when you are done with the game. Uplay tip: add upc.exe when it asks for the launcher.
- Steam Controller VSC View - Display your inputs (including trackpad swipes) for streaming and video recording. Tip: Select Theme first, then select controller.
- Dual analogue sticks work for everything though. If it ain't broke don't fix it, right?
Dual analogue sticks render entire genres of PC games unplayable, and others performing abysmally and being unenjoyable to play compared to mouse wielding players. The hope for the Steam Controller is having a solution for comfortably playing these PC games. This means playing them competently when a mouse and keyboard is not convenient, while still being able to function well for standard controller centric games. Many PC games rely heavily on 1:1 velocity based movement that analogue sticks cannot provide.
- All Console / PC / Platform Warring / Thread Shitting
02-May-2018 - Switch Pro Controller Support - Now in Beta
Last edited: