Download

Stable Alpha
Version 1.8.8580 1.8.8795
Requirements Windows 10/11 x64, Administrative privileges
Updated 11 weeks ago 5 hours ago
Release Notes notes notes
File Size 591.10912 MB 588.603904 MB

1.8.8793

2 days ago

C# Scripting - DLL injection

For the last couple of months I've been working on internal improvements of EyeAuras.Memory namespace. The goal is to extend capabilities and to support DLL injection and hooking of external processes. For now, I am releasing only one bit of the entire set of improvements - LocalProcess now has InjectDll method which uses naive CreateRemoteThread based injection. This will not help with kernel anti-cheat protected projects. We're already testing kernel-driver based solution which allows to counteract that inconvenience - I'll keep you posted.

DLL injection brings a lot of interesting and powerful things to the table - the topic is very niche and technical, but in the next 6-12 months I'll be trying to make it accessible to anyone with some C# skills, without deep understanding of internals.

Bugfixes/Improvements

  • [Crash] Fixed ColorSearch template-related crash (disposal race) #EA-1146 by @ganya
  • [UI] Disabled Cogs animation
  • [UI] Fixed a problem with color picker in ColorCheck/PixelSearch
  • [Scripting] Added GetCurrentColor in ColorCheckNode
  • [Scripting] Added EngineId to TextSearch in CV API - now you can specify which OCR engine to use, e.g. Tesseract (eng) or Windows (rus)
  • [Scripting] Breaking change: ISharedResourceRentController: IObservable<AnnotatedBoolean> IsRented => IObservable<AnnotatedBoolean> WhenRented + bool IsRented
  • [TextSearch] Fixed Tesseract (numbers) not initializing properly
  • [EyePad] Greatly improved loading performance for larger .sln files

1.8.8736

17 days ago

Bugfixes/Improvements

  • [Crash] Fixed BT Node Position NaN crash
  • [UI] Fixed jobs scheduler crash #EA-1121
  • [UI] Fixed a problem with UI elements sometimes not showing scroll
  • [SendSequence] Added chill time 1ms to TetherScript - this should fix a problem with TetherScript driver not being able to read requests fast enough
  • [Scripting] Improvements in scripting system - added AdditionalPath resolution for Managed assemblies in NuGet packages
  • [Scripting] Improved script obfuscation quality
  • [EyePad] Added Recent files

1.8.8715

one month ago

SendSequence changes

Added two new flags, which target the scenario when you want to play some long-long sequence of actions, but at the same time you want to make it possible that it could be interrupted at any given moment.

E.g. you have a sequence of skills, which are cast inside WhileActive block. Now you want to be able to interrupt it at any given moment (e.g. by toggling hotkey to "Off" state). Previously it was not possible to do so without using Behavior Trees or Macros. But now, with these two new options, it is just a couple of clicks

Can Be Interrupted

As stated in the name, it changes behavior of the action - if, for any reason, Aura gets deactivated, the action will be stopped, even if the sequence has not been completed yet.

But abruptly stopping sequences of inputs is not really a great idea most of the time - if, for example, action has pressed some button and NOT released it yet, if it will be interrupted, the button will stay pressed, probably breaking something.

That is where the second flag comes in handy:

Restore Keyboard State

This flag remembers keys, pressed by the sequence and will release them automatically at the end of the action. So even if the action was interrupted in the very middle, there will be no "stuck" keys.

Bugfixes/Improvements

  • [Crash] Fixed crash which happened when Export window was closed too quickly
  • [UI] Fixed text editor soft-crash which happened in some cases
  • [Core] Fixed Trigger activation mode - "At least one" as not working properly
  • [Scripting] Made it possible to implement EA-based authentication mechanism right in your code, meaning you can code your own login procedure which will be relying on EyeAuras Sublicenses
  • [SendSequence] Fixed a problem with Restore Mouse position not working as expected in some cases
  • [EyePad] Implemented "recent files", try it out in portable version

1.7.8661

one month ago

Macros - Return/Break nodes

Adding two new nodes which should help to create better and smarter Macros!

Return

Return node allows you to exit the macro whenever you want to, even right in the middle of some sequence of operations. E.g. if character has died it does not make much sense to continue running the main loop. Equivalent of return operation in C#

Break

Break is more niche - it allows you to exit the current scope (not the macro!), e.g. if you're inside some Repeat loop, you can jump out of it if needed. Equivalent of break operation in C#

Wiki

C# Scripting - Blazor Windows

