Problemem jest ten kawałek kodu wywoływany wielkorotnie:
GML
sprite_set_alpha_from_sprite(sprite_light,sprite_light)
sprite_set_alpha_from_sprite(sprite_flashlight,sprite_flashlight)
Raz zmodyfikowany w ten sposób sprit już taki zostaje. Za każdym razem to się wykonuje gdy tworzy się object_lighting_engine, w efekcie po przejściu do rooma sprit jest ponownie modyfikowany i tak w kółko. Musisz zablokować wykonywanie tego np. tak:
stwórz nowy pusty room ( musi być pierwszy ) w jego creation code wpisz
GML
global.once = false;
room_goto_next();
a create object_lighting_engine zmodyfikuj w ten sposób
GML
if ( !global.once )
{
sprite_set_alpha_from_sprite(sprite_light,sprite_light)
sprite_set_alpha_from_sprite(sprite_flashlight,sprite_flashlight)
global.once = true;
}