Skip to content
hifihedgehog edited this page Mar 19, 2026 · 36 revisions

Macros

Macros trigger sequences of actions from controller inputs — button combos, stick deflection, D-pad directions, or no trigger at all. Actions include button presses, keystrokes, mouse control, delays, volume changes, and axis overrides. Configure macros per virtual controller slot on the Macros tab.

Macros


Creating a Macro

  1. Open a virtual controller slot and switch to the Macros tab.
  2. Click Add.
  3. Name the macro (e.g., "Volume Knob", "Turbo Fire", "Mouse Aim").
  4. Set up a trigger — the input combination that activates it.
  5. Add actions — the steps that execute when it fires.
  6. Configure fire mode, repeat, and other options.

Each macro has an enable checkbox. Disabled macros stay in your settings but do not fire.


Trigger Setup

A trigger defines which controller inputs activate the macro. Triggers combine buttons, axes (sticks/triggers), and D-pad directions — all must be active simultaneously for the macro to fire.

Trigger Source

Choose where to capture the trigger before recording:

Source Reads From Best For
Output Controller The virtual controller's mapped output (standard gamepad labels: A, B, X, Y, LB, etc.) Most setups — works regardless of which physical device is connected
Input Device Raw inputs directly from a physical controller Device-specific buttons with no standard mapping (DualSense touchpad click, DS3 pressure buttons, flight stick extras)

Recording a Trigger

  1. Click Record Trigger.
  2. Press and hold the desired button(s) on your controller.
  3. Deflect a stick or pull a trigger past the threshold to add an axis trigger.
  4. Press a D-pad direction to add a directional trigger.
  5. Click Stop when all desired inputs appear in the live display.

Trigger Components

Mix and match these three components in one trigger. All must be satisfied simultaneously.

Component Behavior
Buttons Most common. Recording while holding LB + A creates a two-button combo — both must be pressed to activate.
Axes Activates when a stick or trigger exceeds a threshold (e.g., "Left Trigger > 50%"). Supports a direction filter: Any (default), Positive (stick right/up, trigger pressed), or Negative (stick left/down). Useful for separate macros on left-stick-left vs. left-stick-right.
D-pad / POV Activates when the hat switch matches a specific direction. Checks a 45° sector around the recorded direction, so "Up" also catches slight diagonals near up.

Combined example: "LB + Right Stick X (Positive) + D-pad Up" requires all three — LB held, right stick pushed right past threshold, and D-pad pressed up.

Axis Trigger Threshold

When a trigger includes an axis, a threshold slider appears (1–100%, default 50%). The axis must be deflected past this percentage for the trigger to register.

  • Low threshold (e.g., 10%) — very sensitive; slight stick movement activates it
  • High threshold (e.g., 90%) — requires near-full deflection
  • With a direction filter (Positive/Negative), the threshold applies within that half of the axis range

Fire Modes

Fire mode controls when and how often the macro fires relative to the trigger:

Mode Fires Best For
On Press Once, the moment the trigger combo activates Toggle actions, one-shot commands, single keystrokes
On Release Once, when the trigger combo is released after activation Actions after a hold-and-release (e.g., charged shot release)
While Held Every frame, as long as the trigger combo is held Turbo fire, continuous mouse movement, real-time volume control
Always Every frame, whenever the virtual controller is active — no trigger needed Stick-to-mouse mapping, permanent volume knobs. Hides trigger recording controls.

Actions

Actions execute in order from top to bottom when the macro fires.

Action Types

Button Press / Button Release

Presses or releases a virtual controller button. Button Press has a duration (ms) — the button is held for that time, then auto-releases.

  • Button names match the output type: Xbox 360 (A, B, X, Y, LB, RB, Back, Start, LS, RS, Guide, D-pad), DualShock 4 (Cross, Circle, Square, Triangle, L1, R1, Share, Options, L3, R3, PS, Touchpad), or numbered buttons for DirectInput Custom presets.
  • Select multiple buttons to press/release simultaneously.

Key Press / Key Release

Sends a keyboard keystroke to Windows, indistinguishable from a real keyboard. Key Press has a duration (ms).

  • Key combos supported: multi-key sequences like Ctrl+Alt+Delete or Ctrl+C. Keys press in order and release in reverse.
  • Select keys from the dropdown or type the combo string directly.

Delay

Pauses the action sequence for a specified number of milliseconds. Presses or releases nothing — just waits.

Axis Set

