(try_begin),
CURRENT MAP IS INFANTRY_MAP_1
(try_for_range, ":cur_ai_troop", LIST OF INFANTRY UINITS),
(store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
(eq, ":ai_troop_faction", ":team_faction"),
(val_add, ":num_ai_troops", 1),
(else_try),
(try_for_range, ":cur_ai_troop", multiplayer_ai_troops_begin, multiplayer_ai_troops_end),
(store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
(eq, ":ai_troop_faction", ":team_faction"),
(val_add, ":num_ai_troops", 1),
(try_end),
I'm lucky I just your post now lol
My recommendation (unless someone comes up with a better one), is that you use the mm_spawn_restrictions map prop variable that already works for players - IE where players can't take cav, bots will not be able to pick cav too, because of the same variable. So something more like this:
(try_begin),
mm_spawn_restrictions = inf only (try_for_range, ":cur_ai_troop",
LIST OF INFANTRY UINITS),
(store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
(eq, ":ai_troop_faction", ":team_faction"),
(val_add, ":num_ai_troops", 1),
(try_end),
(else_try),
mm_spawn_restrictions = cav only (try_for_range, ":cur_ai_troop",
LIST OF CAV UNITS),
(store_troop_faction, ":ai_troop_faction", ":cur_ai_troop"),
(eq, ":ai_troop_faction", ":team_faction"),
(val_add, ":num_ai_troops", 1),
(try_end),
Haven't added proper code to make quick answer sorry. *I'm going to check the code to see if that section is still right or not though
EDIT: I have realised the changes needed to the scripts are more complex than this, hopefully I will get back to you