Fail, abandon, timers
const bool bFailed = QuestComp->FailObjective(FName(TEXT("EscortDied")));
QuestComp->AbandonQuestById(FName(TEXT("BrokerContract")));
Do not use the bool on the owning client to update the HUD. The bool is false after the RPC is sent. On the server, true means the change applied.
Fail and abandon are valid only from Active. The quest then becomes Available. The plugin erases the progress.
float Remaining = 0.f;
QuestComp->GetObjectiveFailTimeRemaining(
FName(TEXT("BrokerContract")),
FName(TEXT("KillRaiders")),
Remaining);
// Live on authority. Last replicated snapshot on the owning client.
Time To Fail ticks on authority only.
Fail and abandon on the client
Those transitions change Active to Available in one update. Client OnRep does not fire Failed or Abandoned for that change.
When the widget is shown, rebuild from GetQuestsByStatus. Server bindings still receive OnQuestFailed and OnQuestAbandoned.