Sorry if this has already been proposed before, but I have a few new ideas for functions (most of which would be of benefit for so-called "support structures"):
eventStructureActivated(structure, target): This function would be called whenever a support structure, such as a LasSat Command Post, was activated, regardless of who owns the structure (so that functions that are called when this event is called in rules.js wouldn't normally cause desyncs in multiplayer). The target property could be either an object, or a location. This would not only enable AIs to react to LasSats that don't target themselves directly (such as prompting an AI allied with the structure's owner to launch an attack on the victim), but would also allow for the creation of custom support structures that could provide map-wide or area-wide effects that don't necessarily involve destroying enemy units, such as revealing the entire map, or parts of the map, or jamming all enemy sensors on the map, rendering them temporarily unable to spot targets for artillery bombardment.
revealMap(player, enable/disable): This function would manually enable/disable the player's ability to see the entire map, as if the player built/lost a Satellite Uplink, or (de)activated the "deity" cheat, allowing for a spectator mode to be implemented without requiring spectators to have a Satellite Uplink, or any kind of physical presence for that matter (especially when used alongside the setMiniMap() function). It would also allow for the creation of support structures that would only reveal the entire map for a short period of time (much like the Strategy Center or Satellite Hack from Command & Conquer: Generals), as opposed to the Satellite Uplink constantly revealing the entire map as long as the structure stands. (Speaking of, the Satellite Uplink could be unhardcoded and its functionality written in rules.js if such a function was implemented.)
fireAtTarget(object, target): Normally used in eventStructureActivated(), it orders a unit or structure with a weapon equipped, such as a LasSat Command Post, to fire at the designated game or location object using its equipped weapon. Would allow for the creation of custom superweapons, such as, for example, a tactical howitzer or missile launcher that fires EMPs with a wide splash radius towards distant locations. (Would also add some incentive to unhardcode the LasSat Command Post's functionality and write its programming in rules.js.)
freezeObject(object, duration): The target object will be unable to move or take action for the designated amount of time, as if struck by an EMP. Would be useful with eventAttackedUnthrottled()... if the event was called regardless of who owned the object that was attacked.
adjustDroidSpeed(droid, speed multiplier, duration): Applies a multiplier to the targeted droid's speed, either slowing it down, or speeding it up. Could be used to develop custom objects or support powers that can either speed up friendly droids, or slow down enemy droids. Could also be used by modders to adjust the speed of all of a player's droids once that player has researched a particular tech (assuming that eventResearched() is adjusted so that it's called whenever ANY player researches the given tech).
eventAttacking(attacker, target): This is called whenever an object fires its weapon, regardless of who owns the object. This would allow modders to, say, have cloaked units decloak while attacking another object.
setObjectColor(object, alpha, red, green, blue): Applies a colored filter to the target object. Useful for creating special effects with the object. For example, an object which is disabled via EMP could appear darker than usual to indicate that it's powered down, or an object could appear to be glowing brightly to indicate that it is invulnerable or shielded.
setObjectTransparencyToPlayer(object, player, transparency): Sets the target object's transparency (the degree of how others can see through the object) towards the target player. It could allow modders to program certain objects (such as stealth units) to become invisible to all players' eyes, unless the player controls the object, unless the object attacks, or unless the object is within a certain distance of a certain other object (all of which could also be programmed in using rules.js), in which case, the object could appear as half-visible, or fully visible while attacking.
Also, I'd like to have objects be given the "damageable" property, which could allow certain droids or structures, through certain scripts (such as the addition of a makeObjectDamageable(true/false) function), to not only become invulnerable, but also untargetable by anyone (though the owner of the object could still be able to select it). This would allow modders to create objects that could, say, be added onto the map when a certain support power is activated, and give visibility over a certain location without being targetable or visible (essentially providing an effect similar to a radar scan support power, as seen in games such as StarCraft 2 or Command & Conquer), or could render the target unit or structure invulnerable to damage (similar to the Iron Curtain support power from Command & Conquer: Red Alert 1-3).
Creator of Warzone 2100: Contingency
Founder of Wikizone 2100: http://wikizone2100.wikia.com/wiki/Wikizone_2100