Sets a virtual controller axis to a specific value, directly overriding the axis output.

Axis Type Range
Stick axes (LX, LY, RX, RY) −32768 to 32767 (center = 0)
Trigger axes (LT, RT) 0 to 65535 (0 = released, 65535 = fully pressed)

System Volume

Maps a controller axis to Windows master volume (0–100%). Updates every frame for smooth, analog control.

  • Axis — which axis drives the volume (e.g., Left Trigger, Right Stick Y)
  • Invert axis — reverses direction (release trigger = louder)
  • Show volume OSD — displays the Windows volume flyout overlay (enabled by default)
  • Volume Limit — caps the maximum volume the macro can reach (see Volume Limit)

App Volume

Controls a specific application's volume in the Windows audio mixer, independent of master volume.

  • Process name — enter the app name (e.g., "spotify", "firefox", "Discord"). An auto-suggest dropdown lists all apps currently producing audio.
  • All other options match System Volume: axis source, invert, volume limit.

Mouse Move

Maps a controller axis to continuous mouse cursor movement, updated every frame.

  • Axis — stick axes produce bidirectional movement; trigger axes produce unidirectional movement
  • Sensitivity (1–100) — pixels moved per frame at full deflection. Start around 10–15 and adjust.
  • PadForge maps X axes to horizontal and Y axes to vertical movement automatically.
  • Sub-pixel accumulation ensures smooth, precise movement at low sensitivity values.

Mouse Button Press / Mouse Button Release

Presses or releases a mouse button. Mouse Button Press has a duration (ms) and auto-releases.

Button Function
Left Standard click
Right Right-click / context menu
Middle Scroll wheel click
X1 (Back) Browser/app back
X2 (Forward) Browser/app forward

Mouse Scroll

Maps a controller axis to continuous scroll wheel movement, updated every frame.

  • Sensitivity — scroll speed (units per frame at full deflection)
  • Works with stick Y axes for bidirectional scrolling or triggers for one-direction scrolling

Volume Limit

Both System Volume and App Volume support a Volume Limit slider (1–100%). This caps the maximum volume regardless of axis position. Shown in the action list as "(max N%)".

Full trigger pull normally reaches 100% — which can be painfully loud. A limit of 30% means full pull only reaches 30%.

Axis Source — Output Controller vs. Input Device

Continuous actions that read an axis (System Volume, App Volume, Mouse Move, Mouse Scroll) let you choose the axis value source:

Source Description
Output Controller (default) Reads from the virtual controller's combined, mapped output — the same value the game sees. Reflects your mappings (deadzone, range, inversion). Works regardless of which physical device is connected.
Input Device Reads raw input directly from a specific physical controller. Pick the device and axis index from dropdowns.

Use Input Device when:

  • The axis is not mapped to the virtual controller (e.g., a flight stick throttle lever for volume)
  • You need to dedicate a specific device's axis to the action
  • You want raw, unprocessed axis values without mapping transformations

Axis Options

Two optional controls appear on volume and mouse actions:

  • Invert axis — reverses axis direction. For volume: releasing the trigger raises volume. For mouse: reverses cursor direction.
  • Show volume OSD — toggles the Windows volume flyout (enabled by default, System Volume only). Updates at ~5 Hz to avoid overlay spam.

Both settings persist across restarts.

Building an Action Sequence

  1. Click Add Action.
  2. Choose the action type from the dropdown.
  3. Configure the action (button, key, delay, etc.).
  4. Add more actions as needed — the sequence executes top to bottom.
  5. Click the delete button to remove an action.

Example — Quick melee combo:

  1. Button Press: Y (50ms)
  2. Delay: 100ms
  3. Button Press: B (50ms)

Example — Stick-to-mouse aiming (Always mode):

  1. Mouse Move: Right Stick X, sensitivity 15
  2. Mouse Move: Right Stick Y, sensitivity 15

Repeat Modes

Mode Behavior Use Case
Once Runs the action sequence one time One-shot commands, toggle actions, single key presses
Fixed Count Repeats a set number of times (e.g., 3) Tapping a button exactly N times for a specific combo
Until Release Repeats continuously until the trigger is released (requires While Held fire mode) Turbo fire, rapid mashing, continuous loops

Fixed Count and Until Release support a Repeat Delay (ms) — a pause between each repetition that controls loop speed.

