A lot of work went into making Behavior Trees and the entire scripting system more flexible. We can now finally build bots using only Macros and Behavior Trees, without needing to rely on Auras.
Combining two complex systems (Auras and BT) made the logic harder to follow, so the new nodes should make things much clearer. And this is not the end of it — more changes are coming soon, especially around preview-related functionality.
For many years, all Capture triggers (Image/Color/Text/ML) required the Target Window parameter — EyeAuras worked only with windows.
Starting with this version, we are trying a different approach:
- If
Target Window is not specified, EA will capture the primary screen.
- Previously, clearing the
Target Window field would effectively stop those triggers from working. Now it simply switches them to primary screen capture mode. I strongly recommend using Enabling Conditions to control capture. This is important! Check your old triggers to make sure there are no "test" or "forgotten" ones — they will start consuming CPU.
- One less setup step if you are configuring something for personal use: in many games running in Borderless Windowed mode, or similar fullscreen-like modes, specifying
Target Window is no longer required.
- Once the window dependency is removed, working with mouse coordinates becomes simpler — every coordinate becomes absolute.
- Anything related to clicking objects on the screen should continue to work as before. If you notice any issues, please report them.
IMPORTANT! Multi-monitor setups are not supported yet. Only the primary screen is captured. Support will be expanded in the future.

- Major Macros changes: macro flexibility has been significantly expanded.
- New CV-based nodes: computer vision nodes that act as trigger equivalents. For simple bots, triggers are no longer required!
- MLSearch together with MLFindClass — works with ML models and lets you filter ML search results. Combined with MouseMove improvements, you can build a point-and-click bot in minutes.
- PixelSearch — finds a pixel of the specified color.
- ImageSearch — finds an image.
- ColorCheck — checks whether the color of a pixel/area matches the expected value.
- New logic nodes: let you control execution flow.
- Interrupter — conditionally interrupts nodes that are already running.
- Timeout — sets the maximum time a child node may remain in the
Running state.
- CheckKeyState — checks the current state of the specified key.
- IfThenElse —
if..then..else as a BT node, useful for users who are just getting familiar with BTs.
- Undo/redo in BT: you can now undo/redo node additions and deletions with
Ctrl+Z / Ctrl+Y.
- Hotkey activation: BTs and Macros can now be started directly with hotkeys.
- Login Widget: a simple widget that can be used in mini-apps for EyeAuras-based authentication.
- PopOut View: a read-only popup window for BT/Macro testing and debugging.
- BT variable support: nodes like
MouseMove can now use CvLastFoundRegion from CV searches.
- Lifecycle Events Trigger: added triggers such as
AppStarted, making it possible to automate processes without showing the EA UI.
- ML Search: some basic models can now be downloaded directly from the UI. In the future, the same system will be used to distribute "standard" models such as HP bar detection.
¶ Packaging and Distribution
A programmable interface for Image Search, Pixel Search, ML Detection, and Text OCR with OSD overlay support. More details here.
¶ Authentication and Licensing
- Semi-offline mode: the first steps toward fully offline use of the application.
- KeyLogin: sign in with license keys — no account required.
- Sublicensing: tiered access to paid packs and features.
- [Crash] Fixed a BT crash introduced by recent changes (
Already cancelled).
- [Crash] Fixed an import crash that occurred if the clipboard contained a link to an unsupported file.
- [BT] Added a new button that lets you run a BT/node "until you stop it."
- [BT] Fixed a bug where it was possible to delete a node by connecting its output to its own input...
- [BT] Fixed a bug that caused many error messages when deleting nodes in bulk.
- [BT] Fixed an issue where the Debounce node did not save its properties.
- [BT] Improved the UX of node deletion.
- [BTs] Macros now stop correctly when the main application window is activated.
- [Capture] Fixed the FPS selector — it behaved incorrectly and showed a Range selector even without a
Min value.
- [Capture] Fixed region selection in the Preview window when Resize/Rescale effects were applied.
- [ColorSearch] Minor optimization — lower memory usage and about 2–3% faster.
- [Macros] Improved drag-and-drop responsiveness in the tree.
- [Macros] The Comment node no longer throws an exception during execution — which completely defeated its purpose.
- [OSD] Fixed incorrect OSD rectangle color layout — the R and G channels were swapped.
- [Scripting]
IBlazorWindow now has a new TitleBarViewType property, allowing complete replacement of the window title bar.
- [Scripting] Added a
Clear() method to MiniProfiler.
- [Scripting] Added the
WorldToWindow matrix to WindowImageProcessedEventArgs, making window coordinate calculations after Refresh() easier.
- [Scripting] Added implicit conversion from
string to WindowMatchExpression.
- [Scripting] Added a
Percentage struct for percentage values (for example, 0.1 = 10 %).
- [Scripting] All OSD objects now have
Opacity.
- [Scripting] Error line numbers are now highlighted/displayed correctly for compilation errors.
- [Scripting] (Apparently) fixed an issue where
LoginWidget could behave incorrectly.
- [Scripting] Slightly improved first-run script performance (3–5%).
- [Scripting] Fixed an issue in auras that could prevent a script from executing if the aura was disabled too quickly.
- [Scripting] Slightly optimized memory usage (
AuraScript utilization).
- [Scripting] The
SendInput API has been moved from SendInputUnstableScriptingApi to SendInputScriptingApi — it has not changed in a year and is stable enough now.
- [SendInput] Fixed an issue where interleaving Delays/SendInputs could block each other (a bug from the latest version).
- [SendSequence] Fixed an issue where key press sequences could stop too early, so only part of the sequence was sent. Thanks to
@Rowenor for catching it!
- [SendText] Fixed incorrect size of the text input field.
- [TextSearch] Fixed a bug where the
IncludeTextSegments parameter was not saved in config.
- [UI] Added a
Move To Parent option in the aura tree.
- [UI] Fixed a crash when setting an invalid aura name.
- [UI] Fixed a serious authentication issue — in some cases even pack authors could not publish an update (
Non-authorized users are not allowed to update shares).
- [UI] Fixed an application manifest issue that required a restart to obtain administrator rights (still needs testing on different OS versions).
- [UI] Fixed selection offset in the fullscreen region selector.
- [UI] Fixed login sensitivity to the accuracy of the user's system clock.
- [UI] Fixed a package issue where closing the license agreement window caused the application to exit (first launch only).
- [UI] Fixed Overlays in precompiled packs.
- [UI] Fixed duplicated script messages in the
Event Log.
- [UI] Fixed the Start Minimized option under certain conditions.
- [UI] Fixed
CodeEditor alignment in the maximized window.
- [UI] Fixed a bug where import links from AuraLibrary might not work in some cases.
- [UI] Refactored the license agreement window — it should open faster now.
- [UI] Minor fixes for the PopOut functionality added in the previous release.
- [UI] Further improved semi-offline mode support — the token refresh algorithm has been refined.
- [UI] Using a dot (
.) in aura names has historically caused many problems, because EA saves auras to disk using those names, and a dot usually separates a file name from its extension. EA will now show an error if you try to set a name containing a dot, just like it does for other invalid characters.
- [Web] Fixed links on the Aura Library page — the hostname was missing.