Should I avoid "SetTimerByEvent" at the "BeginPlay"?

You need an event dispatcher and then call the event in a function or bp