Features

Input recording, macro playback, macro editing including trigger configuration and playback settings.

Record Screen

Overview

ConsoleMacros PX lets you record controller inputs and play them back with configurable triggers. Recorded inputs are saved as macros that can be organized into folders, edited, exported, and shared.

The typical workflow is:

  1. Record controller inputs on the Record Screen.
  2. Save the recording as a named macro.
  3. Manage macros on the Macros Screen — organize into folders, configure triggers, and activate.
  4. Edit macros in the Macro Editor to fine-tune individual inputs, timing, and playback settings.
  5. Play — activate macros and use triggers to start and stop them during live gameplay.

You can also create macros from scratch in the editor without recording, or import macros shared by others.

Using input automation features during competitive online multiplayer gameplay may violate the terms of service of the game or platform and may result in account suspensions or bans. You are responsible for ensuring that your use complies with any applicable terms or policies. See the EULA for full details.

Record Screen

The Record Screen is where you capture controller inputs and play them before saving. It is split into two sections: Record Input Macro (for capturing inputs) and Playback (for playing what you recorded).

Each section has its own start and stop triggers, a play/record button, and a settings icon for configuring options. Below both sections, the current macro status is displayed — the macro name, duration, and a Save button when a recording is ready.

Record Screen while recording, showing the Stop button and the red Recording inputs status Record Screen with a recorded macro ready to save

Recording Inputs

To record, connect a controller to your phone via USB or Bluetooth, then tap the Record button (or use a configured Start Trigger). Inputs from the controller will start being recorded according to the recording options. The status area shows "Recording inputs..." in red while recording is active.

A controller must be connected to your phone before you can start recording. If no controller is detected, you'll see a "Connect a controller" message.

Recording stops when you tap the Stop button, use a configured Stop Trigger, or when the maximum recording duration for your tier is reached — see Limits for details. If you navigate to a different screen or minimize the app, the recording also stops and the macro is saved up to that point. If no inputs are detected during a recording, the recording is discarded and a message is shown.

Each input is saved as an individual macro entry the moment it is received from the controller. The exception is analog sticks — the left and right stick positions are always saved together in a single entry as per the remote play protocol. Every entry is stamped with a high-precision timestamp in the format MM:SS.sssss, where MM is minutes (00–59), SS is seconds (00–59), and sssss is five sub-second digits giving a resolution of 0.01 milliseconds (10 microseconds). The full timestamp range is 00:00.00000 to 59:59.99999, supporting recordings up to 1 hour.

Recording Options

Tap the gear icon next to the Record button to open the Recording Options. These settings control what gets recorded and how recording starts and stops.

Recording Options showing input filters

Input Filters

Each input type can be individually enabled or disabled. Disabled inputs are filtered out during recording so they don't appear in the final macro. For example, you might disable stick recording if you only want to capture button presses.

Recording Options showing notifications

Notifications

You can configure separate notifications for when recording starts and stops, so you get feedback without needing to look at the screen — useful when recording with triggers while focused on gameplay.

Recording Timing

Saving Recordings

When a recording is ready, its name and duration appear at the bottom of the screen. Name are incremented automatically for each recording.

Save Macro dialog showing the macro name field and Save button

A Save button also appears to the right of the macro name. Tap it to open the Save dialog, which shows a message indicating the macro will be saved to the Recorded Macros folder. Enter a name for the macro (up to 40 characters) and tap Save.

The macro's name and input entries are saved locally on the phone. Saved macros appear in the Recorded Macros folder on the Macros Screen. Newly saved macros are always saved with default trigger and playback settings:

Local recordings are stored in memory only, they are lost if you close the app. New recordings will also overwrite any existing recordings on this screen. Save your recorded macro if you want to keep it.

Playback

Record screen Playback section during playback, showing the Macro Start and Macro Stop triggers, 2.0x speed, infinite loop badge, and the Playing macro status

