Сохранение глобальных переменных в реестре Windows:
ASM может сохранять строки в реестре Windows. В отличие от UO.GetEasyUO/UO.SetEasyUO записи в реестре создаваемые ASM не совместимы с EasyUO. Но они позволяют создавать в реестре ветви и сохранять переменные под любыми именами. Вы не должны забивать себе голову заботами вроде "А есть ли в реестре нужная ветвь или переменная?", потому что ASM берет все на себя. Если ветви нет, она будет создана. Если переменной нет, но вы хотите присвоить ей значение, она будет создана. Сразу после запуска ASM настроен на работу с ветвью "common". Корневая ветвь для ASM - "HKEY_LOCAL_MACHINE\SOFTWARE\InjectionASM".
Наиболее распространенное использование таких переменных это связь скриптов на нескольких Injection или связь скрипта и внешней программы.

asmSetRegistryKey(string Name)
Функция задает ветвь реестра с которой будет работать ваш скрипт. В качестве имени допустимы только цифры, буквы английского алфавита и символ подчеркивания.

string asmGetRegistryKey()
Функция возвращает ветвь реестра с которой работает ваш скрипт. В качестве имени допустимы только цифры, буквы английского алфавита и символ подчеркивания.

asmSetRegistryVar(string Name, string Value)
Функция сохраняет в реестре значение Value под именем Name. В качестве имени допустимы только цифры, буквы английского алфавита, двоеточие и символ подчеркивания.

string asmGetRegistryVar(string Name)
Функция возвращает значение, хранящееся в реестре под именем Name. В качестве имени допустимы только цифры, буквы английского алфавита, двоеточие и символ подчеркивания.

Пример:
...
  UO.asmSetRegistryKey('TestShard_Sparing'); Устанавливаем ключ в реестре для нашего скрипта
...
  If UO.asmGetRegistryVar('Fighter1')=='' Then; Если позиция первого бойца свободна
    UO.asmSetRegistryVar('Fighter1', UO.GetSerial('self')); занимаем ее
  Else; В противном случае
    UO.asmSetRegistryVar('Fighter2', UO.GetSerial('self')); Занимаем позицию второго бойца
  EndIf
...