STF mod creator, Modcrafters.com admin, CampaignCreations.org staff
Dear Syphon:
While true, there's a point where you might as well say you can always code your own game. However true it may be, it doesn't help the poster, as it ignores the intent of the question asked. He wants to know what is feasible with the tools we have, not what is possible if given enough time and education on programming.
Dear Dracolich:
There are a lot of nuances to modding that are often only discovered while testing and trying to accomplish something new. For instance, the Firebat and Zealot are hardcoded to display double damage. They don't use the Factor field like other units do because their damage is iscript-based. New upgrades and changing what units benefit from upgrades is not possible at present, though thanks to some EXE edits a number of upgrades can now have different values changed (like how much armor the Ultralisk upgrade gives, or the range increase for the Marine).
Reams could be written on what isn't feasible, and more reams could be written on creative ways around those limitations. You'd be better off asking more specific questions about what you'd like to do, instead of asking for generalities.
Instead, here's a list of what can generally be done:
TBL Editing: Change any name or text in the game.
BIN Editing: Move the position of various menu and GUI objects. Some aspects of the HUD are stuck together, though.
DAT Editing: Change file references and statistic of units and weapons.
GRP Editing: Change any graphic in the game, from units, buildings, doodads, anything.
SMK Editing: New portraits, animated menu items, or even cinematics if you're so inclined.
Tile Editing: Complex, but can completely change the tilesets, both graphically and data-wise (such as what is walkable or not).
Iscript Editing: One of the most powerful editing abilities, all animations can be changed. Many unique things can be done here with creative and often elaborate use of opcodes. How a unit moves, dies, attacks, idles, etc is all controllable here.
Grafting: Also known as memory patching, this is the widest frontier of possibilities. At its most basic level, it allows buttons and requirements to be edited. Give spells to different units, have structures create different units, change what a building needs before it can be built, etc. In the past year or so, FireGraft has also included new EXE Edits, which allow previously hardcoded things to be editable. For those experienced with programming, FireGraft can also employ custom Plugins that can further edit Starcraft in extraordinary ways. There are also some new things on the horizon for FireGraft, though I cannot talk about them at this time.