Set Selector Tricks

Post Reply
Primal Fear
Xpadder Xpert
Posts: 2437
Joined: 09 Feb 2010, 16:41
Location: Germany
Contact:

Set Selector Tricks

Post by Primal Fear »

This topic explains different tweaks, to create more possibilities connected to set selectors. For elementary explanations about sets, read this part of the manual.

  • Modifying the set switching behaviour
While held glitch workaround: Show
If you use multiple while held set selectors in on set you can get stuck in a wrong set.
To see how, download the following example and do the steps explained below.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2012.12.31
    Name=While held glitch demonstration
    Set1TriggerLeftSetSelect=1
    Set1TriggerRightSetSelect=2
    Set2TriggerLeftSetSelect=0
    Set2TriggerRightSetSelect=0
  • 1.Press and hold the right trigger, Xpadder will switch to Set3
    2.Press and hold the left trigger
    3.Release the right trigger, Xpadder will return to Set1 but not switch to Set2
    4.Release the left trigger, Xpadder will switch to Set 2 and stay there
We found two different solutions for that: With both solutions, it's still possible to get stuck if you press two buttons with a set selector in the source set together and want to release them at the same time. It happens that you release the button whose set wasn't active exactly 0.01s after returning to the source, which makes you end up in the set where it leads to. This isn't as bad as with a normal while held as you aren't stuck (can fix that with a simple button press), but it can get pretty annoying if this happens regularly. If that is a likely risk with your profile, check the section below to find out how to make that problem more unlikely, and use this tweak for every set selector.
While held set selector with delay before returning: Show
This is particularly useful if you tend to release a button with a while held set selector to early, so while you are still holding a button that assignment you wanted to trigger in the destination set, so you are also triggering it's assignment in the source set without wanting to do that.

How to setup:
Instead of a normal while held set selector you should use Oke_Doke's while held glitch workaround for that (read section above for that), otherwise you would end up in the destination set if you should be pressing the button with the set selector a second time while this delay it active.
Then you create the following assignment in the destination set using the Advanced Assignment window.
  • Image
The pause can also be replaced with an keyboard key or mouse button, but note that you need place a tap time slot of 0.15s in front for that. You can try if you prefer a pause of 0.20 or 0.25 over my example.

How does it work:
Before returning to to the source set, Xpadder will wait the duration of the pause. So you have a bit time to release the other button too, before it does. You shouldn't really mind the delay while playing, but it makes triggering wrong assignments by far less unlikely.

Problems:
The delay just moves the problem to a moment later. So basically you will still trigger the assignment in the source set unintentionally if you release the button after the pause has expired. But if this should really happen too often, you can still increase the duration of the pause.
Alternative two-way set selector with switching the Set immediately: Show
If you assign a normal two-way set selector it will switch the Set when you have released the button, if you want to have it switched already when press the button you need this solution.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2014.01.01
    Name=alternative two-way
    Set1Button1Slots=RELEASE ZONE 0.01s,PAUSE 10m00.00s
    Set1Button1SetSelect=1
    Set2Button1Slots=RELEASE ZONE 0.01s,PAUSE 10m00.00s
    Set2Button1SetSelect=0
    
How to setup:
Assign a while held set selector to the desired button, then you create the following assignment in Advance Assignment window on this button in both, the source and destination set.
  • Image
How does it work:
The pause is basically preventing Xpadder from switching back when you release the button (as Xpadder would normally do with while held).

Problems:
The way it works is actually the disadvantage to a normal two-way set selector. If this pause should expire, Xpadder will switch back unwanted. 10 minutes may be the maximum time for a pause but you can add as many pauses in a row to multiply these ten minutes. So you can determine how much time you need, means how rarely you will use this set selector and how likely you will put the controller away to make an even longer gaming break without unloading the profile.
Combined two-way and while held set selector via Tap&Hold (to the same set): Show
With that trick you can create a set selector that works as two-way if you only tap the button and as while held when you hold it. It is based on the alternative while held set selector explained above. There is also the additional advantage that you can always be sure to end up in Set1 after having held the button.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2014.01.01
    Name=combined two-way and while held
    Set1Button1Slots=RELEASE ZONE 0.01s,PAUSE 10m00.00s
    Set1Button1TurboRate=2
    Set1Button1SetSelect=1
    Set2Button1Slots=RELEASE ZONE 0.01s,PAUSE 10m00.00s,RELEASE ZONE 0.30s
    Set2Button1TurboRate=2
    Set2Button1SetSelect=0
    
