Buff players inside a zone, undo it when they leave.
SpeedZone.AgentEntersEvent.Subscribe(OnEnter)
SpeedZone.AgentExitsEvent.Subscribe(OnExit)
OnEnter(Agent:agent):void =
SpeedBuff.Pickup(Agent)
OnExit(Agent:agent):void =
SpeedBuff.Remove(Agent)
Takeaway — Enter grants, exit reverts — the zone owns the buff.