Skip to content
hifihedgehog edited this page May 5, 2026 · 36 revisions

Macros

Macros trigger action sequences 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. Configured per slot on the Macros tab.

Macros tab showing trigger setup and action list


Creating a Macro

  1. Open a slot and switch to the Macros tab.
  2. Click Add and name the macro.
  3. Set up a trigger. The input combination that activates it.
  4. Add actions. The steps that execute when it fires.
  5. Configure fire mode, repeat, and other options.

Each macro has an enable checkbox. Disabled macros stay in settings but never fire.


Trigger Setup

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 read the trigger before recording:

Source Reads From Best For
Output Controller Virtual controller's mapped output (A, B, X, Y, LB, etc.) Most setups. Device-independent
Input Device Raw physical controller inputs Device-specific buttons outside standard mapping (touchpad click, 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 in one trigger. All must be satisfied simultaneously.

Component Behavior
Buttons Most common. Holding LB + A during recording creates a two-button combo. Both must be pressed.
Axes Fires when a stick or trigger exceeds a threshold (e.g., "Left Trigger > 50%"). Direction filter: Any (default), Positive (right/up/pressed), or Negative (left/down). Allows separate macros for left-stick-left vs. left-stick-right.
D-pad / POV Fires when the hat switch matches a direction. Uses a 45° sector, so "Up" also catches slight diagonals.

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

Axis Trigger Threshold

When a trigger includes an axis, a threshold slider appears (1–100%, default 50%). The axis must exceed this percentage to activate.

  • Low (10%). Slight stick movement fires it
  • High (90%). Requires near-full deflection
  • With a direction filter, the threshold applies within that half of the axis range

Fire Modes

Controls when and how often the macro fires:

Mode Fires Example Use
On Press Once on activation Toggle, one-shot command, single keystroke
On Release Once on trigger release Charged shot release
While Held Every frame while held Turbo fire, continuous mouse, real-time volume
Always Every frame, no trigger needed Stick-to-mouse, permanent volume knob

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). Held that long, then auto-released.

  • Names match the output type: Xbox labels, PlayStation labels, or numbered buttons for Extended Custom profiles.
  • Select multiple buttons to press/release simultaneously.

Key Press / Key Release

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

  • Key combos supported: Ctrl+C, Ctrl+Alt+Delete, etc. Keys press in order, release in reverse.
  • Select from the dropdown or type the combo string directly.

Delay

Pauses the action sequence for a specified number of milliseconds.

Axis Set

Overrides a virtual controller axis to a fixed value.

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

System Volume

Maps a controller axis to Windows master volume (0–100%), updated every frame.

  • Axis. Which axis drives volume (e.g., Left Trigger, Right Stick Y)
  • Invert axis. Reverses direction (release trigger = louder)
  • Show volume OSD. Displays the Windows volume flyout (on by default)
  • Volume Limit. Caps maximum volume (see Volume Limit)

App Volume

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

  • Process name. The target app (e.g., "spotify", "firefox", "Discord"). Auto-suggest lists apps currently producing audio.
  • Other options match System Volume: axis, invert, volume limit.

Mouse Move

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

  • Axis. Sticks give bidirectional movement; triggers give unidirectional
  • Sensitivity (1–100). Pixels per frame at full deflection. Start at 10–15.
  • X axes map to horizontal, Y axes to vertical automatically.
  • Sub-pixel accumulation ensures smooth movement at low sensitivity.

Mouse Button Press / Mouse Button Release

Presses or releases a mouse button. Press has a duration (ms) and auto-releases. Supported: Left, Right, Middle, X1 (Back), X2 (Forward).

Mouse Scroll

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

  • Sensitivity. Scroll units per frame at full deflection
  • Stick Y axes give bidirectional scrolling; triggers give one-direction

Lightbar Color

Pushes an RGB triple as a temporary lightbar override on every Sony pad on the slot. Macro overrides beat both the base lightbar mode and the Input Reactive overlay — game-driven writes still win at packet level. Two hold modes:

  • Reactive. Flash at full intensity on fire, fade linearly to 0 over the configured Fade window. Good for damage flashes or kill confirmations.
  • Sticky. Hold the configured RGB at full intensity until cleared by the next Lightbar Color Clear action or a fresh override. Good for armed / disarmed indicators.

Available on slots that have at least one Sony pad mapped (DualShock 4, DualSense, or DualSense Edge).

Lightbar Color Clear

Releases any active macro lightbar override on the slot, restoring the configured base mode + Input Reactive overlay.

Lightbar Mode Set

Sets the slot's base lightbar mode to a specific value (Static, Rainbow, AudioPulse, etc.). Each Sony pad on the slot renders the new mode using its own per-device configuration (palette, colors, decay). Legacy Input Reactive base values auto-translate to LightbarMode = Off + the corresponding overlay variant.

