Locomotive Magically Dissapearing

- <kuid2:45324:100446:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100446:1> : Script class: JRLoco
; <kuid2:45324:100446:1> : MeshObject: <kuid2:45324:100446:1> "CSX ES44AH Late"
; <kuid2:45324:100446:1> : Script callstack
; <kuid2:45324:100446:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1672, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1656, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1656, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1672, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <NULL> : Asset.FindAsset> Unable to find 'running_numbers' in kuid-table (file asset.gs)
; <NULL> : Script class: GEwidInterior
; <NULL> : MeshObject: <kuid2:45324:90314:6> "GE wide cab mechanism t5"
; <NULL> : Script callstack
; <NULL> : function $Asset@Asset::FindAsset(string), line -1
; <NULL> : function $void@GEwidInterior::InitMeshes(), line 187
; <NULL> : function $void@GEwidInterior::MessageHandler(Message), line 181
- <NULL> : File gewidinterior.gs, Line 253, ER_Exception
; <NULL> : Script class: GEwidInterior
; <NULL> : MeshObject: <kuid2:45324:90314:6> "GE wide cab mechanism t5"
; <NULL> : Script callstack
; <NULL> : function $void@GEwidInterior::InitMeshes(), line 187
; <NULL> : function $void@GEwidInterior::MessageHandler(Message), line 181
- <kuid2:45324:100201:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100201:1> : Script class: JRLoco
; <kuid2:45324:100201:1> : MeshObject: <kuid2:45324:100201:1> "CSX C40-8W"
; <kuid2:45324:100201:1> : Script callstack
; <kuid2:45324:100201:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100375:2> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid2:45324:100375:2> : Script class: JRLoco
; <kuid2:45324:100375:2> : MeshObject: <kuid2:45324:100375:2> "CSX ET44AH"
; <kuid2:45324:100375:2> : Script callstack
; <kuid2:45324:100375:2> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100375:2> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100375:2> : Script class: JRLoco
; <kuid2:45324:100375:2> : MeshObject: <kuid2:45324:100375:2> "CSX ET44AH"
; <kuid2:45324:100375:2> : Script callstack
; <kuid2:45324:100375:2> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1648, ER_ThreadError
 
- <kuid2:45324:100446:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100446:1> : Script class: JRLoco
; <kuid2:45324:100446:1> : MeshObject: <kuid2:45324:100446:1> "CSX ES44AH Late"
; <kuid2:45324:100446:1> : Script callstack
; <kuid2:45324:100446:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1672, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1656, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1656, ER_ThreadError
; <kuid2:45324:100241:1> : Script class: JRLoco
; <kuid2:45324:100241:1> : MeshObject: <kuid2:45324:100241:1> "CP SD9043MAC"
; <kuid2:45324:100241:1> : Script callstack
; <kuid2:45324:100241:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid:845493:102981> : File fx_loco.gse, Line 1672, ER_ThreadError
; <kuid:845493:102981> : Script class: JRLoco
; <kuid:845493:102981> : MeshObject: <kuid:845493:102981> "CR B40-8 Quality"
; <kuid:845493:102981> : Script callstack
; <kuid:845493:102981> : function $void@FX_Loco::Engine_Mon(), line 1606
- <NULL> : Asset.FindAsset> Unable to find 'running_numbers' in kuid-table (file asset.gs)
; <NULL> : Script class: GEwidInterior
; <NULL> : MeshObject: <kuid2:45324:90314:6> "GE wide cab mechanism t5"
; <NULL> : Script callstack
; <NULL> : function $Asset@Asset::FindAsset(string), line -1
; <NULL> : function $void@GEwidInterior::InitMeshes(), line 187
; <NULL> : function $void@GEwidInterior::MessageHandler(Message), line 181
- <NULL> : File gewidinterior.gs, Line 253, ER_Exception
; <NULL> : Script class: GEwidInterior
; <NULL> : MeshObject: <kuid2:45324:90314:6> "GE wide cab mechanism t5"
; <NULL> : Script callstack
; <NULL> : function $void@GEwidInterior::InitMeshes(), line 187
; <NULL> : function $void@GEwidInterior::MessageHandler(Message), line 181
- <kuid2:45324:100201:1> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100201:1> : Script class: JRLoco
; <kuid2:45324:100201:1> : MeshObject: <kuid2:45324:100201:1> "CSX C40-8W"
; <kuid2:45324:100201:1> : Script callstack
; <kuid2:45324:100201:1> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100375:2> : File fx_loco.gse, Line 1660, ER_ThreadError
; <kuid2:45324:100375:2> : Script class: JRLoco
; <kuid2:45324:100375:2> : MeshObject: <kuid2:45324:100375:2> "CSX ET44AH"
; <kuid2:45324:100375:2> : Script callstack
; <kuid2:45324:100375:2> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100375:2> : File fx_loco.gse, Line 1648, ER_ThreadError
; <kuid2:45324:100375:2> : Script class: JRLoco
; <kuid2:45324:100375:2> : MeshObject: <kuid2:45324:100375:2> "CSX ET44AH"
; <kuid2:45324:100375:2> : Script callstack
; <kuid2:45324:100375:2> : function $void@FX_Loco::Engine_Mon(), line 1606
- <kuid2:45324:100241:1> : File fx_loco.gse, Line 1648, ER_ThreadError
 
