Currently there's no way of knowing which key does what in some cases
Let's use the "MoveForward" bind as reference; this bind is responsible for 2 different actions (move forward, move backward), what differentiate these actions is the scale of the bind (1.0 for forward, -1.0 for backward)
We should have a way to know the scale associated to the bind in
Input.GetMappedKeys
cause the order of the keys in the table returned by this function depend of the name of the key
E.g: if we bind "move forward" to "A", and "move backward" to "B",
Input.GetMappedKeys("MoveForward")
will return
{[1] = "A", [2] = "B"}
, but in case we bind forward to "B" and backward to "A" it will still return the same table, so we have no way of knowing which key does what
Solutions to this would be either:
  • Return the scale of the key in
    Input.GetMappedKeys
    to have a table formatted as
    {[1] = {key = "A", scale = 1.0}, [2] = {key = "B", scale = -1.0}}
or
  • Sort the table relatively to the keybind scale instead of the name of the key used on the bind, so the order will always stay the same no matter the name of the keys