Example — Turbo fire: Fire mode = While Held, repeat = Until Release, action = Button Press A (50ms), repeat delay = 50ms. Hold the trigger and A mashes roughly every 100ms (~10 presses/second).


Consume Trigger Buttons

When enabled (the default), trigger inputs are removed from the virtual controller output so the game does not see them. This prevents the game from receiving both the trigger presses and the macro output.

Disable to let trigger inputs pass through to the game alongside macro actions.

Example: Trigger = LB + RB with Consume on — the game never sees LB or RB, only the macro output. With Consume off — the game sees LB + RB and the macro output.

Note: Consumption applies only to button triggers on the virtual controller output. Raw device button triggers (Input Device source) are not part of the combined gamepad state and cannot be consumed.


Continuous vs. Sequential Actions

Type Actions Behavior
Sequential Button Press/Release, Key Press/Release, Delay, Axis Set, Mouse Button Press/Release Execute one at a time, in order, top to bottom
Continuous System Volume, App Volume, Mouse Move, Mouse Scroll Run every frame, all in parallel — do not block each other or sequential actions

Mix both types freely. A macro with two Mouse Move actions and a Button Press runs both mouse movements simultaneously while the button press executes in sequence alongside them.


Common Recipes

1. Left Trigger as System Volume Knob

  • Fire mode: Always
  • Actions: System Volume — Left Trigger axis, Volume Limit 50%, Show volume OSD on
  • Notes: Always mode runs continuously with no button press needed. Volume Limit prevents accidentally blasting audio.

2. Right Stick as Mouse Cursor

  • Fire mode: Always
  • Actions:
    1. Mouse Move: Right Stick X, sensitivity 15
    2. Mouse Move: Right Stick Y, sensitivity 15
  • Notes: Both actions run in parallel every frame. Adjust sensitivity — lower for precision, higher for speed. Pair with mouse button macros below.

3. Bumpers as Mouse Clicks

Pair with the mouse cursor recipe above for full mouse control.

Macro Fire Mode Trigger Action
Left Click On Press LB Mouse Button Press: Left (50ms)
Right Click On Press RB Mouse Button Press: Right (50ms)

4. Turbo Fire (Rapid Mash)

  • Fire mode: While Held
  • Trigger: Right Trigger axis (threshold 50%)
  • Repeat: Until Release, delay 50ms
  • Actions: Button Press: A (30ms)
  • Notes: While trigger is held past 50%, A presses every ~80ms (30ms press + 50ms delay). Release to stop.

5. Per-App Music Volume

  • Fire mode: While Held
  • Trigger: LB
  • Consume trigger buttons: On
  • Actions: App Volume — Left Stick Y axis, process "Spotify", Volume Limit 80%
  • Notes: Hold LB and move left stick up/down to adjust Spotify's volume (0–80%). The game never sees LB. Volume stays where you leave it on release.

6. Quick Chat Combo

  • Fire mode: On Press
  • Trigger: D-pad Down + A
  • Actions:
    1. Key Press: T (50ms) — opens chat
    2. Delay: 100ms
    3. Key Press: G (50ms)
    4. Delay: 50ms
    5. Key Press: G (50ms)
    6. Delay: 50ms
    7. Key Press: Return (50ms) — sends message
  • Notes: Entire sequence fires once per button press. Adjust delays if the game needs more time between keystrokes.

DirectInput Custom Button Support

When a slot uses DirectInput with the Custom preset, macros support up to 128 buttons. Trigger recording and button action lists expand dynamically based on the ButtonCount setting.

Xbox 360, DualShock 4, and DirectInput gamepad presets use standard gamepad button names.


Tips

  • Keep delays realistic. Very short delays (under 10ms) may not register in some games. Start at 50ms and reduce.
  • Test macros in-game. Timing may need adjustment for specific titles.
  • Use Consume trigger buttons to prevent the game from seeing both the trigger press and macro output.
  • Use Always mode for macros that run continuously without any button press — stick-to-mouse, volume knobs.
  • Combine trigger types (button + stick deflection) to reduce accidental activation.
  • Multiple continuous actions in one macro all run in parallel. Two Mouse Move actions (X and Y) give full 2D cursor control.
  • Use Volume Limit to protect your ears. A limit of 30–50% is a good starting point.
  • Mouse sensitivity: Start at 10–15 for cursor movement, 3–5 for scrolling.
  • Profile-aware macros: Macros save per-profile — different games get different macro setups via Profiles.

Related Pages

Clone this wiki locally