Also, why would script errors cause trains to derail? That makes zero sense to me. I've dealt with script errors before but NONE causing trains to randomly derail. By the way my installation was squeaky clean as a whistle.
 
That is all hieroglyphics to me but one line appears multiple times, perhaps a clue.

msg.src is not type of Locomotive (file gs.gs)

My best guess would be a script fault with the "disappearing" locomotive.
 
Getting back to the derailment issue. I doubt the script error is causing the derailment and it is more of the other way round as pware pointed out. I can say too that I rarely have any derailments other than those that have been self-inflicted. There was an issue with portals but that has been largely solved with the exception being the small portal basic. The large portals appear to work fine. If you are using the small portal basic, replace it with a larger one.

With that in mind, derailments can occur if:

1) Track spline points aren't connected.
2) Track splines aren't smooth.
3) Track isn't connected to MO-Crossing assets properly.
4) Ditto for industries.
5) Junctions are missing levers.

How to fix these:
1) Go for a walk on the route.
Using the free-roaming camera, follow the track closely and check that all the spline points are yellow. This means that they are smoothed out and connected. If there are any white joints, industries may be an exception due to how the track connects.

If you think that the track connection to an industry, station, road-crossing, bridge, etc., doesn't appear right. Disconnect the track and reconnect it to the said industry, etc. This may involve putting in a spline point on the connecting track and deleting the segment between the spline point and industry, etc.

2) After checking all connections. Go for a manual drive.
Drive slowly over the entire route from one end to the other. If there are any broken spline points, you'll encounter one soon enough.

3) Have the AI drive.

If the AI driver refuses to move, check the messages for:
- Unable to plot route.
- Junction missing lever after junction xxxxxx.

This is actually a new thing since T:ANE or TRS19 and is most useful. Prior to that it was just Junction missing lever. I wish unable to plot route with driver name and name of destination was there too.

Missing junction levers is a bug in the current build. This has been reported and hopefully this has been fixed in the next service pack which is currently in beta testing. They occur when connecting the track on some connections but not all such as on crossovers where one side connects fine but the other doesn't. Knowing that this has occurs, keep an eye out for missing levers.
 
Last edited:
Getting back to the derailment issue. I doubt the script error is causing the derailment and it is more of the other way round as pware pointed out. I can say too that I rarely have any derailments other than those that have been self-inflicted. There was an issue with portals but that has been largely solved with the exception being the small portal basic. The large portals appear to work fine. If you are using the small portal basic, replace it with a larger one.