How to setup:
Assign a normal while held set selector to the desired button, you make the following assignments for the button in the Advanced Assignment window in the source and destination set.
  • Source set:
    Image
    Destination set:
    Image
You can also add the additional Release Zone in the source set so the tap&hold also works in the different direction, but them the additional advantage that you can be sure to end up in the source set after having held the button isn't present anymore.

How does it work:
like with the alternative two-way set selector the pause is preventing Xpadder from switching back when you release the button, but this time it only gets triggered when you tap the button.

Problems:
Exactly like with the alternative two-way set selector Xpadder will switch back unwanted if the pause expires. If the ten minutes shouldn't be enough, you can again use many of them in a row.
Distance dependent while held set switching: Show
This one allows Xpadder only to switch the Set if a trigger or analog stick direction (although I didn't thought about a practical use for stick directions yet :roll:) reaches a certain distance.
There are two different ways, one that makes Xpadder only switch the set if the trigger/stick is pushed far enough and one that makes Xpadder switch through different sets depending on how far the trigger/stick is pushed. The first possibility is really good for shooter games, where you may already have the left trigger assigned to switch the set to slow down the mouse emulation speed additionally to moving the sights up, with this you can move the sights up and keep the full speed and lower the sensitivity of the right stick only when you really need it. But note that this cannot be combined with the Anti-Toggle explained here.
My profile contains the first possibility on the left trigger and the second one on the right trigger. Note that my button for moving up the sights is J, as this works better with Xpadders keyboard test or Notpad and you probably can rebind this key in the game for testing purposes. The right trigger, on the other hand, doesn't contain any keyboard assignments and uses only pauses. So basically it's just for switching the sets, but you could use it for the same matter or even the first possibility just for switching the set.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2014.01.01
    Name=Distance dependant set switching
    Set1Stick2UpSlots=Mouse Move Up
    Set1Stick2UpMouseSpeed=82
    Set1Stick2RightSlots=Mouse Move Right
    Set1Stick2RightMouseSpeed=82
    Set1Stick2DownSlots=Mouse Move Down
    Set1Stick2DownMouseSpeed=82
    Set1Stick2LeftSlots=Mouse Move Left
    Set1Stick2LeftMouseSpeed=82
    Set1TriggerLeftSlots=J,RELEASE ZONE 0.01s,TAP TIME 0.01s,J,PAUSE 10m00.00s,DISTANCE ZONE 70%,J
    Set1TriggerLeftToggle=1
    Set1TriggerLeftTurbo=1
    Set1TriggerLeftTurboRate=2
    Set1TriggerLeftSetSelect=1
    Set1TriggerRightSlots=RELEASE ZONE 0.01s,PAUSE 10m00.00s,DISTANCE ZONE 35%
    Set1TriggerRightTurbo=1
    Set1TriggerRightTurboRate=2
    Set1TriggerRightSetSelect=1
    Set2Stick2UpSlots=Mouse Move Up
    Set2Stick2UpMouseSpeed=32
    Set2Stick2RightSlots=Mouse Move Right
    Set2Stick2RightMouseSpeed=32
    Set2Stick2DownSlots=Mouse Move Down
    Set2Stick2DownMouseSpeed=32
    Set2Stick2LeftSlots=Mouse Move Left
    Set2Stick2LeftMouseSpeed=32
    Set2TriggerLeftSlots=J,RELEASE ZONE 0.01s,TAP TIME 0.01s,J,DISTANCE ZONE 70%,TAP TIME 0.02s,J
    Set2TriggerLeftToggle=1
    Set2TriggerLeftTurbo=1
    Set2TriggerLeftTurboRate=2
    Set2TriggerLeftSetSelect=0
    Set2TriggerRightSlots=RELEASE ZONE 0.01s,DISTANCE ZONE 35%,PAUSE 0.02s,DISTANCE ZONE 35%
    Set2TriggerRightTurbo=1
    Set2TriggerRightTurboRate=2
    Set2TriggerRightSetSelect=2
    Set3TriggerRightSlots=RELEASE ZONE 0.01s,DISTANCE ZONE 70%,PAUSE 0.02s,DISTANCE ZONE 30%
    Set3TriggerRightTurbo=1
    Set3TriggerRightTurboRate=2
    Set3TriggerRightSetSelect=3
    Set4TriggerRightSlots=RELEASE ZONE 0.01s,DISTANCE ZONE 100%,PAUSE 0.02s
    Set4TriggerRightTurbo=1
    Set4TriggerRightTurboRate=2
    Set4TriggerRightSetSelect=0
    
How to setup:
For the first way you have to assign a two-way set selector to the desired trigger/stick direction, then you activate the turbo and change the turbo delay in the Advanced Assignment window to 0.02s. Do that (the turbo) in both sets. Then assign to the respective trigger/stick direction what you see below for both sets. Note that you may need to replace the right mouse button, or if you shouldn't want to have any button pressed, to replace the tap time slots with pauses of the same duration.
  • Source set
    Image
    Destination set
    Image
For the second way you assign a one-way set selector to the following set in every set and again a the Turbo that you change to 0.02s in the Advanced assignment window. The last set will get a one way set selector to the first set.
Now you create the following assignments in every set. You can adapt the Distance Zones, what you especially need to do if you want to use less or more sets, but make sure that they match over the sets.
  • First set
    Image
    Second set
    Image
    Third set
    Image
    Fourth set
    Image
How does it work:
The keyboard or mouse assignments respectively the pauses are hindering Xpadder from switching the set, but only if the turbo is triggering them repeatedly. So at a certain distance there is no pause or assignment anymore and Xpadder can switch. With the second way Xpadder will also switch through the sets until it reaches a set that contains a pauses/assignment on the current distance. So if you push the trigger/stick direction further this will always be the next set, but if you release it slightly then Xpadder will still switch forward through the set until it finds the one where it cannot switch anymore.

Problems:
This is based on Oke_Doke's while held glitch workaround and wouldn't work any way other. But that means (as already explained in the respective section) that if you tap the trigger/stick direction for exactly 0.01s, Xpadder will switch the set without switching back. You need to tap the button again to return.Also more likely with the second way, you always need to release the trigger/stick direction carefully like a clutch h of a car. That is necessary to make sure that Xpadder could switch through all sets before you leave the first distance to zero.
Additionally, as always with these long pauses, when you are not pressing the trigger/stick direction then Xpadder will switch the set unwanted if the pause of 10 minutes expires. So you need to tap the trigger/stick direction once, if you should have been not using the controller for more than 10 minutes without unloading the profile. Or alternatively you can also add more such pauses in a row if you like.
Two-Way set switching only by pressing two buttons at the same time: Show
This is for example useful if you see a good reason to have in the AutoProfile feature a default profile that is not empty and you if you want to play games with native controller support without needing to create a new AutoProfile entry for each of these games.
In my profile below you will switch from Set1 to Set2 by tapping Start while holding Back and switch back the other way around by tapping Back while holding Start. I have used Start and Back for my example, simply because you would unlikely press these two button at the same time in a game, but of course this will work with any other pair of buttons.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2014.01.01
    Name=two button set switching
    Set1Button7Toggle=1
    Set1Button7Turbo=1
    Set1Button7TurboRate=2
    Set1Button7SetSelect=7
    Set2Button8Toggle=1
    Set2Button8Turbo=1
    Set2Button8TurboRate=2
    Set2Button8SetSelect=7
    Set8Button7Toggle=1
    Set8Button7SetSelect=0
    Set8Button8Toggle=1
    Set8Button8SetSelect=1
    
How to setup:
First you assign a two-way set selector to Set8 (or any other Set, but basically you need one interims-set) and then assign a Turbo with 0.02s delay to it. Now you go to Set2 and do the same on Start. That's it already.

Addition:
You may also want to combine that with "While held + a tap assignment" to still make use out of Back in Set1 respectively Start in Set2.
  • Set switching plus an assignment on the same button
While held + a tap assignment: Show
With this you can still use a button with a while held set selector for one tap assignment.
The profile contains examples with a simple while held set selector and with both of our while held glitch workarounds explained above. With the simple while held you can get stuck in Set2 if you should tap the button again while the tap assignment is still being executed, but when using a tap time slot for reducing the key tap time to a minimum (like in my example) this gets very unlikely. But if you want to be absolutely sure or if you use more than this one while held set selector in your profile, I would recommend to use my workaround here as Oke_Doke's will get stuck at the other hand when you tap the button too shortly.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2012.12.31
    Name=while held+tap assignment
    Set1Button1Name=Primal's workaround
    Set1Button1Slots=RELEASE ZONE 0.01s,PAUSE 0.02s
    Set1Button1Turbo=1
    Set1Button1TurboRate=2
    Set1Button1SetSelect=1
    Set1Button2Name=Oke_Doke's workaround
    Set1Button2Toggle=1
    Set1Button2Turbo=1
    Set1Button2TurboRate=2
    Set1Button2SetSelect=1
    Set1Button4Name=simple while held
    Set1Button4SetSelect=1
    Set2Button1Slots=RELEASE ZONE 0.01s,TAP TIME 0.02s,A,RELEASE ZONE 0.20s
    Set2Button1SetSelect=0
    Set2Button2Slots=RELEASE ZONE 0.01s,TAP TIME 0.02s,A,RELEASE ZONE 0.20s
    Set2Button2Toggle=1
    Set2Button2SetSelect=0
    Set2Button4Slots=RELEASE ZONE 0.01s,TAP TIME 0.02s,A,RELEASE ZONE 0.20s
    Set2Button4SetSelect=0
    
How to setup:
Assign preferably my while held glitch workaround to the desired button, switch to the destination, open Advanced Assignment window for the button with the set selector and make following assignment.
  • Image
How does it work:
When you tap the button with the set selector, Xpadder will switch to the destination set, perform the tap assignment and go back. Holding the button to use a assignment on any other button in the destination set will not trigger the assignment and only switch the set.

Problems:
Obviously tapping the button interrupts the assignments in the source set (usually Set1). The solution here is to recreate the basic functions (mainly movement) in the destination set and to only assign these buttons differently that are not necessary when using this tap assignment.
While held + a turbo assignment: Show
If you create a turbo assignment on a button with while held set selector in the destination set to have this assignment repeatedly pressed while being in the destination set, you will have the problem that Xpadder will always switch back to Set1 after every time the turbo has been triggering the assignment. This is fixing this behaviour.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2012.12.31
    Set1TriggerLeftToggle=1
    Set1TriggerLeftTurbo=1
    Set1TriggerLeftTurboRate=2
    Set1TriggerLeftSetSelect=1
    Set1TriggerRightToggle=1
    Set1TriggerRightTurbo=1
    Set1TriggerRightTurboRate=2
    Set1TriggerRightSetSelect=2
    Set2TriggerLeftSlots=A,PAUSE 0.01s
    Set2TriggerLeftToggle=1
    Set2TriggerLeftTurbo=1
    Set2TriggerLeftSetSelect=0
    Set3TriggerRightSlots=RELEASE ZONE 0.01s,A,PAUSE 0.00s,B,PAUSE 0.00s,C
    Set3TriggerRightToggle=1
    Set3TriggerRightTurbo=1
    Set3TriggerRightTurboRate=30
    Set3TriggerRightSetSelect=0
    
How to setup:
You need to replace the while held set selector with Oke_Doke's while held glitch workaround. You also need make sure that your assignment is longer than the turbo delay, by placing a pause with the necessary duration behind the assignment in the Advanced Assignment window. Note that that default key press time is 0.10 seconds, so if you didn't use a tap time slot or changed it in the Xpadder settings or the profiles settings. If necessary you can also change the turbo delay (default 0.10s) under "Turbo".
Two-way + a tap or a hold assignment: Show
With this one you can use a two-way set selector together with a tap or a hold assignment on the same button. So you'll either have a tap assignment and can switch the set after holding the button or have an assignment when holding the button and switch the set after tapping it. This cannot be combined with the alternative two-way set selector explained above.
In my example I only use that for the way from Set1 to Set2/Set3, but you can also use that for the way back too.
  • Code: Select all

    ;--- Xpadder Profile Data ---
    DataType=Profile
    Version=2012.12.02
    Set1Button1Name=tap assignment
    Set1Button1Slots=RELEASE ZONE 0.01s,A,PAUSE 10m00.00s,RELEASE ZONE 0.30s
    Set1Button1Toggle=1
    Set1Button1SetSelect=1
    Set1Button2Name=hold assignment
    Set1Button2Slots=HOLD ZONE 0.30s,A,RELEASE ZONE 0.30s,PAUSE 10m00.00s
    Set1Button2Toggle=1
    Set1Button2SetSelect=2
    Set2Button1Toggle=1
    Set2Button1SetSelect=0
    Set3Button2Toggle=1
    Set3Button2SetSelect=0
    
How to setup:
Assign the a two-way set selector to the desired button and open the Advanced Assignment window in the source set for it and make the following assignment.
  • For a tap assignment:
    Image
    For a hold assignment:
    Image
How does it work:
Again like with the alternative two-way set switching, the pause is preventing Xpadder from switching the set when you release the button if it has been triggered. If you don't trigger it, Xpadder can normally switch the set.

Problems:
Again like with the alternative two-way set switching if this pause has expired, Xpadder will switch the set unwanted. And again you can simply add as many pauses in a row to multiply these ten minutes if they shouldn't be enough.
Last edited by Primal Fear on 14 Jun 2014, 17:45, edited 16 times in total.
Reason: changed note that "Distance dependent while held set switching" may not work with Anti-toggle to that it doesn't not work

Darkitow
Posts: 29
Joined: 02 Apr 2013, 17:56

Re: Set Selector Tricks

Post by Darkitow »

Even before you complete the thread, Just gotta say thanks for the effort, even adding a set specific subforum. :) Delete this post if it gets in the way of your post, the important part was that you read it. :D

