My interest lies in ... develop(ing) scenarios that are totally AI with no customer train driving. In essence a virtual giant model railroad..
Hi boleyd - That is the way I like to play the game too. Using the existing rules and driver commands is like learning a new language. There are so many and the combinations so interesting but it takes a long time to master enough to get things going the way you want them to be.
If you are serious about programming AI, the make a list of the commands and rules you know and study how they work and how they fit together, just as if you were learning Chinese, for example. Then gradually acquire more commands and add them into your schedule as you get to know them.
If I want to get in the cab to enjoy the ride the computer does all the heavy lifting and I simply go along for an executive ride.
This is a fun way to learn the route and explore the various branch lines. By the way, the commonly accepted term for a customer train is a "Player" train, with the automatically piloted ones being "AI" trains.
Any time I want to monitor an AI train to check that the instructions are correct I usually use external view as the schedule of my train is then visible and I leave the mouse pointed at the command being executed.
The problem this brings up is scheduling. I have seen some scheduling rules and commands but most seem to be directed toward the customer driving a train that may operate amongst various AI trains at the same time. My preference is a tool that allows scheduling of just AI.
The driver commands are directed at all trains whether they are Player ones or AI ones. If there is a command on the schedule then the train will try to obey it unless you use the "Stop Train" menu option. Even the "Drive" option is an AI instruction to keep going until something happens to stop it.
An important rule by Brummfonfel is the Schedule Library (built-in). With this you can set up short or longer strings of schedule commands which can be copied into any driver schedule using a driver command: Copy commands from (Library). You can use the same strings on more than one train as they progress down the line.
One technique is to chain the strings together by having the last command of a string call the next string. This is fine if you want your train to carry out a long schedule.
Another way to do it is to place a series of "Copy" commands in the driver schedule and switch on "Repeat".
A way of finding the rules and commands that worked for me is to use the DLS: I selected catagory "Rule" and left the search field blank. Then a list of all rules came up and I was able to pick out interesting ones for study. Do the same for Driver Commands. (Hope this still works)
Some Timetable rules exist which are for scheduling, but I don't like to be tied down to the trains running at specific times, I prefer more random train movements. (Wouldn't make a very good railwayman, would I?

)
My Internet window will close shortly so I will end now but will revisit the thread and add more information.
Hope this helps - Trevor