Added a series of articles in Russian/English about programming using EyeAuras Blazor Windows API

Behavior Tree / Macro

Added a whole bunch of articles about Behavior Tree / Macro nodes. Note that most of these articles are available in both Russian and English.

  • IsActive - checks whether parent Tree/Macro is currently Active
  • Interrupter - (advanced) node, that allows to break execution of Behavior Tree if some condition is met
  • Return - allows to stop the macro
  • Break - allows to Break from the loop or code block
  • MouseMove Abs - moves cursor somewhere on the screen (or to something)
  • MouseMove Rel - moves cursor relatively to its current position
  • CheckKeyState - checks whether some key is currently being held
  • KeyPress - simulate keypresses
  • Send Text - inputs text either via copy-pasting it or inputting each character individually

Bugfixes/Improvements

  • [SendSequence] Added Random Offset (like in MouseMove nodes)
  • [CheckIsActive] Fixed node not being properly redrawn
  • [BehaviorTree] Fixed a major visual bug which sometimes removed multiple nodes from the tree instead of a selected one

1.7.8614

2 months ago

Bugfixes/Improvements

  • [Core] Fixed bug which made it so Auras were loaded with invalid initial state, e.g. Triggers are Inactive, yet Aura is Active. Please report if you'll notice that problem again.

1.7.8605

2 months ago

Bugfixes/Improvements

  • [UI] Improved error display in C# Scripts
  • [WaitFor] WaitFor action now behaves exactly as Delay if it does not have any links in it
  • [Scripting] Fixed an issue with LocalProcess memory-reader breaking after multiple sequential reloads

1.7.8578

2 months ago

Overlapping Panels – Fixed! Strike Back

In 8540 I've tried to fix the problem displayed on the screen below - some of the panels in the program overlap and create unpleasant and glitchy effect. The problem, unfortunately, is not on EA side, but in one of the core frameworks that is developed by Microsoft. In February, they've posted that the bug is finally fixed, so I've tried to upgrade to that version and for the last couple of weeks we've all been testing their fix. As a result of that testing, I have to rollback the change - the new version fixed overlap problem, but introduced 3 new problems:

  • performance is noticeably worse
  • there are some issues with popping up windows(e.g. Login or Bindings editor)
  • but the final nail to the coffin is a broken drag'n'drop - somehow MS managed to screw up one of the core UI functionalities and this is the one for which I could not find any workaround - in EyeAuras drag'n'drop is a core functionality used in Behavior Trees and Macros.

So, for now, the airspace issue is back. I'll keep monitoring the situation.

Airspace overlay

Bugfixes/Improvements

  • [UI] Rolled back to WebView2

1.7.8572

2 months ago

Bugfixes/Improvements

  • [UI] Fixed a problem with Popups not reacting on mouse clicks - WebView2 issue
  • [UI] TargetWindow - changed expression to be WindowHandle || ProcessName || WindowTitle instead of WindowHandle || WindowTitle || ProcessName

1.7.8559

2 months ago

Новый релиз - 1.8 (RU/EN)

Что же у нас нового?

Mini-apps aka Мини-приложения на базе EyeAuras

Последние несколько месяцев работа в основном велась над C# скриптингом, там было множество изменений, в основном направленных на упрощение разработки и совместимость с разными NuGet-пакетами. Направление разработки постепенно смещается в сторону улучшения пользовательского опыта при работе со скриптами, хочется, чтобы было максимально просто и легко создавать новые мини-приложения, которые будут делать что-то полезное, будь то какая-то мелкая автоматизация или полноценный бот. Под капотом они будут использовать обширные возможности EyeAuras, ну а как это выглядит снаружи - это ВАШ выбор.

Для этого уже есть целый набор функционала, такой как:

  • Паки - возможность запаковать ваше приложение в портативный ZIP-архив -- Сюда входят такие вещи как возможность встроенный механизм обновлений, откатов, сохранения настроек и т.п. Все то, что годами добавлялось в EyeAuras доступно и вам.
  • Защита скриптов - код, который вы написали будет защищен от сторонних глаз -- Критично для большинства платных приложений. И вам самому не придется даже задумываться о том, как же это работает под капотом.
  • Саблицензии - если ваше мини-приложение не бесплатно, вы можете легко прикрутить систему саб-лицензий, которые будут использовать инфраструктуру EyeAuras для оплаты/отслеживания лицензий, а доход получать будете вы

