Код ниже вызывает краш. При этом стоит поставить ещё один пробел перед условием и всё нормально компилится.
?????????????????????
private void Respawn() {
        int id = GetTimerAttach(GetExpiredTimer())

        Creep.get(id).update(0)

        if (CREEPS_RESPAWN_SHOW_EFFECT) {
            DestroyEffect(AddSpecialEffect(RESPAWN_EFFECT, Creep.get(id).spawnX, Creep.get(id).spawnY))
        }
        
        DestroyTimer(GetExpiredTimer())
    }
Используется timer exploit
define TimerStartEx(whichTimer, period, handlerFunc, userData) = {
    TimerStart(whichTimer, I2R(userData), false, null) // timer exploit, xgm 2007, by Scorpio
    PauseTimer(whichTimer)
    TimerStart(whichTimer, period, false, handlerFunc )
}; define GetTimerAttach(h) = R2I(TimerGetRemaining(h)+0.5)

Принятый ответ

Убрал точку с запятой перед дефайном GetTimerAttach — перестало крашить. Кек.

Проблема в дефайне. Ему нужна была именно переменная. Нельзя использовать просто GetExpiredTimer().
`
ОЖИДАНИЕ РЕКЛАМЫ...