After recording, you can play back the macro using the Play button. During playback, the status area shows "Playing macro..." and the recorded inputs are sent to the console exactly as they were captured. If there is no active console connection, the macro will still play through its duration but inputs are not sent anywhere.

Playback is useful for verifying your recording before saving. You can play it back multiple times, adjust playback options, and re-record if needed. The local recording stays in memory until you record a new macro, or close the app.

Playback Options dialog

Playback Options

Tap the gear icon next to the Play button to open the Playback Options dialog. These settings apply to the current local recording.

Record/Playback Triggers

The Record Screen has four configurable triggers:

Record Input Macro container showing the Record Start and Record Stop triggers and the record button Playback container showing the Macro Start and Macro Stop triggers and the play button
  • Record Start Trigger — Starts recording inputs.
  • Record Stop Trigger — Stops recording inputs.
  • Macro Start Trigger — Starts playing the recorded macro.
  • Macro Stop Trigger — Stops playback.

Each trigger can be enabled or disabled independently using the toggle next to it. Tap the trigger row to open the Trigger Configuration screen where you can choose the trigger action (Single Press, Double Press, Hold, Release, Two-Button Combo, Sound, Image) and the input/sound/image to listen for. See the Trigger Actions section for details on each action.

Record/Playback triggers are saved across app sessions but only apply whenever you're on the Record Screen.

Passthrough for Recording

On the Record Screen, passthrough has additional behavior related to whether the trigger input gets recorded into the macro.

Record Start trigger PASSTHROUGH container with the Enable Input Passthrough toggle on — when enabled, the input is recorded and sent to the console

Record Start Trigger:

Record Stop trigger PASSTHROUGH container with the Enable Input Passthrough toggle on — when enabled, the input is sent to the console but not recorded

Record Stop Trigger:

Macros Screen

The Macros Screen is where you manage all your saved macros. It uses a folder-based layout — the main view shows your folders, and tapping a folder opens the list of macros inside it.

Macros Screen showing folder list view with user folders and Recorded Macros folder

Folders

Macros are organized into folders. There are two types:

Tap the + button to create a new folder. Each folder row shows the folder name and the number of macros it contains.

User folders have a 3-dot menu with the following options:

Macro list inside a folder showing macro rows with triggers, duration, and active toggles

Managing Macros

Tap a folder to view its macros. Each macro row shows:

The 3-dot menu on each macro offers:

Playing Macros

A macro must be activated before it can be played or triggered during gameplay. Toggle the switch on the left side of the macro row to activate it. Play the macro by clicking the row or activating its start trigger. The macro will light up blue to indicate it is playing.

Macros list with one macro activated and playing — its row highlighted with the active toggle on and a stop button — while the other macros stay inactive

When a macro is activated:

Multiple macros can be played/triggered at the same time. Each macro adds inputs into a stack based system that resolves conflicts before sending the inputs over remote play. Raw controller inputs still work during macro playback and will resolve with macro inputs. If there is no active console connection, macros will still play through their duration but inputs are not sent anywhere.

The folder header shows the total number of macros and how many are currently active (e.g., "5 macros, 2 active"). Up to 10 macros per folder can be active at the same time — the limit applies to each folder independently, so different folders can each have their own active macros. See Limits for details.

Active macros only listen for their triggers while their folder is open. When a macro is deactivated, it is unloaded from memory and its triggers stop listening for input.

Macro Triggers

Each saved macro has its own independent start trigger and stop trigger. These are configured per-macro and work while the macro is active on the Macros Screen.

To configure triggers, tap the Edit option from the macro's 3-dot menu to open the Macro Editor, then tap the trigger rows at the top. See Trigger Actions for input-based actions, Sound Triggers for audio-based triggers, or Image Triggers for image-based triggers (Pro).

Multiple active macros can have identical triggers, allowing you to control several macros collectively during gameplay. For example, you could have two macros triggered by R1 single press.

Copy & Move

Copy To creates a duplicate of the macro in one or more folders. A dialog appears with checkboxes for each folder — select the folders where you want copies to be placed and enter a name for the copy. The original macro is not affected.

