I'd like to offer a few more suggestions for additions to the TOTPP Lua events. As always, my perceptions of the relative importance of features might be different from that of other designers.
Addition: Make unit visibility editable
Reason: Makes automatic scouting easier. Would have been nice in OTR, for a couple reasons. One is that at night planes get moved a few squares away after surviving an attack, but they are still visible to the attacker. Another is that some units were automatically 'scouted' each turn if they were in range.
Existing Workaround: Create and delete a unit nearby to reveal the scouted unit. Can't hide units again with this method, however.
Perceived Importance: Medium. I doubt not having it would cause a game mechanic to be scrapped completely, but this did cause a limitation in an actual scenario.
Saved game format
Addition: City founded event after city construction is confirmed.
Reason: Simplifies code. At the moment, if a city is cancelled, some results of a city founded event persist, such as changes to the terrain.
Existing Workaround: Use onActivateUnit unit to check if a city was actually built, and reverse the effects if it is not. A bit awkward, and runs the risk of there not being another unit to activate.
Note: Keep the city founded before confirmation event, since that is useful too. E.g. to warn player if city will be deleted if built on that square, or to suggest a city name. (Also keep for backwards compatibility.)
Perceived Importance: Low to Medium. The work around is adequate if someone really wants the event.
Addition: Make civ.scen.params.startingYear a 'set' field.
Reason: Would allow variable duration of turns in combination with changes to civ.scen.params.yearIncrement.
Existing Workaround: Use a turn number instead of a date, and provide the date to the player in a popup screen.
Note: Changing civ.scen.params.yearIncrement doesn't immediately change the year displayed. You have to make a relevant cheat mode change, or reload the game.
Perceived Importance: Low to Medium. I personally think that the workaround is adequate, however I think this came up in discussion at some point, and displaying a correct month/year display would certainly be preferable to a turn counter. It would also be easier to plan events by date if the date displayed is correct (I wrote a 'calendar' module to convert between turns and date, using the startingYear and yearIncrement fields).
Addition: Make spaceship object fields settable.
Reason: Easier for experimentation, and it could be useful to change this for a scenario involving a space race.
Perceived Importance: Low, I think. I didn't even notice they weren't settable until trying to experiment with the Cenauri arrival event.
@Knighttime has a space race in Medieval Millennium, so he might have a bit more insight into the value.
Addition: Make unit type and improvement names settable.
Reason: For units, could allow "decoy" versions of units, where the difference is visible only to the owner. For improvements, could allow different flavour for different tribes. E.g. mosque vs. church.
Workaround: Have different rules.txt for each player.
Perceived Importance: Low. If this wasn't done because it is difficult, then I probably wouldn't bother. If it was just overlooked, then it would have some value. If it could be paired with changing the unit type's image, then it would facilitate 'recycling' unit types without batch files, and would probably be of high value. I believe that
@JPetroski has a project that is recycling unit types.
Addition: Enable changing a unit's type.
Reason: Simplifies promotion/demotion, especially if there is some sort of tracking individual units (I don't know of a scenario that tracks individual units on any significant scale, however).
Workaround: Delete and re-create the unit.
Perceived Importance: Very low. Only do if easy, since the workaround is pretty good.
Addition: Fix this Zone of Control Bug
Reason: Transferring units and cities between is more complicated than just looping over the units on a tile and changing ownership.
Workaround: Teleport units to a different tile, and then teleport them back after changing ownership.
Perceived Importance: Low to Medium. Writing a function to transfer the contents of a tile using the work around isn't too difficult, except that sometimes there isn't an obvious point on a map to move the units to temporarily.
Addition: Have option to stop land/sea units from having reduced movement points based on damage.
Reason: Reduced combat effectiveness doesn't always correlate with reduced movement. For example, in OTR, convoys that were damaged should still have moved at full speed to attempt to escape further damage.
Workaround: With the unit activation event, the unit type's movement allowance could probably be changed to compensate. (In OTR, we just turned off the 'unit has moved' flag for the convoys, so they could heal while still moving, so I haven't tried this.)
Perceived Importance: Low to Medium. This could be useful, but individual scenarios can probably find ways to deal with this issue if they really need to.