Handle, который будет реагировать на обновление. Изначально в состоянии нормальное, когда приходит время - переходит в состояние протухло и проверок больше не будет. (Все проверки в состоянии Update происходят)
BasePlayer.activePlayerList только 1 пользовательif (player.IsReceivingSnapshot)
{
NextTick(() => OnPlayerConnected(player));
return;
} постоянно срабатываетpublic class GameSib : RustPlugin на каждого пользователя создается
Что касается jit, то это отдельная история - он работает так же как и динамическое связывание в ОС - делается стаб на определенную функцию в коде, и когда приходит момент переход выполняется не к самой функции а к заглушке, которая быстро компилирует код. Тут тоже без магии.