Move To moves the macro to a different folder. Select the target folder from the list. If the macro is currently active, it will be automatically deactivated before moving.

Export & Import

Macros can be exported as JSON files and imported on another device or shared with other users.

Macro 3-dot menu showing Edit, Rename, Copy To, Move To, Export, and Delete actions

Exporting: Tap Export from the macro's 3-dot menu. Choose the stick value format:

The exported JSON file includes all macro metadata (name, duration, triggers, playback speed, loop settings) and every input entry with timestamps. You can save it to any location on your phone or share it directly.

Importing: Tap the + button on the Macros Screen and choose Import Macro. Select a JSON file from your device. The app validates the file format, checks that it's compatible, and imports the macro into the current folder.

Exported JSON files are human-readable and can be edited in a text editor. This is useful for creating precise macros by hand or making bulk adjustments that would be tedious in the app's editor.

Editing Macros

The Macro Editor lets you view and modify every detail of a saved macro. Open it by tapping Edit from the macro's 3-dot menu on the Macros Screen.

The editor screen has a playback toolbar at the top, the macro's trigger configuration below it, and a scrollable list of all input entries. Each entry represents a single input event at a specific point in time.

Macro Editor showing entry list with timestamps, input descriptions, and playback controls

Entry List

The entry list displays every input in chronological order. Each row shows:

At the bottom of the list is the End marker, which shows the total macro duration including the end delay. The end delay is added to the last input entry timestamp.

You can add new entries using the + button in the playback toolbar

Editing Entries

Tap any entry row to open the Entry Editor dialog. Here you can modify:

Entry Editor dialog - buttons Entry Editor dialog - triggers
Entry Editor dialog - sticks Entry Editor dialog - touchpad

Delete an entry from the list.

Save to update the entry.

Long-press any entry row to Cut, Copy, Paste here, Paste at original time, or Delete. Paste here inserts the clipboard entry at the long-pressed row's timestamp; Paste at original time uses the timestamp the entry had when it was copied or cut. The clipboard is shared across macros — copy from one macro and paste into another.

End Delay

End Delay dialog showing the minute, second, and millisecond picker with Reset, Cancel, and Save buttons

The End Delay is the time between the last input entry and the end of the macro. It controls how long the final input states are held before the macro completes (or loops to the beginning).

For example, if your only entry is a button press at 0.50s and the end delay is 0.50s, the macro will hold that button pressed state for an additional 0.50 seconds before finishing, making the total duration 1.00s. Once the macro terminates after the end delay, all inputs are reset to their neutral states.

Tap the End row at the bottom of the entry list to adjust the end delay. The dialog includes a Reset button that sets the delay back to zero.

Long-press the End row to Paste a clipboard entry at the end of the macro, or to Reset the end delay.

Triggers

The trigger configuration rows appear above the entry list. Each macro has a Start Trigger and a Stop Trigger, each with an enable/disable toggle.

Macro Editor trigger rows — Macro Start Trigger and Macro Stop Trigger, each with an enable toggle

Tap a trigger row to open the full Trigger Configuration screen where you can select the trigger action, input, and options. See Trigger Actions for input-based actions, Sound Triggers for audio-based triggers, or Image Triggers for image-based triggers (Pro). Changes are reflected immediately — you can test triggers during playback in the editor.

Trigger changes are part of the macro's editable state and are included when you save.

Playback Options dialog in Macro Editor

Playback & Speed

The playback toolbar at the top of the editor lets you play the macro. Tap the Play button to start playback; the entry list and all editing controls are disabled while playing so you can focus on the output.

Tap the gear icon in the playback toolbar to open the Playback Options dialog, which includes:

Playback speed and loop settings are saved per-macro. When speed is not 1.0x, the current speed is displayed next to the Play button (e.g., "0.7x speed"). When looping is configured, a badge shows the loop count or infinity symbol. The stick display format is a global setting and is not saved per-macro.

Undo & Redo

