1.10.10117
Daily-driver build with the safest release cadence.
- Updated
- 2 days ago
- File Size
- 536.7 MB
- Release Notes
- Open notes
Stable is the recommended track for most users. Alpha gets you the newest capabilities first.
Daily-driver build with the safest release cadence.
Fastest release track with the newest features and experiments.
Every release stays linked here so you can inspect what changed before you switch versions.
Very useful for analysis as it allows to split image to black and white which makes further checks much more simple. E.g. instead of having red HP bar with a lot of shades, you can convert it to black/white image where white is filled area of the bar.
Another image simplification technique, allows to reduce total number of colors in the image. By itself it is mostly useless, but can help in combination with other effects.
Made is to IsMaximized in ExecuteScriptNode is stored in the node itself
Load from preview pane avoids copying debug dataAwaiting for something is a mandatory part of any automation. EyeAuras constantly does that - timeouts between keypresses, ensuring that capture FPS is consistent, user-driven timeouts in scripts. Default instruments provided by operating system and default methods (like Thread.Sleep, Task.Delay and few others) are not accurate enough, so at some point I had to implement a combination of methods which ensured better accuracy.
This mechanism allowed sub-millisecond awaits and worked for the last 5-6 months. Unfortunately, accuracy comes with a cost and for most operations it not really needed.
That is why for the next few months we'll be trying a 3rd version of Sleep(), which is expected to meet middle-ground between accuracy and performance cost. On average, it is expected that it will reach accuracy of up 0.5 - 5ms.
This means that if you are setting EA to wait for 1ms, the effective wait time will be in range 1 - 1.5ms, which is more than enough for most use cases. For larger timeouts, such as 100ms, it may vary in range of 100 - 105ms.
To counterweight loss of accuracy, you'll get much better performance. We'll see how it goes in real world scenarios. As a part of development for this feature, I've added integration layer which will allow you to use whatever Sleep() mechanism you see fit for your scenarios. Will post information on this later.

Made is to IsMaximized in ExecuteScriptNode is stored in the node itself
Listen() to ScriptVariable - you can now use it instead of WatchCurrentValueThis is the first out of 5 fixes towards performance/startup improvements planned for Q4. As always, such things bear high risks, so please report anything strange you may notice. Difference in startup time should not be very noticeable - it is approximately minus ~10%, so just 1-2 seconds less than it was before. But the most important part is that this fix opens up additional time-saving options which I will exploit in the nearest future.
Releasing new version of editor which is shown any time you links something (AuraIsActive, Enabling Conditions, etc)

The new one is much more flexible, so it will be easier to do any changes there. After current version will be stabilized, I'll add "Recent", "Favourites" and few other improvements I have in mind. Please report any issues you'll find or any improvements you think worth doing - the initial implementation may be buggy at first, but hopefully it will quickly get it to surpass the old variant.

oddessaxoddessaxAdded new option "Include All Matches" which is intended to be used for some corner-case scripting purposes. By default, Image search finds best possible match and then tracks its movement - that way it can avoid scanning the whole image every frame. This new option disables all such optimizations and image is fully scanned on every tick. On a positive side - this gives you access to multiple candidates and their similarities. On negative - it destroys performance.
To get access to all found objects, you can use TemplateMatches which is returned as a part of ImageSearchTrigger.Refresh result
public interface IImageSearchDetectionResult : ICaptureTriggerDetectionResult
{
...
/// <summary>
/// Contains an array of all successful template matches and their bounds/similarity
/// Will contain more than 1 element only if Include All Matches is enabled in ImageSearchTrigger
/// </summary>
public ImmutableArray<TemplateMatchResult> TemplateMatches { get; init; }
...
}

This is extremely CPU-heavy task. On 1920x1080 you'll probably have at most 2-3 FPS to do a full scan. This is a huge contrast to ML search, which on the same resolution for the same task can give you up to 60 FPS, so if you really need to detect multiple instances of some object, I would highly recommend to look into training Yolo model and using it instead.