Learning

Every action,
explained with its editor

What an input does is a list of actions. Here is how they run, how modes and modifiers change them, and what each of the 23 actions does.

Basics

How actions run

Select an input on the Devices page and its actions are on the right. They run from top to bottom every time the input changes, and each one can pass a changed value on to the next one: a response curve before Map to vJoy, for example. The plus button adds an action. It can also link an existing action, so several inputs share it, or copy one.

  • When it runs. Button actions have three switches: on press, on release, or both. Both follows the button, so a vJoy button is held exactly as long as yours.
  • Containers. Some actions hold other actions: tempo, double tap, condition, split axis and others. Their children are edited inside them.
  • Description. The field above the list names the input; the name also shows on the input's card.
Devices page: the inputs of a stick on the left, the actions of the selected button on the right

Modes

A profile can have several modes, and each mode can give an input different actions. A mode inherits everything from its parent and overrides only what you change in it. Switch modes with the Change mode action or the mode selector in the toolbar.

Modifiers

Name a few buttons as modifiers (M1, M2 and so on): press Add a modifier and then the button on your stick. While a modifier is held, every input that has a layer for it runs that layer's actions instead of its base. One button can do different things with nothing, M1, M2 or M1 plus M2 held. Only the layer of the exact combination runs: the M1 layer does not run while M1 plus M2 is held.

  • Layers are chips above the actions of an input; a dot marks the ones in use. Inputs without layers ignore modifiers.
  • An additive layer runs together with the base instead of replacing it, for example an axis that drives a second output only while M1 is held.
  • A button keeps the layer it was pressed in until it is released, so letting go of the modifier first never leaves anything stuck. Outputs of a layer that stops go back to rest.
  • An axis layer can keep the last value: a trim axis on M1 holds its setting after M1 is released, and the main axis on the base holds its position while M1 is held.
  • Held modifiers light up next to the mode selector; the button of a modifier shows a lock and runs no actions.
Layers Base, M1, M2 and M1 plus M2 above the actions of a button, next to the Modifiers window

Output

Map to vJoy

Sends the value to a virtual joystick: an axis to an axis, a button to a button, a hat to a hat. Pick the vJoy device and its input; a button can be inverted. An axis can also be relative: then the input sets the speed at which the vJoy axis moves, and the axis stays where it is when you let go.

Map to vJoy: vJoy device 1, button 1, not inverted, runs on press and release

Map to keyboard

Presses keys while the input is held: they go down in order and come up in reverse order. Click the field and press the keys to record them. If the input is let go in another mode, the keys still come up.

Map to keyboard with the keys Ctrl and F

Map to mouse

A button clicks a mouse button (left, right, middle, back, forward) or turns the wheel one notch. An axis or a hat moves the cursor instead: set the direction and the speed range; the further the axis is pushed, the faster the cursor moves.

Map to mouse: left button
Map to mouse on an axis: cursor motion with direction and speed

Map to logical device

The Logical device tab is a joystick that only exists inside the profile. Mapping inputs to it lets several physical inputs feed one logical input, whose own actions then do the rest. Logical inputs are added and renamed on that tab.

Map to logical device: logical button 1

Axes

Response curve

Shapes an axis: drag the points of the curve, double click to add one, right click a point to remove it. A right click on empty space inverts the curve (a switch in the settings turns this off). Linear, cubic spline, smooth (no overshoot) and Bézier curves. A cubic spline can swing past its points, turning back or running into the end of the axis; the smooth curve stays between them. Symmetric mirrors your edits through the center; Invert flips the curve. The deadzones below the chart set where the axis does nothing: at both ends and around the center. Put the curve before Map to vJoy, which then sends the shaped value.

Response curve: a cubic spline that is flat around the center, with its points

Split axis

Splits an axis at a point (the center by default) into two halves, and gives each half its own actions; each half is stretched to the full range again. Useful for one axis driving two outputs, like two pedals on a single rudder axis.

Split axis: the lower half to vJoy axis 2, the upper half to vJoy axis 3

Merge axis

Combines two axes into one value: average, minimum, maximum, sum, difference (for two pedals as one rudder), the one deflected most, or the one closer to the center. It runs when either axis moves, so it is bound to both: picking an axis in its editor binds it there and takes it off the axis it no longer reads, and linking a new merge to another axis makes that its second axis. A merge reads two axes, so it cannot be linked to a third one.

Merge axis with its two axes and the operation

Dual axis deadzone

A round deadzone for two axes of one stick (X and Y), instead of a square one per axis: the stick has to leave a circle of the inner size before either axis moves. Each axis then goes to its own list of actions.

Dual axis deadzone: inner and outer size, the two axes and their outputs

Axis delta

Turns movement into button presses: every time the axis has moved by the threshold, it presses the actions of that direction once. Good for a rotary or a slider that should step something up and down.

Axis delta: moving up presses vJoy button 20, moving down vJoy button 21

Buttons and hats

Tempo

A short press and a long press do different things. Set the time that counts as long, and whether the long action starts as soon as that time has passed or when you let go.

Tempo: a tap presses vJoy button 2, holding changes the mode

Double tap

A single press and a quick double press do different things. Exclusive waits to see if a second press comes, so a double press runs only the double actions. Combined runs the single actions at once and adds the double ones when the second press comes.

Double tap: single press to vJoy button 3, double press to vJoy button 4

Smart toggle

A quick press switches its actions on until the next press; holding the button longer works like a normal button and lets go with it.

Smart toggle with vJoy button 5 inside

Chain

Every press runs the next step: first press step 1, second press step 2, and around again. With a timeout, a pause longer than that starts again from step 1.

Chain with three steps, each pressing a different vJoy button

Macro

Plays a sequence of steps: keys, mouse buttons and motion, vJoy buttons, axes and hats, and pauses. It can run once, a number of times, while the button is held, or until the next press.

Macro: Ctrl and F down, a pause, F and Ctrl up, then vJoy button 9

Hat buttons

Makes a hat four (or eight) buttons, one per direction, plus one for the center. Each direction gets its own actions; with four buttons, diagonals press none.

Hat buttons: North, East, South, West and Center

Condition

Runs one list of actions when its conditions hold and another when they don't. A condition can look at a button, axis or hat of any controller, at keyboard keys, at the input itself or at what was last sent to vJoy; all or any of them has to hold. A button keeps the branch it was pressed in until it is released.

Condition: if button 3 of the right stick is held, vJoy button 10, otherwise vJoy button 11

Profile

Change mode

Switches the profile's mode: to a given mode, back to the previous one, back through all previous ones, to the next one of a cycle, or only while the button is held (Temporary).

Change mode to the Alternate mode

Pause and resume

Pauses the running profile, resumes it, or toggles between the two. While paused, only inputs with this action (and Load profile) still work.

Pause and resume: toggle

Load profile

Opens another profile and starts it, asking first if the current one has unsaved changes.

Load profile with the path of the second profile

Other

Play sound

Plays a sound file (wav, mp3, ogg or flac) at the set volume; the ▶ button plays it right away.

Play sound: a wav file and its volume

Text to speech

Speaks a text with a voice of the system. ${current_mode} becomes the name of the active mode. Speed, volume and pitch can be set; the new text can wait for the current one or interrupt it.

Text to speech saying the mode name

Run command

Starts a program, with arguments if needed.

Run command: notepad.exe

Description

A note that does nothing when the input is used: what this input is for, for you and whoever uses the profile next.

A description note above a Map to vJoy action