All edits in the Macro Editor can be undone and redone. This includes adding, deleting, and modifying entries, changing the end delay, toggling triggers, modifying trigger configurations, and changing playback settings.

Undo and Redo buttons appear at the bottom of the screen when there are actions to reverse or reapply. Up to 50 levels of undo history are maintained.

The editor tracks whether you have unsaved changes. If you try to leave with unsaved changes, a dialog will ask whether you want to Save, Discard, or Cancel. The Save button in the editor is only enabled when changes have been made.

Trigger Actions

Triggers determine how macros start and stop during live gameplay. Both the Record Screen and saved macros support configurable start and stop triggers. Each trigger has an action (how to activate it) and one or more inputs (what to press).

Most trigger actions respond to controller inputs — single press, double press, hold, release, and two-button combo. The Sound and Image actions instead respond to console audio and video; they are summarized here, with full details in the dedicated Sound Triggers and Image Triggers sections below.

Trigger Configuration screen with the Single Press action selected

Single Press

Activates when you press the input.

For button the trigger fires on the transition from released to pressed — a single deliberate press.

For L2/R2 Triggers, the trigger fires when the value enters the lower and upper bound set for the input.

For sticks, the trigger fires when stick enters the selected zones.

Trigger Configuration screen with the Release action selected

Release

Activates when you release the input after pressing it. The trigger fires on the transition from pressed to released.

For L2/R2 Triggers a release is considered a value of 0.

For sticks a release is considered when stick enters deadzone (X,Y value of 0).

Release is commonly used for stop triggers — for example, hold a button to play a macro, release the button to stop it. Combined with a Single Press or Hold start trigger on the same input, this creates a natural "hold-to-play" behavior.

Trigger Configuration screen with the Double Press action selected

Double Press

Activates when you press the input twice within 500 milliseconds. The first press starts a timing window — a release must then be registered - followed by a second press occuring within that window, for the trigger to fire. If the window expires without a second press, nothing happens and the next press starts a new window.

For L2/R2 Triggers, a press is considered when the value enters the lower and upper bound set for the input. A release is considered a value of 0.

For sticks, a press is considered when stick enters the selected zones. A release is considered when stick enters deadzone (X,Y value of 0).

Double Press is useful when you want to use a button for its normal in-game function on a single press, but trigger a macro on a double press.

Trigger Configuration screen with the Hold action selected, showing the hold duration slider

Hold

Activates when you hold the trigger input for a specified duration. The timer starts when the input is pressed and fires when the configured hold time is reached. If you release before the time is up, the trigger does not fire.

For L2/R2 Triggers, the trigger fires when the value is held between the lower and upper bound for the hold duration.

For sticks, the trigger fires when stick is held inside the selected zones for the hold duration.

Hold duration is configurable from 0.01 seconds to 20.00 seconds. Adjust it using the slider on the trigger configuration screen, or tap the value to type an exact number in seconds.

Hold triggers are useful for activating macros with an intentional sustained press, avoiding accidental activations from quick taps.

Trigger Configuration screen with the Two-Button Combo action selected, showing Input 1 and Input 2

Two-Button Combo

Activates when two inputs are pressed together within 200 milliseconds. You configure both Input 1 and Input 2 — the trigger fires when both are held simultaneously.

The inputs can be any combination: two buttons, a button and a trigger, a button and a stick zone, etc. The order doesn't matter — pressing either input first starts the window, and pressing the second within 200ms fires the trigger.

For L2/R2 Triggers, a press is considered when the value enters the lower and upper bound set for the input.

For sticks, a press is considered when stick enters the selected zones.

Combo triggers are useful for avoiding conflicts with normal gameplay inputs. Since it requires two simultaneous inputs, accidental activations are unlikely.

Sound

Activates when a specific sound is heard from the console — chimes, alarms, music cues, explosions, etc. — rather than from a controller input. Set a trigger's action to Sound to show the sound and threshold settings. See the Sound Triggers section for capturing, testing, and binding sounds.

Image

