counter wieghts

make proper weights to make certain parts of your robot heavier. for example make your drive base heavier so your huge arm wont tip the bot over.

its better to design a robot that will not tip over to begin with instead of adding unnecessary weight to the drive train.

There’s wisdom to what he says, though. Often the “lightest possible drivetrain” and the “lightest possible arm” together may put your CG too high, so you end up with a heavier drivetrain for stability.

correct. But it is better to design a robot with the intention of creating a stable drive train and adding weight when necessary instead of creating a heavy drive train on purpose

Counterweights have very limited uses in VEX. 254F used one in '09 (for Clean Sweep), which consisted of a stack of 5x25 plates screwed together with 2" screws when. It’s purpose was to keep the robot from falling over as it deployed a fence on the other side of the field to keep the other teams from scoring. But applications where you have hundreds of rubber bands powering 10+ pounds of linear sliders over 7 feet aren’t encountered every day…
Usually your problems with CG can be solved with designing your manipulator and drive base to balance each other out, and also the 1.5 lbs of batteries gives a lot of counterweight that can be put pretty much wherever.
254D used little bumper things that went in front of the front wheels that hit the ground when the robot started to tip forwards, so we never ended up falling over, even when most of the weight was well to the front of the robot and we were accelerating backwards.

We have used a software solution that worked quite well. We placed 4 limit switches, one on each side of the robot, so that they would be pressed when the robot started to tip. The robot would then bring its base back under the center of gravity (This wasn’t too difficult because we had a holonomic drive). We tried pushing it as hard as we could without physically damaging the metal (more force that any robot could exert during a match) and it still didn’t tip. This probably isn’t the right solution for most applications, but I just wanted to throw it out there.