Route and Sessions - How do they work together?

Yes... but the problem comes if I want to share a session by uploading to DLS/CM. Any session I want to create and share need be done with original owners route.



This is where these discussions diverge. One can change track and write sessions at will for their own use. But uploaded sessions need to use the original creators route.

At the next level of complexity, user can download the original route, change track, save the route, and edit any downloaded sessions to point to their newly edited route. In my experience, this will work for every session for which I have tried.
 
I have created a session for another creators route and successfully uploaded it to the DLS without any problems. The session, when downloaded and installed on a users Trainz system, automatically downloaded and installed the correct route by the original creator. The config.txt file for the session has the original route map kuid listed in both the map-kuid and the first entry ("0") in the kuid-table

So I am uncertain as to the cause of your problem - perhaps it is the version updates that have obsoleted the route version you have used. EDIT: I think that pitkin's response above has answered this.
 
There are many problems with placing tracks (and track objects) into a session instead of the route. While this would work for a route with a single session only it can create headaches when you add a second session. Yes, as Pitkin suggest, you can simply clone the first session and give the copy a new name and carry on working.

If you later decide to make a change to the tracks, and not just a change to the kuid but to realign them, add new features (industries, signals, bridges, etc), delete a section, and so on then you would have to go into every session and make the same changes to maintain consistency between the sessions. Of course, you could argue that the rail bridge that you added to the day session version does not have to be present in night session version but that is hardly a real world argument. Better to have the tracks in the route so that any such changes automatically appear in all the sessions.

Secondly, as Oknotsen pointed out, all the track dependent assets (signals, switches, and most significantly, active industries) would also have to be present in every session.

Thirdly, if a user downloads the route the first two questions they are going to ask are "where are the tracks and industries" and "who put this rubbish on the DLS"?

The question of routes vs sessions is explained in the Trainz Wiki page at http://online.ts2009.com/mediaWiki/index.php/How_to_Use_Layers#Route_Layers_vs_Session_Layers

This has turned out to be a very helpful conversation to me. BTW I was not aware of that Trainz Wiki link so big thanks for posting that!

Bob
 
The config.txt file for the session has the original route map kuid listed in both the map-kuid and the first entry ("0") in the kuid-table


So far, I have been successful with only changing the map-kuid. But it your way seems more robust.
 
I have created a session for another creators route and successfully uploaded it to the DLS without any problems. The session, when downloaded and installed on a users Trainz system, automatically downloaded and installed the correct route by the original creator. The config.txt file for the session has the original route map kuid listed in both the map-kuid and the first entry ("0") in the kuid-table

So I am uncertain as to the cause of your problem - perhaps it is the version updates that have obsoleted the route version you have used. EDIT: I think that pitkin's response above has answered this.

Down to Route version? If I create a session using an older version of the route what happens on the user end if they have a later Route version. The later is used, is it not? In other words, the session uses the proper Route, but won't it always use the route version that's active on the user machine?
 
Down to Route version? If I create a session using an older version of the route what happens on the user end if they have a later Route version. The later is used, is it not? In other words, the session uses the proper Route, but won't it always use the route version that's active on the user machine?



Not sure about the version number, but a key word in your question is "proper". If things have changed enough in the new route version, the session may no longer work. One example I have seen is two covered hoppers partially inside each other, and rolling stock you cannot delete.
 
Yes, as Pitkin suggest, you can simply clone the first session and give the copy a new name and carry on working.

If you later decide to make a change to the tracks, and not just a change to the kuid but to realign them, add new features (industries, signals, bridges, etc), delete a section, and so on then you would have to go into every session and make the same changes to maintain consistency between the sessions. Of course, you could argue that the rail bridge that you added to the day session version does not have to be present in night session version but that is hardly a real world argument. Better to have the tracks in the route so that any such changes automatically appear in all the sessions.

***********************************************************************

Yes, they will appear in all the sessions, but the sessions may not work correctly then. For example, a tank car placed on a track that has been moved elsewhere.

(Just for the record, I never said it was a good idea to put all the tracks in the session. I merely pointed out that it is possible for the experienced and/or foolhardy to place a select few of them in the session ):eek:.
 
