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.