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 macros or other input features of the App during online multiplayer gameplay may violate the terms of service of the game or platform and may result in account suspensions or bans. Some games may prohibit or penalize macro use even in offline or single-player modes. 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: the Recording container (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 Waiting for first input 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. When Start on First Input is enabled, the status area shows "Waiting for first input..." in red until the first input is received, then changes to "Recording inputs...". When it is disabled, "Recording inputs..." appears as soon as recording starts.

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. Names 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. Choose the folder to save into, enter a name for the macro (up to 40 characters), and tap Save. The folder list defaults to Recorded Macros and includes any folders you have created.

The macro's name and input entries are saved locally on the phone. Saved macros appear on the Macros Screen, in the folder you chose. A newly saved macro keeps the start/stop triggers and the playback options (loop, seamless loop, and playback speed) configured on the Record Screen, so the setup you tested the recording with travels with the macro. Its toggle is always off when saved, so its triggers are not armed until you turn it on from the Macros Screen.

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, 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:

Recording 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 and the input to listen for. The Record Start and Record Stop triggers use controller inputs (Single Press, Double Press, Hold, Release, Two-Button Combo). The Macro Start and Macro Stop triggers offer those actions plus Sound and Image. 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 sent to the console and recorded

Record Start Trigger:

Record Stop trigger passthrough container with the Enable Input Passthrough toggle on — when enabled, the input is sent to the console and 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 tier).

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 the trigger configuration at the top, the playback toolbar below it and a scrollable list of all entries. Each entry represents a single command 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 command 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 entry timestamp.

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

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.

Editing Controller Input Entry

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

Editing Macro Entry

Entry Editor dialog - Macro command with Activate/Deactivate action and the target macro name selector

Besides controller inputs, an entry can be a Macro command. Instead of sending a controller input, it activates or deactivates another macro at its timestamp. In the Entry Editor, select Macro as the type, then set:

When playback reaches the entry, it flips the target macro's on/off toggle on the Macros Screen — the same toggle you tap by hand. Activate arms the target so its triggers start listening (it does not start playing it); Deactivate disarms it, and stops it if it is currently playing.

This lets you chain macros together, which is especially useful with Sound and Image triggers. For example, a macro can deactivate itself after it fires, or activate the next macro in a sequence.

The target must be in the same folder as this macro. If several macros share the same name, the command toggles all of them. A macro entry command cannot toggle the macro it belongs to. To make a macro switch itself off after it finishes, use Deactivate on Completion in Playback Options instead. Activating is still subject to the limit of 10 active macros per folder.

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 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 controller 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 tier). 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

Playback Options dialog in Macro Editor, showing Loop Macro, Seamless Loop, Playback Speed, Randomize Playback Speed and Deactivate on Completion Playback Options dialog scrolled down, showing Deactivate on Completion, Randomize Sticks, Additive Sticks and Sticks Display

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:

When playback speed is not 1.00x, the current speed is displayed next to the Play button (e.g., "0.70x"). 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.

Randomize Playback Speed

Makes a macro run at a slightly different speed on every playback instead of always running at the same one.

Playback Options dialog with Randomize Playback Speed enabled, showing the Speed Variation slider at plus or minus 0.05x

Enable the Randomize Playback Speed checkbox in the Playback Options dialog to reveal one control:

One speed is picked per playback and applied to the whole run, then a fresh speed is picked for each replay and for each loop iteration. The macro never changes tempo partway through; each run is played at a single consistent speed.

The result always stays within the 0.10x to 10.00x playback range, and the variation is limited by whichever end it reaches first. A macro set to 0.20x with ±0.50x variation cannot go below 0.10x, so it varies between 0.10x and 0.70x rather than evenly either side of 0.20x. Keep the base speed away from the ends of the range if you want the variation to be even in both directions.

When the randomizer is on, a ± is shown after the speed next to the Play button in the editor, and next to the macro's duration on the Macros Screen. If the playback speed is left at 1.00x the ± appears on its own, so a macro that only randomizes is still marked.

The setting is saved per-macro and is configured in the Macro Editor only. Macros saved from the Record screen have the setting disabled by default.

Randomize Sticks

Makes a macro's stick movements vary slightly on every playback instead of repeating the exact same values.

Playback Options dialog scrolled to Randomize Sticks, showing the Apply To dropdown set to Both Sticks and the Angle and Tilt Variation sliders at plus or minus 10