Last edited:
Somewhat on topic. One thing I've found is that it is completely possible to add as many scenery objects as you desire to the session without causing a route save. You simply lock the route layer, switch to the session layer, add objects, then unlock the route layer and save. This can be very powerful, allowing a creator to make a session that has an empty lot and another session with a skyscraper in the lot. A field of trees in one session and a field of stumps in another session. etc. etc. When working on a session for a route on the DLS you can make unlimited additions to the scenery of the route so long as you do not attempt to remove anything that is built into the route. I haven't tried it yet but it might be possible to add a entire new railroad to an existing route on the session layer without changing the original route.

By locking the route layer it should be possible to discover whether adding a signal or anything else would force a route save or not, you will get an error message if you are attempting to change the route layer. You just have to remember to switch to the session layer before making your changes and to unlock the route layer before saving. (Leaving the route layer locked is a change to the route layer and would force a route save to a new route. Edit; unless the route is already locked)

Edit; Yup it is possible to add a separate rail line to an existing route on the session layer.

My-Trainz-Screenshot-Image.jpg


I added this simple monorail loop to a payware route as a session without having to save the route as a new route. I have not added switches, stations, and signals to the new rail line yet but do not expect problems. :D
 
Last edited:
Down to Route version? If I create a session using an older version of the route what happens on the user end if they have a later Route version. The later is used, is it not? In other words, the session uses the proper Route, but won't it always use the route version that's active on the user machine?

On that very question, to go back to my example of making a session for a route created by another user, the route was updated by the creator after my session was uploaded and the session then referenced the new route, not the old one. The end result was that my session no longer worked correctly because the changes that had been made prevented some of my session rules from working. I had to update and reissue the session.
 
Yup it is possible to add a separate rail line to an existing route on the session layer.

<snip>

I added this simple monorail loop to a payware route as a session without having to save the route as a new route. I have not added switches, stations, and signals to the new rail line yet but do not expect problems. :D

As long as the new session track does not join onto the existing route track then there should be no problems. But if you join the two tracks together then you have made a change to the original route and you can then expect "trouble".

Also, you will have to add any switches, signals, etc for your new session track to the same session layer (or to a layer lower down in the session list).
 
As long as the new session track does not join onto the existing route track then there should be no problems. But if you join the two tracks together then you have made a change to the original route and you can then expect "trouble".

Also, you will have to add any switches, signals, etc for your new session track to the same session layer (or to a layer lower down in the session list).

In TANE in Railhead001's "Expanded" routes, I used to attach session track to ends of his tracks and no route change was indicated. However, most route builders now are adding those end of track signals that look like a pile of logs or whatever, and I can no longer do that, as deleting them causes a route change.

Another thing to keep in mind, and I believe this is so, the new session tracks cannot change the base contours. They need to be on whatever contour is on the route.
 
Last edited:
The whole thing can be very confusing. It has taken me years to understand, at least, what I need. And it works quite satisfactory. Having said that, I strongly believe that Auran should have made available a comprehensive guide of what saves on route or sessions, and how one affects the other. Don't ask me to write about it. Is complicated and would take long. Some of the modus operandy of what happens could be interpreted as idiotic, and I would have made it differently to simplify things. But you have to live with what we have. Besides, I have no scripting skills other than operate what is available. So the best you can do is try, try and experiment until it makes sense, as I did.
 
Another thing to keep in mind, and I believe this is so, the new session tracks cannot change the base contours. They need to be on whatever contour is on the route.

Yes, as soon as you use the smooth terrain tool to match the terrain height to the track you have altered the route.

The whole thing can be very confusing. It has taken me years to understand, at least, what I need. And it works quite satisfactory. Having said that, I strongly believe that Auran should have made available a comprehensive guide of what saves on route or sessions, and how one affects the other.

It is amazing what you can find on the Train Wiki. Such a guide does exist inside the Wiki document Using Layers. To summarise ...

There are many features of Trainz Routes and Sessions that are NOT stored in layers. These include:-

landforms
textures
trackside camera positions and settings

... which are all stored in the Route (but not in any route layers). Then there is the ...

weather conditions
time of day
session rules and driver commands
signal and junctions settings
rolling stock loads
industry settings
portal settings
passenger station settings
navigation points
interlocking tower settings^

...which are saved as part of a Session (but not in any session layers).
 
Last edited:
Yes, as soon as you use the smooth terrain tool to match the terrain height to the track you have altered the route.