Однако это еще не все - в этот список вскоре добавится и поддержка оплаты криптовалютами, и полное скрытие интерфейса EyeAuras, да и в целом многое, многое другое. Задача максимально сократить время, которое проходит от зарождения идеи до момента, когда у счастливых пользователей запущена ваше мини-приложение.

Я расчитываю, что именно мини-приложения смогут стать основным средством финансирования всех других разработок в EyeAuras(о них ниже). Время покажет насколько этот расчет верен.

А что будет с деревьями поведения, макросами, аурами?

Ничего плохого - да, ближайшие месяцы скорее всего будут потрачены на скрипты, однако в планах:

Полный перевод EyeAuras на новый UI-фреймворк, включая ауры, триггеры и действия

Вот эти подвисания при переключении между аурами уйдут наконец-то в закат. И загрузка ускорится примерно на 3-5 секунд. Переход займет примерно год.

Добавление еще одного средства автоматизации - Blueprints aka Чертежи

У нас уже есть Ауры, Макросы, Деревья поведения и Скрипты. Все они хороши для решения каких-то отдельных задач: деревья для создания полноценных ботов, ауры для маленьких простых автоматизаций по типу авто-банок, макросы для автоматизации четко заданной последовательности действий. Ну а скрипты - универсальный молоток, для которого всё вокруг - гвозди. На этом этапе нет проблемы, которую было бы нельзя решить инструментами, которые уже имеются в наличии.

Однако! Всегда есть куда расти. Если вы знакомы с Unreal Engine, то наверняка уже поняли о чем речь. Есть желание совместить то, что уже реализовано в Аурах и Деревьях поведения и получить еще одно средство визуального программирования - Blueprints. Основная идея в том, чтобы позволить пользователям на одном полотне, схожем с тем, где вы сейчас строите Деревья поведения, размещать еще и Ауры. И настраивать реакции на срабатывания этих аур. И тогда у вас будет в одном месте собрано все-все-все, что нужно для построения логики. Одновременно у вас перед глазами и какие-то события, и последовательности действий, которые произойдут, и все стандартные вещи типа циклов. При этом никто не мешает вызывать и деревья поведения/макросы прямо из чертежей.

Эта разработка займет многие месяцы, однако первые наработки я думаю мы увидим уже в этом году.

