не рандомный. у тебя есть определенный порядок действий. например ты стартуешь диалог с нпс
1. клик таргет - выбрали нпс
2. клик таргет опять - открывает начальный диалог
3. выбор какого-то пункта
в случае если был лаг, то твой таймер без проверки может пропустить один из таргетов, то есть начальный диалог ЕЩЕ не появится, а ты уже пошлешь ему выбор какого-то пункта - тебя сервер выкинет из игры и пошлет заметку админу, что кто-то там химичит
поясняю порядок:
клик таргета - на сервер
таргет взялся - с сервера на клиент
клик таргета еще раз - на сервер
открылся диалог - с сервера на клиент
выбираем какой-то пункт на сервер
вот тебе нужны дополнительные проверки:
1. клик таргета
2. ожидание пакета "таргет взялся".
3. клик таргета еще раз
4. ожидание появления первоначального диалога
5. клик нужного пункта
6. ожидание действия, связанного с этим пунктом - например это был выбор бафа - значит проверка "а появились ли бафы на персонаже?"