diff --git a/rust/src/player/local_player.rs b/rust/src/player/local_player.rs index 2846067..528d397 100644 --- a/rust/src/player/local_player.rs +++ b/rust/src/player/local_player.rs @@ -391,11 +391,13 @@ impl ICharacterBody3D for LocalPlayer { .connect_other(self, |s, lock| s.set_lock(lock)); } - self.telegrenades_allowed = if let Some(game) = Game::singleton() { - game.bind().opts.is_true(GameOption::TelegrenadesAllowed) - } else { - false - }; + self.run_deferred(|s| { + s.telegrenades_allowed = if let Some(game) = Game::singleton() { + game.bind().opts.is_true(GameOption::TelegrenadesAllowed) + } else { + false + }; + }); } fn process(&mut self, delta: f64) { diff --git a/rust/src/player/remote_player.rs b/rust/src/player/remote_player.rs index 5840b5e..a8e52a9 100644 --- a/rust/src/player/remote_player.rs +++ b/rust/src/player/remote_player.rs @@ -309,11 +309,13 @@ impl ICharacterBody3D for RemotePlayer { self.swap_weapon(WeaponType::Raygun, false); self.update_health_bar(); - self.telegrenades_allowed = if let Some(game) = Game::singleton() { - game.bind().opts.is_true(GameOption::TelegrenadesAllowed) - } else { - false - }; + self.run_deferred(|s| { + s.telegrenades_allowed = if let Some(game) = Game::singleton() { + game.bind().opts.is_true(GameOption::TelegrenadesAllowed) + } else { + false + }; + }); } fn process(&mut self, delta: f64) {