For those of you who are still daunted by these extension languages--or just lazy--I'm going to include a few rules of thumb that can help you determine whether or not Lua or MML can make something possible.
Look at MML if you want to...
- add substitute graphics or sounds (à la Texture Enhancement Package)
- change a lot of defaults that are hard-coded in the engine (gravity, liquid color, strings, map colors, damage flash colors, other stuff)
- make level-wide or engine wide modifications to environments, weapon order, item properties, etc.
- release a modification that requires download to use (Including new shapes or something like that)--as long as both players are guaranteed to have the MML file. (In other words, you can prevent OOS by ensuring that all players in a multi-player game will have the same version of the MML
- manipulate game mechanics on-the-fly (gravity in certain places, oxy drain in certain places, polygon heights, platform behavior, monster enemies + friends, etc)
- replace complex map trickery with simpler solutions (stacked terminals vs. displaying multiple term text on a single terminal)
- use accurate timers (a.k.a. variables as opposed to platforms)
- manipulate the position, health, oxygen, angle-facing, etc. of individual players
- place individual monsters and items on specific polygons
- manipulate monster actions like attack and move
- manipulate the position, yaw, pitch, or target of individual projectiles
- distribute a modification that needs only be played by joining a net game (non-embedded Lua scripts are sent to all players)
- modifying the basic numbers of a Shapes file (ticks-per-frame, etc)
- changing weapon behavior mid-game (burst count, recoil, etc)
- writing to files other than Aleph One Log.txt
- controlling monsters precisely (although this is improving)
- altering map geometry by adding or removing polygons, switches, rechargers, and terminal locations