diff --git a/crates/bevy_ecs/src/system/system_registry.rs b/crates/bevy_ecs/src/system/system_registry.rs index 10b5790318..f6cf792f71 100644 --- a/crates/bevy_ecs/src/system/system_registry.rs +++ b/crates/bevy_ecs/src/system/system_registry.rs @@ -12,6 +12,10 @@ struct RegisteredSystem { system: BoxedSystem, } +/// Marker [`Component`](bevy_ecs::component::Component) for identifying [`SystemId`] [`Entity`]s. +#[derive(Component)] +pub struct SystemIdMarker; + /// A system that has been removed from the registry. /// It contains the system and whether or not it has been initialized. /// @@ -125,10 +129,13 @@ impl World { ) -> SystemId { SystemId { entity: self - .spawn(RegisteredSystem { - initialized: false, - system, - }) + .spawn(( + RegisteredSystem { + initialized: false, + system, + }, + SystemIdMarker, + )) .id(), marker: std::marker::PhantomData, }