With that in mind, derailments can occur if:

1) Track spline points aren't connected.
2) Track splines aren't smooth.
3) Track isn't connected to MO-Crossing assets properly.
4) Ditto for industries.
5) Junctions are missing levers.

How to fix these:
1) Go for a walk on the route.
Using the free-roaming camera, follow the track closely and check that all the spline points are yellow. This means that they are smoothed out and connected. If there are any white joints, industries may be an exception due to how the track connects.

If you think that the track connection to an industry, station, road-crossing, bridge, etc., doesn't appear right. Disconnect the track and reconnect it to the said industry, etc. This may involve putting in a spline point on the connecting track and deleting the segment between the spline point and industry, etc.

2) After checking all connections. Go for a manual drive.
Drive slowly over the entire route from one end to the other. If there are any broken spline points, you'll encounter one soon enough.

3) Have the AI drive.

If the AI driver refuses to move, check the messages for:
- Unable to plot route.
- Junction missing lever after junction xxxxxx.

This is actually a new thing since T:ANE or TRS19 and is most useful. Prior to that it was just Junction missing lever. I wish unable to plot route with driver name and name of destination was there too.

Missing junction levers is a bug in the current build. This has been reported and hopefully this has been fixed in the next service pack which is currently in beta testing. They occur when connecting the track on some connections but not all such as on crossovers where one side connects fine but the other doesn't. Knowing that this has occurs, keep an eye out for missing levers.
All the track points are connected because otherwise trains would be derailing at all times when crossing over that disconnected location. They're derailing all over the place at random points and times. The grade level crossings are the TRC invisible crossings or hand crafted by me with the BNSF50 and Boats ATLS crossings. I use the ATLS traffic stopper without any object assets for those grade crossings. The only places my spline circles turn yellow are the bridges and where there's a grade. Aside from that they're all white. Mind you these are all imported routes from T:ANE and were completed 5-10 years ago.
 
The only places my spline circles turn yellow are the bridges and where there's a grade. Aside from that they're all white.
It is probably only a minor point but white spline circles in Surveyor Classic indicate that the height of that point has not been fixed or set while yellow indicates that the height has been set. White spline circles can mean an uneven or bumpy track surface as the track follows every undulation of the ground - not ideal practice for a railway.

In earlier versions of Trainz there was a Realism setting which ranged from "Cartoonish" to "Total Realism". At the cartoonish level derailments were almost impossible to achieve as almost any track condition no matter how bad was acceptable. At the total realism level anything less than perfect would cause a derailment. That setting is no longer present (or at least I cannot find it) but there is now a Track Condition setting that can be applied to individual track splines as well as an invisible (in Driver) Track Bump Marker that will set the smoothness or roughness of the track ride.
 
I've seen broken track at white spline points due to the track being very uneven or not connected but appears to be connected. Sometimes, these are difficult to see or find if one spline point is yellow and overlaps a disconnected endpoint right underneath.

@AdvancedApproach I would still walk the route or drive manually. It'll either prove there's a problem or not and this is one of the only ways to find out.

The other way is to have an AI driver drive to a track mark placed beyond a section in question. If the AI refuses to drive, then the section needs a closer look.

I mentioned this before after you posted your video showing an AI train waiting at a signal for another to take the siding or second track. There may be an issue due to the length of your track connection at the junction. Trainz AI will constantly check junctions for availability. We refer to this as playing "Rock-Paper-Scissors". They will flip levers and will sometimes catch a consist out and cause a derailment. With your junctions so long as they are, this may be contributing to the problem. You can remedy this by making the junction track shorter.

If you are not using procedural track (Pro-Track), it's possible to cause a twisted junction and not know there is something wrong with the track. This can cause intermittent derailments when a train needs to take a siding versus staying on the mainline. These can be tricky to find visually due to the lack of points on the non-procedural track.

