Quick answer: Set Expose-on-Spawn props between SpawnActor Deferred and FinishSpawning. Construction Script runs at FinishSpawning — needs valid props.
Spawn weapon Deferred. Construction Script tries to read WeaponData. WeaponData was unset; spawn errors and actor doesn’t materialize.
The Fix
BP:
→ Spawn Actor From Class (Deferred)(Class=Weapon, Transform)
out Actor
→ Set WeaponData on Actor
→ Set TeamID on Actor
→ Finish Spawning(Actor) // Construction Script runs now with valid data
Mark properties as Expose on Spawn so they appear as pins on Spawn Deferred too. Construction reads them deterministically.
Verifying
Spawn weapon. Actor exists with correct data. Without setting between: Construction errors and actor invalid.
“Set in between. Finish creates.”
Related Issues
For Soft Class async load, see soft class. For BP Interface defaults, see BPI defaults.
Set then Finish. Actor lands.