It is amazing what you can find on the Train Wiki. Such a guide does exist inside the Wiki document Using Layers. To summarise ...

There are many features of Trainz Routes and Sessions that are NOT stored in layers. These include:-

landforms
textures
trackside camera positions and settings

... which are all stored in the Route (but not in any route layers). Then there is the ...

weather conditions
time of day
session rules and driver commands
signal and junctions settings
rolling stock loads
industry settings
portal settings
passenger station settings
navigation points
interlocking tower settings^

...which are saved as part of a Session (but not in any session layers).
I knew it was going to come to this. Let me be specific on some stances:

You have a route and one session. The session is dependent of the route and consists are only on this session. One day you decide to add one of these junction controllers. Add it in the route and set the list of junctions to control. Go to the session and it is there. Great! If you install this controller in the session, it will stay there but not in the route (expected), so is better to do it in the route so it will show in all the dependent sessions (I know I only have one, but later in life, I may create others). Now here comes the twist: If you find there was a missing command in the Jtn. controller, you would think all you have to do is go to the route and add it, same as when you started doing this. Well, the change shows now on the route but not in the session! You have to go to the session and add that change there too. (remember that if you change or add in the session, it does not reflect on the route). So you investigate the matter and find that it depends on WHEN you implement the changes. You install the controller in route (not necessarily a controller, could be another object with controls of what it would do, such as Multiple Industries), and set it right then. Save and it shows in the session. If you go back a second time and try to do the same, it does not show in the session. Interesting or confusing?

A second case: You have a route. Has all the basic ingredients but not consists. A session runs diesels. One day you decide to expand and create a session to run steam. Easy, create a session of the route and add the corresponding consists. But you find that steam locos need water columns and coal loaders, and these assets are not on the route. Easy, in that session delete a short piece of track, and insert the asset pertaining to the coal and water. You would think that because you are in this session, things would not be messed in the other layers. Nope, if you do that, everything would get screwed. The correct solution if to delete that short piece in the route and leave blank. Now go to the diesel session and add your connecting track, then go to the steam session and add the object you need. And doing this, everything fits into place. But remember that because the route is missing this piece of track, next time you create another session, it will have the gap and you'll have to fill it, but not in the route.

I have more examples, but as I said, it takes space and is long, plus you have to concentrate carefully on what is happening to understand all. It may be on Wiki, but implementing in the real World is another thing. I try to stay away from layers. If you don't understand some basic kirks, you may run into problems and go around in hard to comprehend circles, and the complexity of layers (what layer are you on now? does not help.
 
I knew it was going to come to this. Let me be specific on some stances:

You have a route and one session. The session is dependent of the route and consists are only on this session. One day you decide to add one of these junction controllers. Add it in the route and set the list of junctions to control. Go to the session and it is there. Great! If you install this controller in the session, it will stay there but not in the route (expected), so is better to do it in the route so it will show in all the dependent sessions (I know I only have one, but later in life, I may create others). Now here comes the twist: If you find there was a missing command in the Jtn. controller, you would think all you have to do is go to the route and add it, same as when you started doing this. Well, the change shows now on the route but not in the session! You have to go to the session and add that change there too. (remember that if you change or add in the session, it does not reflect on the route). So you investigate the matter and find that it depends on WHEN you implement the changes. You install the controller in route (not necessarily a controller, could be another object with controls of what it would do, such as Multiple Industries), and set it right then. Save and it shows in the session. If you go back a second time and try to do the same, it does not show in the session. Interesting or confusing?

A second case: You have a route. Has all the basic ingredients but not consists. A session runs diesels. One day you decide to expand and create a session to run steam. Easy, create a session of the route and add the corresponding consists. But you find that steam locos need water columns and coal loaders, and these assets are not on the route. Easy, in that session delete a short piece of track, and insert the asset pertaining to the coal and water. You would think that because you are in this session, things would not be messed in the other layers. Nope, if you do that, everything would get screwed. The correct solution if to delete that short piece in the route and leave blank. Now go to the diesel session and add your connecting track, then go to the steam session and add the object you need. And doing this, everything fits into place. But remember that because the route is missing this piece of track, next time you create another session, it will have the gap and you'll have to fill it, but not in the route.