Troubleshooting can be a long and arduous task due to repeating tasks over and over as tests are done to make sure a problem has been resolved. Sometimes, the only solutions are to use the process of elimination, or in worst case scenarios rebuild that section. As far as can be remembered, we have all encountered areas that cause problems but for some reason work fine after rebuilding. This has gone back to the early Trainz days.

Routes and sessions that come in from older versions may have issues. What works fine in T:ANE may have other problems. Sometimes, updating assets, or in the case of sessions, saving the session in the newer Trainz version will solve weird problems. If you haven't done that already, I recommend opening the route and session in the editor and then saving it again to update it to the latest TRS22 build for the version you are using.

Having junctions or track on the wrong layer, meaning on the session layer and not on the route-layer can and will cause derailments. This can also cause weird things to occur with AI drivers not always finding track marks or ignoring direction markers.

As I said before, I have not seen this level of derailments you are. I drove a session on a small 7-mile long end-to-end plus branches route for well close to 6 hours the other day. I had a couple of derailments but they were self-inflicted due to me talking on the phone while attempting to switch freight cars. Outside of those self-inflicted derailments, the dozen or so AI drivers were perfectly happy getting in my way.

On my much larger nearly 200-mile route, I have no issues at all. There are multiple AI drivers, at least 30 of them plus portals. The AI are all over the place coming from different directions and going about their business while I do my own switching or driving. I've imported this route over the years since building it in TRS2004 back in January 2004 shortly after I purchased the program.

By MO-crossing assets, these are any that work with similar scripts as level crossings, and have the same kind of attached track and not necessarily grade crossings. This is a Trainz asset type. Among these assets are track-gates, and even turntables unless turntables have been updated to a different kind.
 
A quick and simple test for track continuity is to use Surveyor 2.0 and double click on a track segment. This will highlight all the correctly joined track segments up to the next junction or track endpoint (such as a break in the track joins) in both directions from the click point.

As John points out above, the white spline circles in Surveyor Classic can easily hide a broken connection between track segments.

In your case, if the derailments are happening "at random" and not in the one place each time, then something else is at play here. Even so, eliminating broken tracks is always a good starting point.
 
A quick and simple test for track continuity is to use Surveyor 2.0 and double click on a track segment. This will highlight all the correctly joined track segments up to the next junction or track endpoint (such as a break in the track joins) in both directions from the click point.

As John points out above, the white spline circles in Surveyor Classic can easily hide a broken connection between track segments.

In your case, if the derailments are happening "at random" and not in the one place each time, then something else is at play here. Even so, eliminating broken tracks is always a good starting point.
I haven't found any "broken" tracks so far but have merged the splines where sensible and not causing other issues to rear their ugly heads. Hasn't been much help but I'll continue merging splines in an effort to remove any broken stretches of tracks.
 
These pictures might look random but they're the exact location where've I've witnessed firsthand or discovered later on where AI driven trains derailed.
GRcsOyC.jpeg
lzfxWfM.jpeg
x32hzH2.jpeg
xY7Gba0.jpeg
xHshoUF.jpeg
O4E3bif.jpeg
7cfe7dM.jpeg
v1x0El6.jpeg
JUT7S0L.jpeg
rzLiB9W.jpeg
CO8kfCd.jpeg
ZUKFWvX.jpeg
 
A quick and simple test for track continuity is to use Surveyor 2.0 and double click on a track segment. This will highlight all the correctly joined track segments up to the next junction or track endpoint (such as a break in the track joins) in both directions from the click point.

As John points out above, the white spline circles in Surveyor Classic can easily hide a broken connection between track segments.

In your case, if the derailments are happening "at random" and not in the one place each time, then something else is at play here. Even so, eliminating broken tracks is always a good starting point.
As for track continuity, all the sections are green when inspecting them in surveyor 2.0. Does that mean the splines are not broken?
 
By "green" you mean all the segments are highlighted after a double left click on a segment - then yes, they are unbroken.
 
Back
Top