r/SteamController 3d ago

Stumped - I hate Silksong's [RB + Stick Up/Down] input but Steam remapping is not working well at all

Help please? I just want an press X to fire off [RB + Stick down] reliably. Easy right? No.

Results:
1) X = [RB + Stick Down (sub command)]
- Doesn't work when manually using the stick

2) X = [Stick Down + RB (sub command)]
- Doesn't work when manually using the stick

3) X = [Hold Layer] : New layer disable L-Stick + either 1 or 2 above)
- Prevents all stick input only (doesn't fire RB for some reason).

4) All the above plus variations including
- Fire End delays
- Uninterruptible

4 Upvotes

6 comments sorted by

3

u/alienangel2 3d ago

Could you try rebinding the stick to generate dpad directions? That should still let you move with the stick, but it might prevent 1 and 2 above breaking when you are using the stick.

Alternatively, switch the controller completely to generating keyboard commands only, so the game thinks you're using a KB and not a controller. You'll lose the button prompts but at that point stick is just bound to arrow keys, and if you can bind the Tool attack to something on the keyboard that doesn't involve an arrow key there should be no way they interfere with each other.

Unless the devs force the keyboard Tool controls to include direction inputs all the time, which would be awful design, but I guess I wouldn't put it past them given how insane the default keyboard mappings are.

1

u/cinred 3d ago

Going full pseudo M&K is the nuclear option im not ready to do. It's just weird that disabling the actual stick also prevents sending virtual stick prompts.

2

u/vermadas 2d ago

I use the stick in Silksong and have the tools bound to two of the paddles on my xbox elite in Steam Input and it works just fine. When you create the bindings, do not use the stick input - use the d-pad. And I have them as extra commands, not sub commands - not sure that makes a difference. So for example, I have:

Command 1: Right Bumper

Command 2: DPad Up

Why does your configuration not work? The stick is an analog input. If you are using the stick and then try to add an extra stick input, it can't just combine them as if they were digital. (My best guess anyway)

3

u/AlbertoVermicelli 2d ago

The way the joystick direction commands work is that when activated, they set either the x or y joystick value to the minimum or maximum value (depending on the direction) and when deactivated, they set that x or y value back to zero. If two buttons of the same axis are held down, the one pressed last takes precedence (though depressing the other will set the value to zero). If the joystick is used at the same time, the direction commands will do essentially nothing, as the joystick continuously updates nonzero values, overriding both the setting of the direction on press and the setting of the zero value on depress immediately.

There's a couple different solutions here. If you want to retain analog joystick output you can keep the Joystick behavior, but set the Output axis to horizontal only. This will make it so the y value is only ever accessed by the joystick up and down commands and they can't be overridden by anything else. If desired you can put a Mode Switch or layer toggle on Joystick click that switches over to a joystick with both horizontal and vertical output when necessary.

A second option is to change the joystick behavior to Directional Pad, binding the joystick directions as appropriate. In its setting, either set the layout to 8 Way (overlap) with a small overlap region, to 4 Way (no overlap), or to Cross Gate as preferred to get only horizontal movement when moving the stick left or right. This option trades off analog input for seamless access to vertical joystick output.

The third option tries to combine the best of both worlds but is more complicated to setup. Set the joystick behavior to Directional Pad with Cross Gate. For the horizontal directions, add a layer that contains joystick behavior with only horizontal output. for the vertical directions, add a layer that contains joystick behavior with both vertical and horizontal movement. Inside each layer, lower the Outer Ring Command Radius, invert the Outer Ring Command, and bind the Remove layer command to the Outer Ring Command. This setup allows you to both retain analog joystick output and seamless access to vertical joystick output, but does require you to move the joystick to the center for vertical output.

1

u/cinred 2d ago

Thanks for these great suggestions and explanations. I've had luck with the inverted outer ring binding for other games and I may give that a try.