Lightbar Mode Cycle

Steps through a configured ordered list of base lightbar modes per macro fire. The next fire advances to the next mode in the list, wrapping at the end.

Rumble

Drives the slot's physical device rumble from a macro. Per-motor strength (0–100% each) so a macro can fire one motor in isolation or both together. Two hold modes mirror Lightbar Color:

  • Reactive. Run at full configured strength across the Hold window, then fade linearly to zero across the Fade window. Useful for shoot / hit / confirm pulses.
  • Sticky. Hold at full strength until a Stop Rumble action runs. Useful for armed / engaged states or click-and-hold-style sustain.

Layers over game-driven rumble via max() so user-driven feedback always reaches the motors. Sony slots route through the same dispatcher that drives game rumble (sole-writer model preserved); non-Sony slots take the SDL haptic / rumble path.

Stop Rumble

Releases any active rumble override on the slot, regardless of which motor was driven. Pair with a Sticky Rumble action to give a macro a deliberate way to release the hold.

Volume Limit

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

Full trigger pull normally hits 100%. A limit of 30% caps it there. Protects your ears.

Axis Source. Output Controller vs. Input Device

Continuous actions (System Volume, App Volume, Mouse Move, Mouse Scroll) read an axis value from one of two sources:

Source Description
Output Controller (default) Virtual controller's combined output. Reflects deadzone, range, inversion. Device-independent.
Input Device Raw input from a specific physical controller. Pick device and axis from dropdowns.

Use Input Device when the axis is unmapped (e.g., throttle lever for volume), needs to stay on a specific device, or should bypass mapping transformations.

Axis Options

Two optional controls on volume and mouse actions:

  • Invert axis. Reverses direction. Volume: releasing trigger = louder. Mouse: reverses cursor.
  • Show volume OSD. Toggles the Windows volume flyout (on by default, System Volume only). Updates at ~5 Hz to avoid overlay spam.

Building an Action Sequence

  1. Click Add Action and choose the type.
  2. Configure it (button, key, delay, etc.).
  3. Add more as needed. Executes top to bottom.
  4. Click delete 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 Example Use
Once Runs one time One-shot command, single key press
Fixed Count Repeats N times Tap a button exactly 3 times for a combo
Until Release Loops until trigger released (requires While Held) Turbo fire, rapid mashing

Fixed Count and Until Release support a Repeat Delay (ms) between each repetition.

Example. Turbo fire: While Held + Until Release, Button Press A (50ms), repeat delay 50ms. A mashes every ~100ms (~10/sec) while held.


Consume Trigger Buttons

When enabled (default), trigger buttons are removed from virtual controller output so the game never sees them. Only the macro output reaches the game. Disable to let trigger buttons pass through alongside macro actions.

Example: Trigger = LB + RB, Consume on. Game sees only macro output. Consume off. Game sees LB + RB and macro output.

Note: Consumption applies only to button triggers on Output Controller. Input Device triggers are not part of the combined gamepad state and cannot be consumed.


Continuous vs. Sequential Actions

Type Actions Behavior
Sequential Button/Key/Mouse Button Press/Release, Delay, Axis Set One at a time, top to bottom
Continuous System Volume, App Volume, Mouse Move, Mouse Scroll Every frame, all in parallel

Both types mix freely. Two Mouse Move actions (X + Y) run simultaneously while a Button Press in the same macro executes in sequence alongside them.


Common Recipes

1. Left Trigger as Volume Knob

  • Fire mode: Always
  • Actions: System Volume. Left Trigger axis, Volume Limit 50%, OSD on
  • Notes: Always mode = no trigger needed. Volume Limit prevents accidental blasts.

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 run in parallel every frame. Lower sensitivity = precision, higher = 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: A presses every ~80ms (30ms press + 50ms delay) while trigger exceeds 50%. 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, move left stick up/down to adjust Spotify (0–80%). Game never sees LB. Volume stays where you leave it.

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: Fires once per press. Increase delays if the game needs more time between keystrokes.

Extended Custom Button Support

Extended slots running the Custom profile support up to 128 buttons. Trigger recording and button action lists expand dynamically based on ButtonCount. Xbox, PlayStation, and Extended gamepad-shaped HIDMaestro profiles use standard button names.


Tips

  • Delays under 10ms may not register in some games. Start at 50ms and reduce.
  • Test in-game. Timing needs vary per title.
  • Combine trigger types (button + stick deflection) to reduce accidental activation.
  • Volume Limit 30–50% is a safe starting point for protecting your ears.
  • Mouse sensitivity: 10–15 for cursor, 3–5 for scrolling.
  • Profile-aware: Macros save per-profile. Different games get different setups via Profiles.

Related Pages

Clone this wiki locally