Для запуска нескольких окно, ему нужно рандомное время запуска, иначе он вводит данные для входа не в своё окно. Для отработки по дисконекту используйте команду Engine.GameClose; она может убивать ваше окно при любом условии, а скрипт будет перезапускать всё (например если опыт перестал идти 10 мин или бафа нету 10 мин). Прикрепляю пример с исправлениями и комментариями в связке со скриптом проверки на смерть, бафы, нубо-ребаф и возврат на спот.
uses SysUtils;
var
loggedIn:boolean;
War: Boolean = false;
RestartByTime: boolean = false;
RestartTime: TDateTime = StrToDateTime('14:55:0