A lot of work was done on making Behavior Trees and scripting system overall more flexible - we can finally create bots using ONLY Macros and Behavior Trees, without falling back to Auras. Having to combine multiple complex systems together (Auras and Behavior Trees) made things much harder to understand.
But, of course, we're not still done yet - there will be many more changes in new computer-vision based nodes in the nearest future.
For years, Target Window
was a prerequisite in all Capture
triggers (Image/Color/Text/ML) - EyeAuras worked only with windows.
Starting from this version, we'll try a different approach:
- If
Target Window
is not set, EA will start capturing Primary Screen
- previously, clearing
Target Window
basically stopped Triggers from working. From now on, this will only switch the mode to Primary Screen capture and I would suggest to use Enabling Conditions to control the capture. This is very important! Check your old triggers to ensure that there are no "test" or "leftover" triggers as they will start eating up CPU.
- minus extra step if you're setting up something for a personal use - setting up
Target Window
in many cases is not really required if you're playing games in Borderless Windowed
or other similar modes where the game occupies the entire screen
- as soon as we remove window-related stuff from the picture, working with mouse coordinates becomes more simple - every coordinate becomes absolute
- everything related to clicking on objects on the screen will continue to work as is. If you'll notice some problems - please report
IMPORTANT! Multi-monitor setups are not supported yet. Only the primary screen will be captured. I'll extend support in the future

