Cooldowns
Cooldowns are configured per interactable via:
FEDInteractionInfo::CooldownFEDInteractionInfo::bCooldownSharedByInteractableTagFEDInteractionInfo::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(...)UEDInteractionViewModelfields:Cooldown,CooldownRemaining,CooldownPercent