Skip to main content

Cooldowns

Cooldowns are configured per interactable via:

  • FEDInteractionInfo::Cooldown
  • FEDInteractionInfo::bCooldownSharedByInteractableTag
  • FEDInteractionInfo::bInitiallyStartOnCooldown

The player component maintains cooldown caches both client-side (for UI) and server-side (for authoritative enforcement).

Cooldown types

Depending on the target, cooldown can be stored as:

  • Per actor instance (actor pointer key)
  • Per foliage instance location (vector key)
  • Per interactable tag (shared cooldown)

Shared-by-tag cooldown

If bCooldownSharedByInteractableTag is enabled, the server stores the last interaction time by GameplayTag.

Use cases:

  • Multiple pickups of the same category share a cooldown
  • Prevent spamming any interactable of a certain type

Initially start on cooldown

If enabled and cooldown is > 0, the first interaction attempt will be treated as “cooldown not ready” until the initial delay elapses.

This is useful for:

  • Spawn protection
  • “Warmup” interactions

UI

The interaction widget can display cooldown through:

  • UEDInteractionWidget::UpdateCooldownInfoMaster(...)
  • UEDInteractionViewModel fields:
    • Cooldown, CooldownRemaining, CooldownPercent