Removing a component group that is already unapplied damages existing components
Partner Rank: 2
Verification builds: Beta 1.10.0.4
Summary: When an event removes a component group from an entity, all components that happen to be inside that component group are removed or reset, even if the component group removed was never applied in the first place. In other words, removing a non-applied component group has destructive effects.
Repro Steps:
1. Download the attached behavior pack
2. Spawn a creeper
3. Punch it
Expected Results: Creeper stays the same size
Observed Results: Creeper is reset to a default size of 1.0
Screenshots/Videos attached:
- Video of repro steps
- Behavior pack
- Copy of creeper entity from behavior pack for convenience
Notes
When spawned, the creeper applies a component group "always_applied" that sets its scale to 2. When punched, it removes a component group "never_applied". True to its name, this component group never exists on the creeper, therefore removing it should do nothing. Instead, however, the creeper's scale component gets reset.
This puts the creeper in a seemingly invalid state in which its list of component groups is the same as it was when it spawned, but a component inside was disturbed by an action that should have had no effect.