Hello UDN,
We have identified an issue specifically with MassComponentHitSubsystem which brought us to question whether we are mis-using the system as it was intended, or if there is perhaps a bug in the Mass code.
If you add a MassAgentComponent (either in blueprint or in C++) to a static actor, it will result in this actor being registered automatically with Mass, which results in MassComponentHitSubsystem binding this actor’s capsule component to a delegate which gets serialized into the actor and saved.
The issue is that MassComponentHitSubsystem is a runtime subsystem only, and the actor now has a serialized reference to it outside of runtime.
This causes a cook failure as the actor references a runtime subsystem which doesn’t exist outside of runtime
Error: [CookWorker 0]: /Game/__ExternalActors__/Maps/.../MyActor :
Failed import for MassComponentHitSubsystem /Game/Maps/.../MyMap:MassComponentHitSubsystem_0",
"id":301,"format":"{channel}: {severity}: [CookWorker 0]:
Looking a bit into MassComponentHitSubsystem, it seems perhaps that the unbind logic never fires for static actors, perhaps because they are not destroyed like runtime spawned actors are.
Our question is: Is it incorrect to use MassAgentComponent on static actors?