Activates when a captured on-screen image — an icon, HUD indicator, or any distinct on-screen element — appears in the console's video, rather than from a controller input or sound. Set a trigger's action to Image to show the image, threshold, match mode, and search region settings. See the Image Triggers section for capturing, testing, and binding images.

Input Triggers

The following input types can be used as triggers:

Trigger Configuration INPUT showing a button input (Cross)

Buttons

Any controller button can be an input trigger: Cross, Circle, Square, Triangle, L1, R1, L3, R3, D-Pad Up/Down/Left/Right, Options, Share, PS Button, and Touchpad Button.

Trigger Configuration INPUT showing an L2 analog trigger with lower and upper bound sliders

Analog Triggers (L2 / R2)

The L2 and R2 analog triggers can be used with a configurable activation range. The range defines how far you need to pull the trigger before it counts as "pressed" (default: 50–255). A dual slider on the trigger configuration screen lets you set the lower and upper bounds.

For example, setting the range to 200–255 means only a near-full pull activates the trigger, while setting it to 10–255 makes it activate on any slight pull.

Trigger Configuration INPUT showing the analog stick zone selector

Analog Sticks (Left / Right)

Stick inputs use a zone-based system. The stick's range is divided into 16 zones: 8 inner zones (closer to center, from the deadzone to 70% tilt) and 8 outer zones (from 70% to full tilt). Each zone covers a 45-degree slice in one of eight directions: Right, Up-Right, Up, Up-Left, Left, Down-Left, Down, and Down-Right.

You select which zones activate the trigger. For example, selecting all "Up" outer zones creates a trigger that fires when you push the stick fully upward. Selecting all inner zones creates a trigger that fires on a gentle half-tilt in any direction.

Trigger Configuration PASSTHROUGH container with the Enable Input Passthrough toggle

Passthrough

The Passthrough setting controls whether the trigger input is sent to the console before and during trigger activation.

Passthrough applies to raw controller input only, not to the macro's playback inputs. The macro will always send its inputs to the console regardless of the passthrough setting.

Sound Triggers

Trigger Configuration screen with Sound action selected, showing sound row and threshold slider

The Sound trigger action lets macros react to game audio rather than to a controller input. Configure any record/playback trigger or per-macro trigger to fire when a specific sound is heard from the console — chimes, alarms, music cues, explosions, and more.

To bind a sound trigger to a macro, open any trigger configuration screen (record/playback or per-macro start/stop) and set the action to Sound. The trigger configuration then exposes two settings:

Click on Test Sound Trigger to navigate to the Sound Triggers screen for testing sound detection.

Sound Triggers screen showing Capture and Test Sound Trigger containers

The Sound Triggers screen, accessed from the Settings screen navigation drawer, is the central place to discover and test sounds. It has two main sections:

Both Capture and Test Sound Trigger require an active Remote Play connection to your console — the Sound Triggers screen analyzes the live audio stream as it arrives from your console.

All audio processing runs on-device. Audio is processed in real time as the console streams it to your phone — no audio is recorded, stored, uploaded, or shared.

Free tier users can fully use the Sound Triggers screen to browse, capture, and test sounds. Binding a sound trigger to a macro requires the Pro upgrade — see Limits for details.

Image Triggers

Trigger Configuration screen with Image action selected, showing the image, threshold, and match mode settings Search Region setting with Custom Region selected, showing the Entire Screen, Small Region, and Custom Region options and the Set Custom Region row with its size and location

The Image trigger action lets macros react to an on-screen visual rather than to a controller input or sound. Configure any record/playback trigger or per-macro trigger to fire when a captured image — an icon, HUD indicator or any distinct on-screen element — appears in your console's video.

To bind an image trigger to a macro, open any trigger configuration screen (record/playback or per-macro start/stop) and set the action to Image. The trigger configuration then exposes these settings:

Custom search region editor in landscape, showing the live console video with a blue resizable region rectangle, a move handle, and the region's dimensions and position