I have more examples, but as I said, it takes space and is long, plus you have to concentrate carefully on what is happening to understand all. It may be on Wiki, but implementing in the real World is another thing. I try to stay away from layers. If you don't understand some basic kirks, you may run into problems and go around in hard to comprehend circles, and the complexity of layers (what layer are you on now? does not help.



If you are using the routes and sessions for your own use, then just change the route and go on with life (with some adjustments to the session possibly).
If you are creating for uploading for others, then best to just consider the route permanent. It really is two different worlds.
 
"A session runs diesels. One day you decide to expand and create a session to run steam. Easy, create a session of the route and add the corresponding consists. But you find that steam locos need water columns and coal loaders, and these assets are not on the route."


By the way, you can add coaling towers and other items without changing the route. Just rotate the coal tower track so that it aligns with the route track (not in the route layer, of course), and place it in the route. (If you don't like the look, lower the item a bit). It will not operate of course, but you can use the Edit Trains or other driver commands to operate on the cars or engines. I have done this on Kickstarter Country 2, but can't seem to get the energy to upload the session.
 
You have a route and one session. The session is dependent of the route and consists are only on this session. One day you decide to add one of these junction controllers. Add it in the route and set the list of junctions to control.

<snip>

If you find there was a missing command in the Jtn. controller, you would think all you have to do is go to the route and add it, same as when you started doing this. Well, the change shows now on the route but not in the session! You have to go to the session and add that change there too.

By "go to the route and add it" I can only assume that you mean load the route only, without the session, into Surveyor. The problem here is that the junction controller has been placed in the route but its settings are stored in the session (wisely). This is exactly the same for active industries - the assets are in the route and their settings are in the session which allows you to give the same industry (or junction controller) different properties in different sessions. If you load a route only into Surveyor then the properties of all the industry assets (and junction controllers) will have the values set as default by the asset creator. The values you set are stored in the session (with a few exceptions that have been the result of "bugs"). If you load the session into Surveyor then those assets will always show the values you have set.

A second case: You have a route. Has all the basic ingredients but not consists. A session runs diesels. One day you decide to expand and create a session to run steam. Easy, create a session of the route and add the corresponding consists. But you find that steam locos need water columns and coal loaders, and these assets are not on the route. Easy, in that session delete a short piece of track, and insert the asset pertaining to the coal and water.

As I mentioned in another thread on this topic, years ago I conducted a number of experiments on doing just that (placing some track and active industries in session layers) and found that this really has more disadvantages than advantages. To quote from the same Wiki page ...

It is recommended that the following objects should be placed in the "route-layer":-
  • Track and interactive industries with track
  • Track infrastructure (turntables, bridges, tunnels)
  • Signals
  • Junctions and switches
  • Track signs (speed limits, warnings, etc)
..and that the "route-layer" be placed at the top of the Route Layers Group.

I place all track attached objects (and objects with track) into the same route layer and never have these problems. The only exceptions I make here is with Interlocking Towers and Enhanced Interlocking Towers which, because of a known "bug", I place in a session. But, like Junction Controllers, they are not actually attached to any track so I suspect that it does not matter with them.
 
In TANE in Railhead001's "Expanded" routes, I used to attach session track to ends of his tracks and no route change was indicated. However, most route builders now are adding those end of track signals that look like a pile of logs or whatever, and I can no longer do that, as deleting them causes a route change.

You should be able to hide those end of track signals using layer binding. Create a session layer and set it to hidden. Open the trackside tab and click edit properties on the end of track signal. Set your new hidden layer as the bound layer and the signal should disappear. It will still show up on the mini map but it won't give you a spad.
 
You should be able to hide those end of track signals using layer binding.

I just tried that and, to my amazement, it worked. I did think that changing the binding of an object that was in a route layer to a session layer would be considered a "change to the route" but TRS19 classified it as a "change to the session" only. Obviously though, changing the parent layer would be an alteration to the route.

This is another useful application for the bound layer!
 
You should be able to hide those end of track signals using layer binding. Create a session layer and set it to hidden. Open the trackside tab and click edit properties on the end of track signal. Set your new hidden layer as the bound layer and the signal should disappear. It will still show up on the mini map but it won't give you a spad.[/QUOTE


Yes, that works great. However, I had to set the new layer to hidden before I used the properties for the track signal. Else the track the signal was attached to became part of the new layer.
 
Back
Top