Why can't a failure context have an else clause?

I’m pretty sure Verse uses short circuit evaluation which means that if your if condition fails on the first statement (AllPlayers[0], i.e. the AllPlayers array is empty), then it will not try to solve the other conditions, including DistanceBetweenPositions: float = DistanceXY(FirstPosition.Translation, SecondPosition.Translation), which is why you can’t access this variable

If you want to keep access to this distance variable you would write your condition as such :

if:
    Player:player = AllPlayers[0]
    FortniteCharacter:fort_character = Player.GetFortCharacter[]
    set SecondPosition = FortniteCharacter.GetTransform()
    DistanceBetweenPositions: float = DistanceXY(FirstPosition.Translation, SecondPosition.Translation)
then:
            
    if(DistanceBetweenPositions < 1000.0):
        Print("Distance Moved: {DistanceBetweenPositions}")
        Print("Applying Damage")
        HurtPlayer(50.0)
    else:
        Print("Distance Moved: {DistanceBetweenPositions}")
        Print("Nobody got hurt ;-)")