Hello,
in my locomotive I implemented a startup sequence. I try to resume you here the main things that I used:
1) First of all you have to implement your own sound system in the locomotive script. It means that your "enginesound" asset (that you need to have, or your loco will not work in Trainz!) needs to be empty, and you put your wav sounds directly in your loco asset. Then you will start the sounds using a thread when you turn on the loco.
2) In order to have the loco not to move, you can use the SetMaximumTractiveEffort(0.0) method of Vehicle, when your loco is off (i.e. in Init() at startup), and then you will put it back to the correct value when you turn it on. You can also set initial brake parameters to set the braking system is discharged, in the enginespec config file, and using the SetCompressorEfficiency() and SetBrakePipeEfficiency() to 0.0 when the train is off. When you turn on engine, you will reset efficiencies to 1, and the brake system will charge.
3) You can turn your loco on via a custom Detail window, or from the cabin operated in Cab mode.. In the second case, you can exchange messages between loco and cabin to issue startup/stop commands i.e. when the user is pressing some buttons. If you want a full detailed startup sequence, you need to script it all in your cabin....i.e. check position of levers, pantos, etc...
This is the way I am implementing it in my loco, I used as a reference, the M62 locomotive model that you can find on trainzup.com... it is all written in russian, you will have to use google translate, if you don't speak russian