![UE Blueprints](https://s3.eyeauras.net/media/2025/07/cVmh4XpGah1YWsHN.png =x400)

EyeAuras SDK (NuGet package)

Это логическое продолжение идеи с мини-приложениями. Однако во главу ставится ваша программа, а EyeAuras превращается просто в здоровенный набор инструментов, которыми вы можете пользоваться. Хотите захватывать экран? Пожалуйста. Симулировать ввод одним из десятка методов? Тоже можно. А может быть хотите встроить только C# скрипты и дать возможность пользователям писать свой код? Проверенная годами инфраструктура скриптов к вашим услугам, они уже несколько лет служат верой и правдой. Абсолютно весь функционал, который присутствует в EyeAuras, без исключений, доступен в виде подключаемых модулей.

Все технические моменты уже решены и уже есть первые версии SDK, которые можно просто подключить к C# программе как NuGet пакет. Осталось решить вопросы с лицензированием и распространиением. SDK будет платным - вы единожды приобретаете его и дальше используете как хотите и сколько хотите, никакой завязки на инфраструктуру EyeAuras не будет, это полностью автономный продукт.

Постараюсь опубликовать все детали во второй половине года.

Интеграция с DMA / FPGA EN / RU

📎 Больше информации, примеры и скрипты — здесь

DMA (Direct Memory Access) — это технология, которая позволяет считывать или записывать данные напрямую в оперативную память компьютера, минуя CPU и операционную систему. Это делает возможным доступ к памяти любого процесса, даже если он защищён античитами и механизмами вроде Kernel Patch Protection (KPP), Hypervisor Protected Code Integrity (HVCI), User-mode hooks и т.д.

Что это даёт?

С DMA ты получаешь:

  • Полный доступ ко всей памяти системы (включая ядро и защищённые процессы) - можно как читать, так и писать
  • Возможность анализа античит-защищённых игр без риска быть замеченным
  • Поддержку скриптов на C# поверх железа — ты работаешь с памятью так же, как и с обычным ReadProcessMemory, но за кулисами идёт работа с реальной шиной PCIe. И всё это теперь доступно в привычном C#-скриптинге EyeAuras — без изучения HDL, PCIe, виртуализации или драйверов.

Статус и планы

  • ✅ Базовое чтение/запись с DMA
  • ✅ Поддержка распознавания модулей (EXE/DLL) по виртуальным адресам
  • ✅ Интеграция с IMemory и IProcess API
  • ⏳ Расширенная отладка и диагностика - важно, когда что-то идет не так или кривая прошивка устройства (в разработке)
  • ⏳ Ускорение операций чтения/записи
  • ⏳ Возможность делать DLL-inject в целевой процесс через DMA-плату

Интеграция с ImGui EN / RU

Начата работа над нативной интеграцией с ImGui — это альтернативный способ создания пользовательских интерфейсов в EyeAuras, дополняющий существующие Blazor-компоненты.

ImGui (или "Immediate Mode GUI") — это легковесная и быстрая UI-библиотека, изначально созданная для инструментов в игровых движках. Она используется в десятках AAA-игр и игровых редакторов благодаря своей простоте, минимальной инициализации и высокой отзывчивости. ImGui ориентирован не на декларативный подход, как WPF или HTML, а на "императивный" — UI пересоздаётся каждый кадр, что очень удобно для визуализации отладочной информации и каких-то простеньких интерфейсов.

Для EyeAuras это значит:

  • Максимально быстрый рендеринг интерфейса без необходимости собирать HTML/DOM/JS.
  • Лёгкость для начинающих: базовая ImGui-панель может быть создана буквально из 10 строк кода.
  • Возможность быстро визуализировать состояние бота: отрисовать текст, чекбоксы, кнопки, графики, отладочные метки, и всё это — без отдельной компиляции проекта.
  • Подходит для создания мини-приложений в одном .csx-файле, где всё — и логика, и UI — содержится в одном месте.

Вот пример(этот код разобран в гайде EN / RU):

AddNewExtension<ImGuiContainerExtensions>();

var osd = GetService<IImGuiExperimentalApi>()
    .AddTo(ExecutionAnchors);

osd.AddRenderer(() =>
{
    ImGui.Begin("My UI");

    ImGui.Text("Control window flags and interaction behavior.");

    var isActive = Trigger.TriggerValue ?? false;
    if (ImGui.Checkbox("Is Active", ref isActive))
    {
        Trigger.TriggerValue = isActive;
    }
    ImGui.SameLine();
    ImGui.TextDisabled("(Gets/Sets whether Trigger is active or not)");

    ImGui.Separator();

    if (Trigger.IsActive == true)
    {
        ImGui.TextColored(new Vector4(0f, 1f, 0f, 1f), "Trigger is currently ACTIVE");
    }
    else
    {
        ImGui.TextColored(new Vector4(1f, 0f, 0f, 1f), "Trigger is currently INACTIVE");
    }

    ImGui.End();
});

Этот подход отлично подойдёт тем, кто только начинает программировать, но уже хочет быстро создавать удобные интерфейсы для автоматизации. Немного шаблонного кода всё же нужно для старта, но дальше — всё становится интуитивно и предсказуемо. А ChatGPT может помочь с примерами, генерацией UI и логикой.

Теперь стало возможным создание мини-приложений, полностью реализованных в одном .csx-файле — всё, включая UI, действия, логику и даже отладочные элементы.

Demo

Аппаратный симулятор ввода — Usb2kbd EN / RU

Usb2Kbd — это эмулятор аппаратного ввода, поддерживается в EyeAuras с примерно 2021 года.

Теперь вы можете собрать свой собственный примерно за 10$ — всё, что нужно, это небольшое устройство с AliExpress или Amazon.

Вот подробная пошаговая инструкция: на русском / на английском

Также была улучшена техническая часть и переработано окно настроек. Usb2Kbd

Behavior Trees/Macros

Behavior Trees/Macros — Action-узлы теперь с выходами

Теперь все action-узлы (Wait, MouseMove, KeyPress и др.) имеют Outputs. Логика такая же, как у других узлов — связанный узел выполняется только если текущий завершился успешно. Output

Behavior Trees/Macros - Свойства по умолчанию

Теперь можно задать Target Window и Input Simulator отдельно для каждого дерева/макроса. Вы все еще можете использовать настраивать их и на уровне папки, как это было раньше, это расширение, а не замена функционала Settings

C# Scripting - все улучшения, связанные со скриптами

C# Scripting - Ссылки на другие скрипты из BT/Macro

Теперь можно "ссылаться" из BT/Macro на другую ауру, содержащую C# Script действие — аналогично тому, как в программировании ссылаются на другой проект. Все классы и типы из того скрипта становятся доступными для использования в BT.

Фича существовала давно, но была "спрятана", так как не была завершена и не работала так, как хотелось. ![References](https://s3.eyeauras.net/media/2025/05/NVIDIA_Overlay_i7vzCPLHmT.png =x300)

В чём польза?

Теперь можно иметь C#-класс, который анализирует игру (через Computer Vision или чтение памяти) и передаёт данные BehaviorTree для принятия решения. Вместо захламления дерева проверками и 50 переменными, можно иметь один класс, например TheGame, который будет оборачивать логику получения данных.

Пример бота, который использует эту схему работы

Больше информации доступно по ссылке

C# Scripting — Razor: декларация пространства имён более не нужна

Проще будет показать на примере - предположим, вы создали новый компонент в скрипте.

UserComponent.razor

@namespace GameGrind
@inherits BlazorReactiveComponent
<!-- ваш Razor/HTML код -->

UserComponent.cs

namespace GameGrind;

public partial class UserComponent : BlazorReactiveComponent {
    // какой-то код
}

Обратите внимание на случайное пространство имён (GameGrind), которое раньше автоматически вставлялось при добавлении нового Razor-компонента. Это небольшая, но крайне неудобная особенность: такой код было трудно перекинуть в другой скрипт EyeAuras — нужно было либо менять namespace, либо жить с разными несвязанными пространствами имён в коде.

Теперь это необязательно — можно опускать декларацию namespace как в .razor, так и в .cs файлах. EyeAuras автоматически вставит нужное пространство имён при компиляции. Меньше кода = меньше головной боли.

C# Scripting — добавлены два новых примера с ML + OSD

Исправлена проблема, при которой ComputerVision API не мог загружать модели/изображения по HTTP-ссылкам, и созданы два примера:

Aim Trainer 2D ML Aimbot+ESP

В этом примере показано, как:

  • найти окно по заголовку
  • создать ComputerVision, которую можно использовать для поиска изображений, ML, OCR и прочего
  • создать SendInput для эмуляции ввода
  • создать OnScreenCanvas для рисования на экране
  • найти объект с помощью предобученной ML-модели
  • навести мышь и кликнуть по центру объекта
  • нарисовать позицию текущего окна/объекта на экране через OSD

Фактически, этих трёх инструментов достаточно, чтобы собрать полноценного бота :) Всё уже есть из коробки.

![Aim Trainer](https://s3.eyeauras.net/media/2025/06/CFOcCLFzsgx9ODKT.gif =x200)

Aim Trainer 2D ML Aimbot+ESP ImGui

Почти то же самое, что и выше, но используется ImGui — очень мощная библиотека для рисования, с помощью которой можно создавать как полноценные UI, так и отрисовывать боксы/текст/прочее прямо на экране.

Производительность

Обновление до .NET 8

.NET — это платформа, на которой построен EyeAuras. Влияет на всё: запуск, память, работа с данными.

.NET 8 выбран из-за новой системы управления памятью, которая по тестам превосходит все прошлые версии и которая пока находится в стадии тестирования внутри Microsoft, так что в самом современном .NET 10 ее все еще нет. EyeAuras всегда выбирал увеличенное потребление памяти для получения большей производительности, так что для нас быстрый механизм сбора памяти - не роскошь, а необходимость. В этой версии мы все еще используем СТАРЫЙ механизм, но как только будет понятно, что версия стабильна - мы включим новый. Это должно дать измеримые улучшения во всех местах программы. ![GC time](https://s3.eyeauras.net/media/2025/05/SkR6d2PSx0.png =x500)

Редактор свойств папок — переработка

Теперь он использует новый UI фреймворк - стал более быстрым и отзывчивым.

Старый редактор Legacy editor

Новый Modern editor

Оптимизации Macros UI

Серьёзно переработан рендеринг макросов. Это незаметно для маленьких (меньше 50 нод) макросов, чем больше макрос - тем больше будет заметна разница. Это НЕ финальные изменения в этой части.

Перекрытие панелей — исправлено!

Выношу это в отдельный раздел, так как, вероятно, все пользователи EyeAuras хоть раз сталкивались с этой проблемой: изменяешь размер одной панели — и она начинает перекрывать другую. Самый частый случай — C# Action перекрывает Event Log.

Этот баг известен как проблема Airspace в WPF, и ему уже более 12 лет. Конкретно в UI-фреймворке Microsoft, который использует EyeAuras, он присутствует с июля 2020 ссылка

![](https://s3.eyeauras.net/media/2025/07/Discord_DNgXTIAXKhkV2Fua.png =x400)

И вот, наконец, спустя годы ожидания, Microsoft это пофиксили. Ура! К сожалению, это как раз тот случай, когда проблему очень сложно исправить со стороны приложения, так что оставалось только ждать.

Работающий resize

Почему это важно и вынесено в отдельный раздел?

Этот фикс важен не только потому, что теперь UI стал удобнее при низких разрешениях экрана, но и потому, что он блокировал переход на новый UI для триггеров и действий. Раньше единственным вариантом было переписать всё сразу — все триггеры и действия — и только потом выкатывать. Представьте себе: месяцы написания кода, который никто не может использовать до релиза, а багов потом было бы море.

Теперь же я могу переписывать всё постепенно. Работа всё ещё займёт месяцы, но теперь она хотя бы реально выполнима.

Bugfixes/Improvements

  • [Crash] Исправлен крэш в редакторе папок
  • [Overlays] Порядок Hide/Show — быстрее появляется
  • [UI] Улучшен drag’n’drop в Macros/BTs - должен стать более отзывчивым и точным
  • [Macros] Исправлен drag’n’drop в Repeat/IfThenElse
  • [Macros] Клонирование теперь копирует всю иерархию, а не только выбранную ноду
  • [BT] Починен PopOut - теперь он открывается корректно
  • [UI] Улучшено поведение при перетаскивании и изменении размеров окон
  • [DMA] Починен LeechCore init из-за которого не всегда инициализировалась плата DMA
  • [DMA] Починена утечка FPGA-платы при Dispose- [BT] Исправлен баг с CTRL+A - в некоторых условиях он выделял больше, чем следует
  • [BT] Добавлена параллельная загрузка узлов — ускоряет загрузку больших деревьев поведения и макросов
  • [Scripting] PoeShared.Blazor.Controls теперь доступен в скриптах по умолчанию, именно там лежат ReactiveSection/ReactiveButton
  • [UI] Теперь в логах пишется, почему скрипт был прерван - к примеру, при активации главного окна программы
  • [Scripting] Memory reading APIs - добавил ReadManaged<T>, который медленнее, чем Read<T>, однако поддерживает аттрибут MarshalAs
  • [Scripting] Memory reading APIs - добавлены методы для работы с х86/x64 процессами. Обратите внимание, что сам ваш скрипта всегда x64
  • [Scripting] Behavior Tree Editor теперь можно открывать из скриптов - теперь можно из ваших скриптов построить кастомную логику использования деревьев поведения, которые никак не привязаны к EyeAuras
  • [Scripting] Починена загрузка HTTP-ссылок в CV API
  • [Scripting] ReadExports теперь возвращает читаемое имя вместе с тем, которое экспортируется, к примеру ?StaticClass@UGameEngine@@SAPAVUClass@@XZ -> public: static class UClass * __cdecl UGameEngine::StaticClass(void)

1.7.8540

3 months ago

Overlapping panels - fixed!

Putting this in separate section as probably all users of EA at one point of another seen that problem - you resize one of the panels and it starts overlapping with another, the most usual scenario is C# Action overlapping with Event Log. This bug is known WPF Airspace issue and was known for at least 12 years. Specifically in the Microsoft UI framework that EyeAuras uses, it has been there since July 2020[https://github.com/MicrosoftEdge/WebView2Feedback/issues/356]

Ano now, finally, after years of waiting, this has been fixed by Microsoft. Yey. Unfortunately, this has been one of those issues which are very hard to fix on application-side, so I had to just wait.

Working resize

Why it matters?

This fix is important not only because now UI is more convenient to use on lower resolutions, but also it was a huge roadblock on migration of triggers/actions to a new UI framework. Before that the only viable approach was rewriting ALL of the triggers and actions in one go, I could not work on them on a 1-by-1 basis. As you can imagine, this is not really doable - full rewrite would take months of writing the code which nobody uses and then putting it all at once. Number of bugs would be stunning.

And now, I can start rewriting triggers/actions gradually. Rework will still take months, but it is doable.

Bugfixes/Improvements

  • [Scripting] IMemory -> ReadExports now returns human-readable version of export alongside with original name, e.g. ?StaticClass@UGameEngine@@SAPAVUClass@@XZ -> public: static class UClass * __cdecl UGameEngine::StaticClass(void)