...Стоит отметить, что из-за особенностей архитектуры кликера, подпрограммы Sub() не могут разделяться потоками, поэтому для каждого они индивидуальны и должны быть объявлены внутри потока. Другими словами, подпрограммы описанные внутри одного потока не могут быть вызваны другим потоком.
Основное (абстрактно) тело скрипта, даже если оно описано без thread() .. end_thread так же является отдельным потоком, поэтому для него справедливо все вышесказанное.
может можно это как-то вылечить?
Что получаем: 5 потоков используют 20 подпрограмм и они 100 раз описаны в скрипте!!! при редактировании править в пяти местах!
Если вынести все подпрограммы в отдельный скрипт и подключать с помощью #include, то получаем редактирование фактически одного скрипта в два окна "Clickermann", что тоже очень неудобно, по многим причинам.
Может хоть вкладки в редактор ввести, разделив исполняемый скрипт и сопутствующее редактирование?
В принципе если сделать кнопку открывающую в редакторе вкладки со всеми перечисленными в загруженном скрипте с помощью #include сопутствующими скриптами( без дублирования загружаемых неоднократно), а для этих вкладок сделать; автоприменение и автосохранение вместе с основным скриптом по нажатию кнопок редактора, то из недостатка получим преимущество, а если редактор научится запоминать и открывать скрипты на той строке на которой они в последний раз были закрыты, то будет совсем замечательно, получим мощный инструмент редактирования.