diff --git a/crates/bevy_app/src/app.rs b/crates/bevy_app/src/app.rs index f221dc04e2..be19d82da4 100644 --- a/crates/bevy_app/src/app.rs +++ b/crates/bevy_app/src/app.rs @@ -328,7 +328,15 @@ impl App { pub fn add_state(&mut self) -> &mut Self { self.init_resource::>(); self.init_resource::>(); - self.add_systems( + + let mut schedules = self.world.resource_mut::(); + + let Some(default_schedule) = schedules.get_mut(&*self.default_schedule_label) else { + let schedule_label = &self.default_schedule_label; + panic!("Default schedule {schedule_label:?} does not exist.") + }; + + default_schedule.add_systems( ( run_enter_schedule::.run_if(run_once_condition()), apply_state_transition::, @@ -337,9 +345,8 @@ impl App { .in_base_set(CoreSet::StateTransitions), ); - let main_schedule = self.get_schedule_mut(CoreSchedule::Main).unwrap(); for variant in S::variants() { - main_schedule.configure_set( + default_schedule.configure_set( OnUpdate(variant.clone()) .in_base_set(CoreSet::Update) .run_if(in_state(variant)),