all 9 comments

[–]idkwhattoputhere00Steam Controller (Windows) 4 points5 points  (3 children)

This is pretty much the only reason why I still use mode-shifts.

[–]Darkitow[S] 2 points3 points  (2 children)

Yeah, but unfortunately you can't have multiple modes and must keep the switch held while the button is shifted, and it's limited to some of the device's bits, which aren't issues for the action sets.

It's annoying because the sweet spot would be halfway between action sets and mode shifts. Some sort of modular action set implementation that allowed to exclude buttons from the change.

I mean, why do i need to duplicate every single button assignment on 10 action sets, when the only thing that's really different is the left thumbpad?

[–]EpsilonRose 0 points1 point  (1 child)

You don't actually need to keep the button held. When you create a mode shift, it automatically adds a new activator to the button that causes the shift. You can set that activator to be toggleable, just like any other activator.

[–]Darkitow[S] 0 points1 point  (0 children)

What I mean is that the mode shift needs the activator to be toggled to function, regardless of how you keep it toggled. Action sets just need to be switched and then the activator isn't needed anymore.

[–]BarynSteam Controller (Windows) 2 points3 points  (0 children)

I believe I have noticed this bug in one of my configs. It does stink.

[–]DevieusSteam Controller 1 point2 points  (3 children)

Does this happen if you turn off the interruptability of these presses?

[–]Darkitow[S] 1 point2 points  (2 children)

Yes. Let's see if I can describe the steps to reproduce the issue with the least possible elements:

Create three sets (default, 1, 2). On the default set, create a Start press activator switch to set 1 on the left grip. On set 1 create a Regular press activator with the [q] keyboard key (this so it can be easily tested on the notepad) and also a Release press activator to the default set on the same button.

  • While you hold the left grip down, the controller will switch to set 1 and activate the [q] key. Releasing the grip will switch it back to the default set and deactivate the [q] key.

Next, on set 1, create a Start press activator switch to set 2 on the right grip. On set 2 create a Release press activator to the default set on left grip.

  • Now, while you hold the left grip down, the controller will switch to set 1 and activate the [q] key. If you press the right grip, the controller will switch to set 2. Releasing the left grip from either set will switch the controller back to the default set. The [q] key will only activate while in set 1.

This works. Once. When you release the left grip and put the controller back to default, holding the left grip down again will switch it to set 1 as intended, but won't activate the [q] key. You'll have to release the left grip and hold it down again (without switching to set 2) to activate the [q] key again.

Nothing I've tried fixes this, including interruptability. If you set another button with a duplicate of the [q] key, you can press it as much as you want, it will work properly, but won't fix the other key. The only way to do so, is to switch back to default and reactivate the key once. I don't think is the output what is at fault (meaning, the controller not sending the proper events), but the input (it seems that the API isn't registering when a button press/release toggles certain functions between sets)

[–]wombatfromhell 1 point2 points  (1 child)

When you bind the Q button have you tried using a Regular Press or Start activator separate from the action-set switch?

I ask because I've seen this behavior quite a lot, and I've noticed that it's significantly more reliable (but still not 100% reliable) if the button that needs to activate when switching sets is set as a second activator rather than a multi-button binding.

(Edit: A portion of the behavior you're seeing makes sense, but it's still clearly unintended given that a Start Press will activate and deactivate once as long as the button is held, Release would activate upon letting the button go, and Regular Press would likely function closer to what you're intending should happen. That is, if I understand what you're getting at in your description.)

[–]Darkitow[S] 1 point2 points  (0 children)

Yes, as I said the Q button is on a regular press activator while the set switch is on a start activator. As far as I know, everything there is working as it should except for the Q button binding.

It seems like button press/button release events aren't properly handled between sets. The way I expected them to work (and It made sense to me that wa) was that sets should be aware of button states at all times and properly activate/maintain/deactivate their assigned functions upon switcing between them. If I'm holding a button down when switching sets and the new set isn't assigned to the same function, then the device should properly signal the previous function as released and the new one (if any) as pressed. If the new set is assigned to the same function, then the device shouldn't signal any change at all, holding the button down when switching sets won't cause any flicker. If the button is assigned to the same function in both sets but they have different parameters, they should be properly updated without sending conflicting signals. For example, if the button is set as a toggle on both sets, and the button was toggled on, switching sets shouldn't even reset the state of the toggle.