# Trainz/route

Template:FUN

## Scenarios and sessions

Driver Scenarios were modular interactive scripted software elements which acted as a adjunct to Trainz Driver, and provided the first game experience offering task challenges, scoring, and switching operations. Crude ability to load and load trains off-camera enabled distribution of cars and then picking up the same during the same gaming session. Sessions supplanted use of scenarios as the TrainzScript module was not directly integrated into the game, whereas the session editor was part of Surveyor.
    Scenarios were modular interactive scripted software elements which acted as a adjunct to Trainz Driver, and provided the first game experience offering task challenges, scoring, and switching operations. Crude ability to load and load trains off-camera enabled distribution of cars and then picking up the same during the same gaming session. Sessions supplanted use of scenarios as the TrainzScript module was not directly integrated into the game, whereas the session editor was part of Surveyor. • Support for Scenarios will not be continued after TS12's service packs.
Trainz Driver Sessions are scripted Driver activities that create an interactive game play episode with tasks, conditions, and standards set by the Session creator. Sessions were introduced in Trainz 2004 as a better, easier user friendly replacement for scenarios. Sessions are written using the Session editor API in Surveyor, so were integrated into the game with map features visible, and so easier to make than scenarios which used a separate TrainzScript editor module.

### Scenarios

    main topic coverage: scenarios
Scenarios were available from Trainz 1.3 (Trainz updated to SP3) into TS12, but some older scenarios were sometimes defeated (unrunnable, though CM was happy to import them) by changes (usu. mandatory values checks or defines not present in Trainz, UTC nor TRS2004—so had incurable faults) in the script libraries of newer Trainz releases.
Unlike their functional replacement, Sessions, writing a Trainz scenario relied upon the external Auran application TrainzScript, and relied upon a much higher needed level of programming ability and knowledge.

### Sessions

    main topic coverage: sessions
Sessions came about because the Trainz of the day had trouble keeping context when switched back and forth from the Scenario editor and Surveyor modules, where one had to track what was to happen step by step. The solution was to incorporate the necessary scripts as other Rules configurable in the Session Editor API added to TRS2004 and up, along with an expansion of the standard script libraries made part of Trainz after Trainz 1.3. This was not, and is still not an optimal solution, but it beats returning to Trainz Surveyor and only having a black screen displayed, or a disconnected mouse.
* Setting the 'freeintcam' switch parameter in trainzoptions.txt (TR04—TS12) or checking the clickbox with the same function (Freeing Internal Cameras) in TANE and after, changes the function of the keyboard arrows from rotate and tilt functions, to instead slide the camera position forward and back, or side to side. Freeintcam mode enables the user to move many cameras entirely outside the CAB or to a much better advantaged viewing (and mouse-controlling) angle.

## Notes, Footnotes & References

Config.txt files are endemic and ever present in Trainz assets, for no asset can be defined without this type of Computer Science container. The keyword-value_of_key pairing must always be kept in mind in editing or creating Trainz content. The TrainzBaseSpec contains values and containers which are most common in asset defining config.txt files.

### Notes

* ↑ Scenarios were available from Trainz 1.3 (Trainz updated to SP3) into TS12... but based on personal experience
* ↑ A version by version differential comparison of these using freeware tool kdiff3 shows the script libraries have been astonishingly stable, Trainz release to Trainz release, with at worst, half a dozen script files showing changes. Explorations by computer engineer/author, Fabartus

### References

* Trainz printed or pdf file Manuals, applicable version - usually in the ..\extras or ..\extras\manuals folder
* TrainzOnline Wiki Config.txt file page and various other pages
* TrainzOnline Wiki: Content Creator's Guide pages (various)
* Various CCG and Auran websites