Vex: Combatstatus and Supportstatus...
They're both pretty much the same thing as far as letting the group know what the current enemy is. The only real difference is whether you should be swinging or not. I believe the idea is to have the puller do a single 'assist' call, SA and other melee's set Combatstatus and dive in. Necros, Wizzies and the like set Supportstatus and know that if you call for a nuke it's headed for the target.
Part of the problem is that when the switchover to MQ2Data happened, things weren't always working correctly. Some routines implemented ${Me.Combat} checks instead of using Combatstatus. In particular, something odd happens with clerics who swing. I can't find out why exactly, but if certain commands are called while the cleric is in his heal loop, when he goes to reset the target to the mob, he instead remembers the last person healed and merrily tries to beat on them a while.
Part of the problem (I believe) is that in ChkGroupHealth the Breakout tests will bail out without resetting the SaveCombatID value, although when I fixed that with /goto's it STILL happened

/sigh...
In the time LG was away, my code has diverged quite a bit from the core Genbot. I've fixed some things, broken some others. I did find some problems that still live in Genbot, which are probably easier to describe rather than post fixes for. One big one that causes all kinds of oddities is that SpellSub can be called from events as well as from the main loop. That means that if you call /doevents from inside SpellSub (like we do) another command can call SpellSub, which does some wierd things for sure. I've tried to fix this here by two things:
1) When an event is triggered, add a command to a FIFO queue (mine actually has priorities) then next time through the Main Loop, pop the highest priority event and do it. This can't really work in genbot as it is because some events/routines can take ALOT of time to exit.
2) Since I tried to move all casting into the Main Loop, I had to put ALOT of delay timeouts into the code to prevent bad routines from hogging time from the Main Loop.
Another option is to do what spellcast.inc does and only call the /doevents that you need for casting spells to work (ie: Just call /doevents for the fizzle and spellcast checks)
Does all this stuff need to happen in Genbot? Prolly not. I did some really odd stuff just to make it work here. In alot of cases, what I tried was a truly horrendous idea :)
The above info *IS* useful though, because when you start to think about how individual events can affect the Main Loop, and visa versa, you can start to debug alot of the wierder things that can happen with your bots.
Sorry this is long, I've got about a fifth of bourbon in me... Memorial day and all!