// oTyper Step Event if active != _prev_active { type_direction = active ? 1 : -1; is_done = false; char_timer = 0; _prev_active = active; } if is_done exit; char_timer++; var _delay = (type_direction == 1) ? char_delay : char_delay_out; if char_timer < _delay exit; char_timer = 0; char_index = clamp(char_index + type_direction, 0, string_length(text_full)); text_shown = string_copy(text_full, 1, char_index); is_done = (type_direction == 1) ? (char_index >= string_length(text_full)) : (char_index <= 0);