1. Destroy the B_Damaged group, because since it's indexed it doesn't get fully recycled:
Unit Group - Remove all units from B_Damaged[Index]
2. Why create floating text over at a point instead of creating it over the unit directly?
Floating Text - Create floating text that reads (String((Integer(B_MaxDamage[Index])))) at B_Point with Z offset 0.00, using font size 9.75, color (33.00%, 33.00%, 99.00%), and 0.00% transparency
Also add a user adjustable global which allows the unit to pick if he wants the floating text or not.
Actually impressive and clean GUI coding there. However, I don't find anything original in the spells, but it could be useful for those searching for such spells. Just make sure to fix the first problem, and you're good to go! The second point is just a minor issue. 3/5