Frequently Asked Questions

Topics:

 


Does Rewired support this controller?

Usually, this question is asked about exotic controllers such as 3Dconnexion Space Mouse, Arduino, Oculus Touch, exotic VR controllers, or some other special-purpose controller that requires its own SDK to use. Rewired does not support such controllers directly. Any use of such controller would require you set up the company's SDK and use a Custom Controller to add support for the device. Even this may not work for all devices.

Rewired is not a general-purpose, low-level API for working with any and all HID devices.

See Supported Controllers for more information.

 


Can you/I add support for this controller?

It depends. Not all controllers are candidates for Rewired's automatic controller recognition system. The controller would have to be evaulated for inclusion.

Rewired's controller recognition system relies on information returned by the controller in order to be able to recognize it and load a hardware definition. Many times, the identifying information provided by the device is inadequate or too generic to be relied upon for recognition. This is true of a huge number of generic PC gamepads. The manufacturers of these gamepads create dozens and dozens of different products under a large variety of brands, some even with different button layouts, yet all of these devices provide exactly the same identifying USB/HID information. This makes it impossible to auto-recognize these controllers. If you were to add a controller definition for just one of these controllers, all others that don't match the button layout exactly would report incorrect element names and default mappings in the best case, and would be essentially unusable in the worst case. For these controllers, the only solution is to not provide a controller definition so that they will be treated as Unknown Controller which the user can map manually using Control Mapper or your own custom control remapping system.

See How To's - Creating new controller definitions for more information.

 


Does Rewired support this platform?

See the list of tested platforms here.

 


Where is Rewired's data saved?

In each Rewired Input Manager game object as serialized data. See Input Manager for more details.

 


How do you consume/use an input?

There is no "consume" or "use" concept in Rewired. You cannot change or override the final Action input values because they are set by the hardware events and then calculated based on combined values of all input sources that contribute to that Action.

This question is almost always asked due to the desire to use the input system as part of in-game player state/permission management. For example, you should not think of Rewired's Player.GetButtonDown as a flag denoting "game player is now firing". It should be thought of as a signal of the user's intent entirely separate from the game simulation. GetButtonDown("Fire") is equal to "the user wants to fire". Whether or not the game player is allowed to fire at that moment is a game player state management issue and needs to be handled in your game code.

"User wants to fire" -> If "game player is allowed to fire" -> then "fire".

Using Rewired or any input system as an integral part of game state or permission management is not a correct usage. This way there is no need for something like consuming input and injecting your game state permission management into the input system.

 


My joystick's dead zone is too large/small. How do I change it?

Rewired includes default dead zones for every recognized joystick. They are built into the hardware definition for each joystick and specified per-platform, per-input source. These defaults should not be changed because they will be overwritten when you update Rewired. There is not currently a means of non-destructively overriding default hardware definition settings per-device.

Controller dead zones are very individualized to each physical joystick and can vary due to manufacturing, wear and tear, etc. As such, you should not simply set an extremely large default dead zone if your joystick drifts. Instead, you need to allow your users to set their own dead zone specific to their joystick. Rewired allows you set all kinds of calibration information for joysticks through scripting. See How To's - Calibrating controller axes for more information. You can see this implemented in both the ControlRemappingDemo1 and Control Mapper.

Using Control Mapper in your game will give users the option to remap and calibrate their controllers.

 


Does Rewired support force feedback?

The only form of force feedback currently supported by Rewired is gamepad vibration. Vibration works with certain controllers on certain platforms and input sources.

Currently vibration is only supported on the following controllers and platforms and input sources:

  Windows OSX Linux Windows 8 Store Windows 10 Universal XBox One
Xbox 360 Controller (and compatibles)
  • XInput
  • SDL2*
  • Native
  • SDL2*
Native Native
Xbox One Controller (and compatibles)
  • XInput
    (2 of 4 motors supported)
  • SDL2*
Not tested Native
(2 of 4 motors supported)
Native
(All 4 motors supported)
Native
(All 4 motors supported)
Sony DualShock 4 Raw Input

 

* SDL2 does not support separate motor speed values, so all motors are treated as a single motor.

 


Can I use Rewired on WiiU?

WiiU is not a directly supported platform. In addition, WiiU controllers do not work through UnityEngine.Input so the default fallback mode doesn't work. However, it is possible to support WiiU through the use of Custom Controllers.

 


Can you add joystick auto-recognition for WebGL?

At this time, joysticks on WebGL are only supported via manual user mapping of controls at runtime through the use of a system like Control Mapper.

WebGL controller support is very poor at this time with a huge number of cross-browser bugs and inconsistencies. These inconsistencies even vary across different versions of the same browser on one OS, and across the same versions of the same browser across different OS's. This makes it highly impractical to provide controller auto-recognition for WebGL because it would require code to detect OS, browser, and browser version and require potentially dozens more controller definitions for each controller Rewired supports. Even then, there are many bugs that cannot be fixed which simply make the use of joysticks sub-optimal and would result in a frustrating user experience.

 


Can you give me a quick and simple example of how to handle control remapping?

Remapping controls in Rewired is very complex because of Rewired's Controller Map and Player systems. It is a very powerful system that allows you to do things that simple static input configuration systems could never do, but it comes at the price of making tasks like this very complex. That is why I have provided both a complete working example that is intended for experienced programmers to read and learn the process from and a complete working UI that those without advanced programming skills can use directly in their games. I simply cannot make this topic simple and easy, so I choose not to attempt to write what would end up being an extremely long and complex volume on the process. Documentation on the topic can be found here.

 


Can I get the Rewired source code?

There is no source code licensing option at this time. If having the source code is critical to your project, you should not purchase Rewired.

 


What does "this extension requires one licence per seat" mean?

The EULA terms are defined by the Unity Asset Store EULA. See Appendix I for information on assets purchased through the Unity Asset Store. Specifically Appendix I, section 2.4 outlines terms for all editor extension assets.

Rewired is only sold on the Unity Asset Store and the license is bound by these terms as created and defined by Unity. I do not have legal authority to interpret these terms in any other way except as written and defined by the Unity Asset Store EULA. I cannot provide further clarification of or exceptions to these terms.