-
Major Macros changes: Greatly enhanced flexibility of Macros
-
New CV-Based Nodes: new computer-vision nodes which are equivalent of Triggers. No triggers needed any more for simple bots!
-- MLSearch paired with MLFindClass - works with ML models and allows to filter ML search results. Combine that with MouseMove enhancments and you can build point'n'click bot in no time!
-- PixelSearch - finds a pixel of a specific color
-- ImageSearch - finds an image
-- ColorCheck - checks whether the color of pixel/region matches with expected
-
New Logic Nodes: added new nodes which allow you to control execution flow
-- Interrupter - allows to conditionally interrupt already running nodes
-- Timeout - allows you to put a maximum time which you "allow" the child node to Run (stay in Running
state)
-- CheckKeyState - very simple node, which checks the current state of the specific key
-- IfThenElse - allows to write if..then..else
condition in BT form - useful for those who are new to BTs infrastructure
-
BT Undo/Redo: You can now undo/redo node additions/removals using Ctrl+Z
/ Ctrl+Y
.
-
Hotkey Activation: BTs and Macros can now activate directly via hotkeys.
-
Login Widget: Added a simple widget which you can use in your mini-apps to implenent EyeAuras-based login
-
PopOut View: View a real-time, read-only version of a BT/Macro in a floating window for testing/debugging.
-
BT Variables Support: Nodes like MouseMove
can use CvLastFoundRegion
from CV-based searches.
- Precompilation & Preserve Binaries: Scripts now compile in advance to reduce runtime delays. Optionally store compiled binaries to avoid recompile after restarts.
- Support in Behavior Trees: Precompiled scripting now works in BT nodes, improving speed and consistency.
- File Provider API: Scripts can embed and load extra files (like
.css
, .js
, .md
, .dll
) directly using IScriptFileProvider
.
- NuGet Pack Support: Packs automatically fetch and bundle required NuGet packages for better offline and startup experience.
- Keybind Attributes: Scripts can bind to hotkeys directly using
[Keybind]
attributes for hotkey-triggered methods.
- Dependency Injection Enhancements: Cleaner script structure using
[Dependency]
attributes or init properties for services like SendInput
.
- Lifecycle Events Trigger: Introduced triggers like
AppStarted
, allowing automation without showing EA UI.
- ML Search: You can now download some of defaults models straight from UI. That same system will be used to distribute "standard" models in the future, such as HP bars detection
- Programmable interface for Image Search, Pixel Search, ML Detection, Text OCR with OSD overlay. More details here.
- [Crash] Fixed crash which happened in BTs after latest changes ("Already cancelled")
- [Crash] Fixed Import-related crash which happenede when clipboard containted link to unsupported file
- [BT] Added new button which allows to run BT/node until stopped
- [BT] Fixed a bug in BTs where you could remove the node by linking its output to its input...
- [BT] Fixed a bug which lead to showing a bunch of errors whenever you've removed multiple nodes in a bulk
- [BT] Fixed a problem with Debounce node not saving properties
- [BT] Improved nodes removal UX
- [BTs] Macros should now correctly stop when the main program window becomes active.
- [Capture] Fixed a problem with FPS selector - it was not working properly and was showing Range selector even if "Min" option was not set
- [Capture] Fixed a problem with region-selection in Preview window when Resize/Rescale effects were applied
- [ColorSearch] Minor optimization - should be less memory-hungry and work a bit (~2-3%) faster
- [Macros] Improved responsiveness of drag'n'drop in the tree
- [Macros] Improved responsiveness of drag'n'drop in the tree
- [Macros] Made it so Comment node no longer throws exception when executed - this defeated the whole purpose of having that node in the tree
- [OSD] Fixed a bug with OSD Rectangles coloring -
R
and G
color channels were swapped
- [Scripting]
IBlazorWindow
now has a new property TitleBarViewType` which allows to fully replace window title bar with whatever you want
- [Scripting] Added
Clear()
method to MiniProfiler
- [Scripting] Added
WorldToWindow
transformation matrix to WindowImageProcessedEventArgs - this allows to very easily calculate in-window coordinates after Refresh()
- [Scripting] Added implicit conversion from string to WindowMatchExpression
- [Scripting] Added new struct
Percentage
which could be used to denote that the value is in %
(e.g. 0.1
= 10%
)
- [Scripting] All OSD objects now have
Opacity
- [Scripting] Error line numbers should now be properly highlighted/displayed in case of compilation errors
- [Scripting] Fixed(?) a problem with
LoginWidget
not working properly
- [Scripting] Improved performance of scripts first start a bit (3-5%)
- [Scripting] In auras, fixed a bug which could've prevented Script execution if aura was deactivated too quickly
- [Scripting] Optimized memory use a bit (AuraScript disposal)
- [Scripting] SendInput API is promoted from
SendInputUnstableScriptingApi
to SendInputScriptingApi
- there were no changes for almost a year, looks stable enough
- [SendInput] Fixed a problem where interchanging Delays/SendInputs could block each other. This is a bug that has been introduced in the last version.
- [SendSequence] Fixed a problem with SendSequences - under some conditions sequences of key presses could be interrupted prematurely, meaning that only part of the sequence would be sent. Thanks to
@Rowenor
for finding this out!
- [SendText] Fixed incorrectly sized input text field
- [TextSearch] Fixed a problem in TextSearch - IncludeTextSegments was not saved into config
- [UI] Added
Move To Parent
option to Aura Tree
- [UI] Fixed a crash which happened if invalid aura name was set
- [UI] Fixed a nasty problem with authentication - in some cases even pack authors were not able to push the update aka "Non-authorized users are not allowed to update shares"
- [UI] Fixed a problem with application manifest which made it so the app had to restart to gain admin priveleges. This still has to be tested on different OS versions
- [UI] Fixed a problem with full-screen region selector - selection was off a bit
- [UI] Fixed a problem with login being too sensitive for user clock precision
- [UI] Fixed a problem with Packs - License Agreement window closure led to app termination. That happened only on the 1st launch.
- [UI] Fixed a problem with pre-compiled Packs - Overlays were not working properly
- [UI] Fixed a problem with script messages being duplicated in
Event Log
- [UI] Fixed a problem with Start Minimized not working properly under some conditions
- [UI] Fixed alignment of CodeEditor in maximized form
- [UI] Fixed bug which made so Import links taken from AuraLibrary page won't work under some circumstances
- [UI] License Agreement Window refactoring - should load up faster
- [UI] Minor bugfixes for PopOut functionality added in the previous version
- [UI] Semi-Offline mode support improvements - improved token update algorithm, should make things smoother
- [UI] Using dots (".") in aura names historically led to a whole group of issues as EA saves auras to your local file system using those names. And usually dot denotes file name from its extension. For now, I've made it so EA will show error when you're trying to rename to a name which contains a dot - just like it currently does for a non-valid names containing special characters.
- [Web] Fixed links on Aura Library page - they were missing hostname