Also, I don't think including too much scripting in the equipment system is such a good idea. It's not exactly the easiest nor the best optimized way of doing things.
Well the only other way I see making equipment work predicatbly and still be general enough to supply most/all posisble capabilities is to create an equipment.tbl or a ship_cards.tbl and go from there.
Things like HUD display for equipment should be implemented in engine.
...What? what's wrong with the hud.tbl system?
In general, it should be possible to make equipment using SEXPs and tables. Yes, an equipment.tbl would be a good idea, it'd simplify a lot. It's syntax could be simple:
$Name:
$Uses: (0 for passive equipment, activated upon mission start)
$Regeneration: (how fast the uses regenerate, in case you wanted an energy meter)
$Event: (SEXP to execute on activation)
or
$Script: (Script to execute on activation)
or
$Special: (built-in presets. Typing a name of armor type from Armor.tbl would make it apply that armor, and there could be other presets like "cloak").
Scripting is good for advanced features, but things like HUD are better done via tables. There should be an optional HUD gauge, not using custom gauges system, but rather a dedicated "equipment gauge". It'd show installed equipment and number of uses.
Here, it's more of a matter of sending a new "item" over the net.
I don't see that big of a deal, during initialization of the game and/or when a player joins while the game is in-progress, the player's computer would send "I has dees items: blah1, blah2, blah3." If the multiplayer code is that bad where it has the player continously report what items it has, then yes, that would be a big deal.
Well, let's start with saying that FSO MP code is badly written.
Somebody mentioned running into packet size limits when discussing bumping weapon bank limit. I don't know details, I don't have a lot interest in multi.