I have been searching high and low for a way to simply detect an undecided player’s hero is empty. I can’t for the life for me For context, it’s for code to force-start Junkenstein’s Revenge because it won’t start unless all player slots are filled. So what i did was fill them by spawning dummy bots, but during testing, I realized that I need to destroy those dummy bots if any human player unselects their hero, so that I can let more humans join in the mean time, and then after a bit, spawn dummy bots again to fill any empty slots and force the game to start. So I have some loops and such to make it somewhat polished, but I can’t get it to detect that unslecting of a hero, and it’s super weird to me that such a simple thing is so hard.
Nothing is working. Not checking for null, or 0, or false. 
variables
{
global:
14: junkensteinsRevengeAssemblyTime
}
actions
{
"We wait however many seconds for additional players to join and players to get act together."
Wait(Global.junkensteinsRevengeAssemblyTime, Ignore Condition);
"Need outer loop due to edge case where you get 4 human players to join, so no bots are added, but then one human leaves JUST before it exits assembly... and you're stuck"
While(Is Assembling Heroes);
"We do, however, insist on having at least one player present to consider starting."
Wait Until(Number Of Players(Team 1) >= 1, 99999);
"If any human player undecides their hero, extend the assembly period to let more humans in."
If(Is True For Any(All Players(Team 1), !Is Dummy Bot(Current Array Element) && !Array Contains(All Heroes, Hero Of(
Current Array Element))));
Destroy All Dummy Bots;
Wait(2, Ignore Condition);
"Otherwise, force spawning of dummy bots to force start of game."
Else;
"Keep trying to exit out of assembly time and adding bots to force that until you do."
While(Number Of Players(All Teams) < Number Of Slots(All Teams));
Create Dummy Bot(Random Value In Array(Filtered Array(All Heroes, Current Array Element != Is Hero Being Played(All Heroes,
All Teams))), Team 1, -1, Position Of(Random Value In Array(Spawn Points(Team 1))), Vector(0, 0, 0));
End;
Wait(0.064, Ignore Condition);
End;
Wait(0.250, Ignore Condition);
End;
Destroy All Dummy Bots;
}
Somehow, it is getting stuck in If(Is True For Any(All Players(Team 1), !Is Dummy Bot(Current Array Element) && !Array Contains(All Heroes, Hero Of(Current Array Element))));