Rewired is an advanced input system that completely redefines how you work with input, giving you an unprecedented level of control over one of the most important components of your game.
Website | Documentation | Forum Thread | Free Trial
Native Input
Rewired is not just another Unity input wrapper like other packages. Rewired supports many platforms that Unity supports with extended native support on Windows, OSX, Linux, Windows 10 Universal, WebGL, Xbox One, Xbox Series S/X, PS4, PS5, and Nintendo Switch 1 & 2. Rewired leverages native libraries to access input devices directly, allowing for far more control over input. This makes possible some very powerful features such as full hot-plugging support for joysticks, support for more than 20 buttons per controller, gamepad vibration, and more. Rewired is the only input system available for Unity with native support for all these platforms and the only to offer these advanced features. For other platforms, Rewired utilizes Unity's input system so you still get access to all the other features it provides.
Player-Centric
Rewired features a player-centric input system making it the ideal solution for multi-player games. Controllers are intelligently auto-assigned to players on connect/disconnect, so you don't have to worry about what controllers each player owns. Access input by player instead of controller, so you always get the result you expect regardless of what controllers the player is using.
Controller Maps
Rewired features a powerful controller mapping system that allows you to create highly complex input schemes for any style of game. Map supported controllers by logically named elements instead of cryptic Axis 0, etc. Maps stack so you can create different maps for different game modes and switch between them easily. Create default controller layouts for a variety of controllers and allow the player to customize his own mappings. Save and load maps via XML.
Intelligent Hot-Plugging
Rewired solves all of Unity's hot plugging problems on Windows, OSX, Linux, Windows 10 Universal, WebGL, Xbox One, Xbox Series S/X, PS4, PS5, Switch, and Stadia. (All other supported platforms depend on Unity's hot-plugging support.) No more forcing your players to quit and restart when they change joysticks. No more guessing which controller is which. It just works.
Input Editor
Edit all your inputs from a powerful and easy to use editor. No coding just to add an action like some systems. Edit players, action and map categories, alternate map layouts, joystick, keyboard, mouse, and custom controller maps, input behaviors, and more from one convenient interface.
Cross Platform
Rewired takes the hassle out of cross-platform input. Supported controllers have been mapped for consistency on Windows, Windows 10 Universal, OSX, Linux, iOS, tvOS, Android, Amazon Fire TV, and Webplayers. Rewired also supports PlayStation 4, PlayStation 5, Xbox One, Xbox Series S/X, Switch 1 & 2, Stadia, PSM, WebGL, NVidia Shield, and other Android-based consoles.
Supported Controllers
Rewired supports virtually any USB or Bluetooth controller via user mapping, and provides extended support for many common controllers of all types with more added all the time. Supported controllers are fully mapable by element name and have standardized axis directions.
Control Mapper
Rewired includes a complete, responsive, cross-platform runtime control remapping system. Simply add it to your project and configure it and your players can remap all their controls during the game! Highly configurable with built-in theme and language systems. Includes automatic or customized saving and loading of user data.
Touch Controls
Rewired comes with a set of customizable, on-screen Touch Controls suitable for mobile platforms and built using Unity UI. Use the included joysticks, buttons, touchpad, tilt control, and more directly in your games, or customize them fully to your needs.
More Features
• Get input by polling or use input events.
• Custom Controllers allow any source to be used to drive the controller's element values (for on-screeen touch controllers and more).
• Supports 128+ buttons and 32+ axes per controller on Windows, OSX, and Linux.
• Support for special controller features such as gamepad vibration and DualShock 4 touchpad, lights, and gyro.
• Assign multiple controllers per player.
• Share controllers (like the keyboard) among players with separate maps for each player.
• Enable and disable maps by category for switching between game modes with different controls.
• Create user controller remapping screens with named controller elements, select a named controller from a list, and more.
• Controller element assignment conflict checking functions.
• Controller Templates makes defining maps for similar controllers quick and easy.
• Input Behaviors allow you to create actions that share similar properties without having to duplicate information.
• Double-press/click support with customizable timing.
• Keyboard modifier support with up to 3 simultaneous modifier keys.
• Axis calibration (min, max, zero, deadzone).
• ZERO bytes of memory allocated per-frame during gameplay means no garbage collection overhead.
• Works with many other packages from the Asset Store including:
• UFPS: Ultimate First Person Shooter
• UFPS
• PlayMaker
• Behavior Designer
• Bolt
• Cinemachine
• Third Person Controller
• Dialogue System
• Corgi Engine
• Realistic FPS Prefab
• Inventory Pro
• Motion Controller
• ORK Framework
• Quest System Pro
• Realistic Tank Controller
• Deftly
• Universal Fighting Engine
• UFE2
• Racing Game Starter Kit
• iRDS
• GAC
• Rex Engine
• uSim
• uPlatformer
• Quest Machine
• Rucksack - Multiplayer Inventory System
• Space Combat Kit
• Ultimate Character Controller
• First Person Controller
• UTPS: Ultimate Third Person Shooter
• UFPM: Ultimate First Person Melee
• UTPM: Ultimate Third Person Melee
• So much more!
See the Rewired website for more information.
1.1.62.7:
Changes:
- Windows, Mac, Linux Standalone + Enhanced Device Support: Nintendo Switch Controllers - Added workaround to change the device back to console mode when it is changed to HID mode by an outside process at runtime. This can be caused by Steam or another outside process changing the device to HID mode when a controller is connected at runtime, resulting in the device sending input reports in the wrong format and Rewired being unable to read input from the device.
Bug Fixes:
- Control Mapper: Fixed element name not displayed in replace/remove modal window bug introduced in 1.1.56.0.
1.1.62.6:
Bug Fixes:
- Windows Standalone, Raw Input: Fix possible crash from reading out of bounds memory from Raw Input events in extremely rare cases.
1.1.62.5:
Changes:
- Windows Standalone, Raw Input: Added additional checks to prevent crashes due to reading out of bounds memory if Raw Input event contains illegal dwSize value.
Bug Fixes:
- Windows Standalone, MacOS, Linux, Enhanced Device Support: Prevent possible deadlock when writing output report to devices that use Enhanced Device Support.
1.1.62.4:
Bug Fixes:
- Windows Standalone, Raw Input: Prevent extremely rare IndexOutOfRangeException caused by race condition if a device is connected at the exact instance in between calls to GetRawInputDeviceList when enumerating Raw Input devices.
1.1.62.3:
Modified Controller Definitions:
- Nintendo Switch Pro Controller: Added Android variant with different name and mappings.
1.1.62.2:
Bug Fixes:
- Glyphs Pack: Fixed full binding of Button-type Action bound to button not being displayed (introduced in 1.1.62.0).
1.1.62.1:
Bug Fixes:
- iOS/tvOS: Fixed incorrect Xbox One Controller Right Stick Y mapping broken in version 1.1.60.0.
1.1.62.0:
Changes:
Glyphs pack:
- Added ability to display glyph(s) for two Actions simultaneously to allow displaying single glyph for 2D elements such as sticks and D-Pads.
- Added ability to display glyphs for the individual poles of a full-axis binding.
- Added optional abbreviations of tag attribute values to Unity UI Text Mesh Pro Glyph Helper tags.
- Added ability to sort results by controller element type.
- Added ability to limit results to only the first controller found with matching bindings.
- Added Result Index option to Unity UI Player Controller Element Glyph component.
- Added Compound Element Identifier to Mouse for X and Y axes.
API Changes:
Glyphs pack:
- Added Rewired.Glyphs.Pair struct.
- Added Rewired.Glyphs.ControllerElementGlyphSelectorOptions.useFirstControllerResults property.
- Added Rewired.Glyphs.ControllerElementGlyphSelectorOptions.controllerElementTypeOrder property.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyphBase.Result2DSelectionHandler delegate.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyphBase.actionId2 property.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyphBase.ShowAction2DBindings method.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyphBase.result2dSelectionHandler property.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyphBase.resultIndex property.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyphBase.action1PoleOrder property.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyphBase.action2PoleOrder property.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyph.actionId2 property.
- Added Rewired.Glyphs.UnityUI.UnityUIPlayerControllerElementGlyph.actionName2 property.
- Added Rewired.Glyphs.UnityUI.ControllerElementGlyphBase.ShowGlyphsOrText additive overload.
- Added Rewired.Glyphs.UnityUI.UnityUITextMeshProGlyphHelper.RewiredElementResult2DSelectionHandler delegate.
- Added Rewired.Glyphs.UnityUI.UnityUITextMeshProGlyphHelper.rewiredElementResult2dSelectionHandler property.
Bug Fixes:
- ActionElementMap.TryGetCombinedElementIdentifierName, ActionElementMap.TryGetCombinedElementIdentifierGlyph, and ActionElementMap.TryGetCombinedElementIdentifierFinalGlyphKey now return false if any extraneous ActionElementMaps are included.
- Glyphs pack:
- Fixed possible duplicate results returned by Rewired.Glyphs.GlyphTools.TryGetActionElementMaps.
- Android: Eliminated possible edge case of controller signature mismatch error if multiple Xbox One controllers are used at any time, one with product id of 0x02e0 and others with different product ids. May also occur if Android returns no vendor / product ids when called once, but does the next time.