Primal Fear
Xpadder Xpert
Posts: 2437
Joined: 09 Feb 2010, 16:41
Location: Germany
Contact:

Re: Set Selector Tricks

Post by Primal Fear »

For creating the specific forum you need to thank Jonathan (it would be anyways beyond my permissions).

Darkitow
Posts: 29
Joined: 02 Apr 2013, 17:56

Re: Set Selector Tricks

Post by Darkitow »

Thanks to Jonathan too, of course, I just assumed that the initiative was yours since you've be been the one answering our posts there lately. :lol:

nrcheever
Posts: 6
Joined: 09 Jan 2012, 01:41
Contact:

Re: Set Selector Tricks

Post by nrcheever »

Thank you for providing these examples!

I'm having problems trying to figure out how to do this particular situation:

(1) TAP the Xbox "Y" button for a started "use object" interaction within the default Set 1 (like "use door")

(2) If HOLDING the Xbox "Y" button for 1-2 seconds, then trigger a special interaction ("get into car") *AND* switch to Set 2 (switch to Car driving controls)

I've been trying various combinations in the Advance options. The closest I've gotten is switching instantly to Set 2 with (1) *not wanted* and get it to trigger (2) when held, but then it doesn't switch Sets.

This is probably the most critical element to get this complicated control set working because there are different options while driving vehicles and the interaction button is quick tap for generic use and long-tap for use car (enter car).

nrcheever
Posts: 6
Joined: 09 Jan 2012, 01:41
Contact:

Re: Set Selector Tricks

Post by nrcheever »

I believe I found a solution!

I can tap tap tap tap the "Y" button forever (triggering CTRL) and have it not switch. If I hold for a small bit of time (triggering ALT), it'll then switch SETS.

Image

Post Reply

Return to “Sets”