Click on Capture Images & Test Trigger to navigate to the Image Triggers screen for testing image detection.

Image Triggers screen showing Capture and Test Image Trigger containers Test Image Trigger Search Region with Custom Region selected, the Set Custom Region row, and the Detect Image button showing a successful match

The Image Triggers screen, accessed from the Settings screen navigation drawer, is where you capture and test images. It has two main sections:

Both Capture and Test Image Trigger require an active Remote Play connection to your console — the Image Triggers screen works with the live video stream as it arrives from your console.

All image matching runs on-device. Console video is processed in real time as it streams to your phone — no video is recorded, stored, uploaded, or shared. Only the small image templates you explicitly capture are saved locally on your device.

Free tier users can fully use the Image Triggers screen to capture and test images. Binding an image trigger to a macro requires the Pro upgrade — see Limits for details.

Image Library

The Image Library holds the reference images you capture for image triggers. Each saved image is a cropped snapshot of an on-screen element — an icon, HUD indicator, or menu graphic — taken from your console's live video on the capture screen. The library is shared across all image triggers, so you can capture an element once and bind it to any number of macros.

Image Library dialog showing saved image thumbnails with names and pixel dimensions, an image count, and Import and Close buttons

Open the library from the image picker when you set a trigger's action to Image. The dialog header shows how many images you have saved out of the maximum of 100 — this cap applies to both Free and Pro tiers. Each row shows a thumbnail preview, the image's name, and its pixel dimensions.

Each image's 3-dot menu provides three actions:

Import, at the bottom of the dialog, adds an image from a PNG file. Only images previously exported from ConsoleMacros PX can be imported — an exported file carries the capture information the matcher needs, so arbitrary images, screenshots, or photos are rejected. To detect a new on-screen element, capture it from the live video on the capture screen rather than importing an outside image.

All saved images are stored on-device only — nothing is uploaded or shared automatically. See General Limits for the image cap.

Sample Macros

On first install, ConsoleMacros PX creates a Sample Macros folder with example macros demonstrating common use cases. These are fully editable and can be modified, copied, or deleted like any other macro.

Sample Macros folder showing pre-built example macros

Repeat Square (Toggle)

Rapidly repeats the Square button. Press Square once to start, press again to stop. Uses Single Press trigger with passthrough off so the initial press doesn't register as an input. Loops infinitely with seamless looping.

Repeat Cross (Hold)

Rapidly repeats the Cross button while held. Press Cross to start, release Cross to stop. Uses Single Press start trigger and Release stop trigger. Demonstrates the "hold-to-play" pattern — the macro plays only while you're holding the button.

Alternating Triggers

Alternating L2 and R2 trigger taps. Toggled on/off with D-Pad Left. Runs at 0.7x speed demonstrating speed adjustment.

Hold L-Stick Forward

Locks the left stick in the full-up position for continuous forward movement. Activated by holding the left stick up for 1 second (Hold trigger on the outer-up stick zone), stopped by pressing the left stick down (Single Press on outer-down zone). Passthrough is enabled so you can steer left and right while the macro is active.

Repeat R2 Trigger (Hold R1)

Rapidly repeats R2 trigger pulls. Activated by pressing R1, stopped by releasing R1. Passthrough is enabled so R1 still reaches the console. Demonstrates using one button to activate a macro on a different button.

AFK Stick Rotation

Rotates both sticks clockwise in a full circle over 4 seconds, preventing game idle timeouts. Toggled on/off with L3 (left stick press). Both sticks move in sync through 36 positions at 10-degree increments. Loops infinitely with seamless looping.

Limits

Free Tier

Free tier users have the following limits, which can be lifted by upgrading to Pro:

Pro Tier

The one-time Pro upgrade lifts all free tier limits and removes ads:

General Limits

The following limits apply to all users regardless of tier:

When a limit is reached, the app displays a message and prevents the action. Free tier users hitting a tier limit also see an upgrade prompt.

Troubleshooting

Trigger is not firing

Import fails

Recorded macro has missing inputs