evafan002 wrote:just how many variables are in the script anyway? 200? if its anywhere near that number then even if thats one variable for the on and off states of each control we are literally going to have to print the manual and keep it taped to our desktops

Yep, I think it would be fair to put the "Advanced" tag on this one
Actually, it's not difficult to operate. There are 74 "control values" fields in the engine XML, but many of them are for gauges rather than controls, and several are necessary to allow the LUA script to control various animations in the model, which are automatic and don't requre the player to do anything.
For example, there are two control values called RegulatorClutch and ReverserClutch that the script uses to command the animations of the little "clutch" handles that the engineer would squeeze to allow the regulator and reverser to be moved. They are animated in the model, but the script associates those animations to the movement of the actual regulator and reverser levers, via my RegulatorClutch and ReverserClutch control variables, so that the little handle opens when the lever starts to move and closes when the lever stops. All the player has to do is move the levers.
I could give more examples, but the point is that the control values in the XML are needed for connecting animations (and other visual effects and sounds too, so that they are triggered at the right moments) to what the player is doing or, indeed, what the loco is doing (for example, opening the safety valves at the right time). So to get all the nifty animations and effects, I had to create many specialised control variables, but it doesn't mean the player has to learn 74 key commands. Actually, there are only about 67. OK, that's still a lot

But many of them are to do things like opening doors and windows, and if you can't remember the kb command, you can still just go into cab view and use the mouse to open the doors and windows. In fact, everything except for the compressor drain ** and the classification lights can be controlled with the mouse. Those two exceptions are because the corresponding controls weren't in the cab.
Also, don't confuse variables in the script with control values in the XML. The XML control values can be accessed (by calling "GetControlValue" and "SetControlValue" functions) in the LUA script, but the LUA script also has a lot of its own internally declared variables that are used only by the script itself.