Quick answer: Bind OnComponentBeginOverlap after RegisterComponent and AttachToComponent. Pre-attach binds are stale.

Spawn weapon, attach to character socket. Damage zone overlap doesn't fire. Subscription happened pre-attach.

The Fix

BP:
  Spawn Actor (Weapon, Deferred)
  Set parameters
  Finish Spawning

  Get Damage Component:
    Attach Component To Component (Socket)
    Register Component
    Bind Event to OnComponentBeginOverlap (Handler)

Order: spawn → finish → attach → register → bind. Collision world tracks component via the now-correct hierarchy.

Verifying

Walk weapon through enemy: overlap fires. Without re-bind: silent.

“Attach. Register. Then bind.”

Related Issues

For SpawnActor Deferred, see spawn deferred. For Event Dispatcher in Construct, see dispatcher.

Order matters. Bind last.