Welcome to RCbot forums...
If you want perfectly balanced teams by class, try adding bots from the rcbot config.ini, and disable min/max bots, like this :
rcbot addbot 0 2
//rcbot addbot 0 3
rcbot addbot 1 2
rcbot addbot 1 3
rcbot addbot 2 2
rcbot addbot 2 3
rcbot addbot 3 2
rcbot addbot 3 3
rcbot addbot 4 2
rcbot addbot 4 3
rcbot addbot 5 2
rcbot addbot 5 3
rcbot addbot 3 2
rcbot addbot 3 3
(rcbot addbot <class> <team> <name>)
This forces bot classes to specific teams. name doesn't seem to work. bots still use a random profile so if your profile bot names are axis or allied specific, you will get some German named bots on allied team and vice versa... Also, set rcbot_change_classes 0, to keep teams balanced by class...
I just remark out (//) the class I want to play, usually rifleman...
Yeah, if you want bots to respect the "team" settings in the profiles, you will have to use min/max bots instead of addbot, like:
rcbot config min_bots 11
rcbot config max_bots 14
bots will join until max_bots minus 1, 13 bots in this example... bots should join correct teams with proper names from the profiles, but the classes you get will be random depending on the profile loaded. What i mean is, you may get 3 snipers on axis and no riflemen, 2 mg's and no rocket bots, etc... So i'd recommend setting rcbot_change_classes 1 when using min/max bots, bots will keep changing classes throughout the round, so it helps balance the team classes... This works well to randomize the matches.
The main reason I use addbots instead, is because my PC won't handle more than 16 bots, and I want teams evenly matched by class to test waypoints. But if your PC will handle more bots, min/max bots may be what you want to use?
Note, occasionally I get unbalanced teams too, usually when I load the first map (listen server), not sure why? I just reload the map and teams stay balanced after that...