Enable the Randomize Sticks checkbox in the Playback Options dialog to reveal three controls:

Tap either slider's value to type an exact number. Setting a slider to 0 leaves that value unchanged, which is how you vary only the angle or only the tilt.

One random variation offset is picked per playback and applied to every stick entry in the macro, then a fresh offset is picked for each replay and for each loop iteration. Applying a single offset across the whole macro preserves its shape: a recorded path is rotated and scaled as a whole rather than each entry being jiggled independently, so the movement still looks like the one you recorded. Each stick rolls its own offset, so with Both Sticks selected the two vary independently within the same ranges.

Two behaviors worth knowing:

In the editor's entry list, a ± is shown after each stick value the randomizer will vary, for example "LS(45°,60%)± RS(315°,100%)" with Apply To set to Left Stick Only. A stick resting at 0% tilt is never marked, since it is never varied, and if both variation sliders are set to 0 no marks appear at all. The marks show what the randomizer will actually touch, so they are a quick way to confirm a macro is set up the way you intended before playing it.

The setting is saved per-macro and is configured in the Macro Editor only. Macros saved from the Record screen have the setting disabled by default.

Additive Sticks

Adds a macro's stick values on top of other sources that are also moving the stick, such as other macros or controller input.

Playback Options dialog scrolled to Additive Sticks, showing the checkbox enabled and the Apply To dropdown set to Both Sticks

Normally every source of stick movement competes and the one with the highest tilt value is sent to the console. The app compares the tilt of your controller stick against the tilt of every macro currently playing, sends the highest one to the console, and discards the rest. So a macro tilted further than your stick overrides your input completely, and a macro tilted less than your stick is ignored completely. If two sources are tied for the highest tilt, the controller stick always wins.

With Additive Sticks enabled, that macro stops competing. Its stick values become an offset that is added to whatever the winning source is doing, rather than a position that replaces it.

Enable the Additive Sticks checkbox in the Playback Options dialog to reveal one control:

Values are added as directions, not as tilt numbers. Two movements pointing the same way add together, two pointing opposite ways subtract from each other, and two at right angles combine into a diagonal pointing between them. A macro pushing the stick down at 25% against your stick held up at 10% gives 15% down; the same macro against your stick held right at 10% gives a diagonal down and to the right.

This is not limited to your controller input. Every source moving a stick takes part. Two additive macros playing at once are both added, so their offsets stack, and if they point in opposite directions they cancel each other out.

Everything is added together first and the total is limited to the stick's range only once, at the end, so the order the macros started in never changes the result. Also a stick cannot travel outside its own circular range, so a total past 100% is brought back to the edge with its direction unchanged. An offset added to a stick that is already fully deflected is therefore partly or entirely absorbed.

Apply To chooses which stick is added. It does not silence the other one — a macro set to Right Stick Only still sends its left stick values normally, competing for the left stick in the usual way.

Deadzone, clamp, invert and disabled axes are applied to your controller stick only, never to a macro's values. A controller movement small enough to fall inside the deadzone is discarded before anything is added, so the macro's offset then drives the stick on its own.

In the editor's entry list, an A is shown after each stick value that will be added, for example "LS(270°,25%)A RS(90°,40%)" with Apply To set to Left Stick Only. A stick resting at 0% tilt is never marked, since adding nothing changes nothing. If Randomize Sticks is enabled on the same macro both marks appear together, as "LS(270°,25%)±A".

The setting is saved per-macro and is configured in the Macro Editor only. Macros saved from the Record screen have the setting disabled by default.

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 container 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 container 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 container 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 a Macro Start or Macro Stop trigger, or a per-macro trigger, to fire when a specific sound is heard from the console — chimes, alarms, music cues, explosions, and more. The Record Start and Record Stop triggers use controller inputs only.

To bind a sound trigger to a macro, open a Macro Start/Stop or per-macro start/stop trigger configuration screen 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 a Macro Start or Macro Stop trigger, or a 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. The Record Start and Record Stop triggers use controller inputs only.

To bind an image trigger to a macro, open a Macro Start/Stop or per-macro start/stop trigger configuration screen 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.70x 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.

Stick Rotation

Rotates both sticks clockwise in a full circle over 4 seconds. 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.

Android App 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