- 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
- 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.
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.
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
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.
The pause is basically preventing Xpadder from switching back when you release the button (as Xpadder would normally do with while held).
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
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:
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.
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 ) 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
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
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
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.
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
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.
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
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.
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.
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
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
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:
For a hold assignment:
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.
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.