Begin Boolean Compare : [LandingPadVariable] Equals False
Set Boolean [LandingPadVariable] to True
Press Space key and hold for 3 seconds and release
Play sound, '{VA_SOUNDS}\hcspack-VEGA\Characters\Referencing\Prepare for takeoff.wav'
Jump to Marker: JumptoFlightMode
Else
Set Boolean [LandingPadVariable] to False
Press N key and hold for 0.25 seconds and release
Pause 0.25 seconds
Press N key and hold for 0.25 seconds and release
End Condition
Marker: JumptoFlightMode
Is this the full action list? If so, that jump appears to be redundant. If the first branch on a condition executes, the second branch will not, so execution would automatically continue where you've placed the jump marker after "Prepare for takeoff.wav" starts playing.
Press N key and hold for 0.05 seconds and release THIS NOW NEEDS TO BE "Double Tap" it plays the following:
Begin Boolean Compare : [Flight Mode] Does Not Equal True
Set Boolean [Flight Mode] to True
Execute command, 'SF Flight Mode' (by name) (and wait until it completes)
Else
Set Boolean [Flight Mode] to False
Execute command, 'SF Landing Mode' (by name) (and wait until it completes)
End Condition
Does this look right or would the two Boolean Compares break the idea I'm going for?
Can you clarify what you expect should happen?
With the snippets you have here, pressing the first time would execute the command "SF Flight Mode", pressing the second time executes the command "SF Landing Mode", and pressing the third time again executes the command "SF Flight Mode", and so on, alternating between both commands with each button press.
If you want to detect double presses within VoiceAttack itself, make a command triggered by your button press containing something like the following:
Begin Text Compare : [{EXP:({DATETICKS} - {DEC:PressedLast}) <= 10000000}] Equals '1'
Begin Small Integer Compare : [Pressed] Is Less Than 1
Set small int (condition) [Pressed] value as incremented by 1
Else If Small Integer Compare : [Pressed] Equals 1
Write '[Purple] Double press detected' to log
End Condition
Else
Set small int (condition) [Pressed] value to 1
End Condition
Set decimal [PressedLast] value to the converted value of {DATETICKS}
It's a little more complex than it needs to be, as it was originally a triple-tap instead, but you can swap out the small int for a bool if you want.
10000000 ticks should equate to 1000ms, or one second; You can lower this value if you want to filter out accidental double presses.