Quick answer: Unreal Game Feature plugin's action persisting changes after deactivate? Action's OnGameFeatureDeactivating must explicitly undo - implement the reverse of OnGameFeatureActivating.
Halloween game feature adds spider decorations. Deactivate; spiders stay. Action's Activate registers them but Deactivate is a no-op.
Implement Deactivating symmetrically
void OnGameFeatureDeactivating(...) {
// undo every change from activating
}Symmetric. Each Activate operation has its Deactivate inverse.
Or track changes for rollback
Activate records the actor IDs it created; Deactivate destroys them. Generic; works for cases where the inverse isn't obvious.
Test the activate/deactivate cycle
Toggle feature 10 times. State should match the activate-zero baseline. Drift = leak.
“Game Features are toggleable. Toggling requires symmetric setup and teardown.”
For each Game Feature action, write a tiny test that activates/deactivates 5 times. The cycle catches leaks immediately.