Item active during capture

Players have to have a balloon deployed when capturing area. Now it activates when player has balloon in inventory. this is not how i want it to happen.

Can someone please give me some pointers on how capture area only activates when balloon is deployed. If balloon is destroyed capturing should be paused.

I’m new at this so any advice would be appreciated.

Hello, Welcome to the Forums.

How are you detecting it currently? Have you experimented with the conditional buttons ‘IsHoldingItem’ function? (although you might need an extra height check to make sure the player is floating since it is possible to be in a state where you are holding a ballon but have not deployed it)

Now i use Verse like this:

using { /Fortnite.com/Devices }
using { /Fortnite.com/Teams }
using { /Verse.org/Simulation }

balloon_capture_device := class(creative_device):
@editable
BalloonSpawners : 
item_spawner_device = array{}
@editable
CaptureArea : capture_area_device = capture_area_device{}
@editable
Timer : timer_device = timer_device{}
var CurrentCapturingTeam : ?team = false
var IsCapturing : logic = false

OnBegin<override>()<suspends> : void =
    for (Spawner : BalloonSpawners):
        Spawner.ItemPickedUpEvent.Subscribe(OnBalloonPickup)
    CaptureArea.ItemIsDeliveredEvent.Subscribe(OnBalloonDelivered)
    CaptureArea.AreaIsContestedEvent.Subscribe(OnCaptureInterrupted)
    CaptureArea.AreaIsScoredEvent.Subscribe(OnCaptureScored)
    Timer.SuccessEvent.Subscribe(OnCaptureComplete)
    Timer.FailureEvent.Subscribe(OnCaptureFailed)

OnBalloonPickup(Agent : agent) : void =
# Your logic here
    Print("Balloon picked up by player")

OnBalloonDelivered(Agent : agent) : void =
    if (Team := GetPlayspace().GetTeamCollection().GetTeam[Agent]):
        set CurrentCapturingTeam = option{Team}
        set IsCapturing = true
        Timer.Reset()
        Timer.Start()

OnCaptureInterrupted(Agent : agent) : void =
    Timer.Pause()
    set IsCapturing = false

OnCaptureScored(Agent : agent) : void =
    Timer.Complete()

OnCaptureComplete(Agent : ?agent) : void =
    if (IsCapturing = true):
        if (Team := CurrentCapturingTeam?):
            # Announce team win
        set IsCapturing = false
        RespawnAllBalloons()

OnCaptureFailed(Agent : ?agent) : void =
    set IsCapturing = false
    RespawnAllBalloons()

RespawnAllBalloons() : void =
    for (Spawner : BalloonSpawners):
        Spawner.SpawnItem()

Its not needed to be floating. but of couse if possible it could be useful to know.

Its just a condition i would like to use so people can snipe the balloon from a distance to reset countdown.

So this code almost works, its just that it doesnt care if deployed or not. I have no idea if its even possible.