Monthly Archives: May 2013

Train Simulator 2013 Scenario Editor Findings

With Steam Workshop it is quite easy to contribute scenarios for Train Simulator 2013 to the community. However, creating scenarios is not very easy. There is a Train Simulator 2013 Creator Manual – but it does not tell you everything you need to know. In this article, I write my own findings about creating scenarios.

Consider this work in progress. My experiences are mostly from Falmouth Branch.
Updates 2013-08-03: I have added some more findings after trying to make scenarios for Western Lines of Scotland.

Editor Crashing
The Scenario Editor crashes a lot. Get used to it. Save often. The easiest way to save is to click the little “play button” (that starts the simulation, but only if you click it twice), not the big “play button” that actually starts the scenario. Inside Timetable View there is also a save button. Use it.

Backup scenarios
It happens that scenarios get corrupted. I suggest, now and then, clone the scenario you are working with, so you have a few historical backups of it. When you are done, get rid of the backups. Sometimes I have found myself having to recreate a 30-40 step timetable for the player train, when I thought I was 99% done. It sucks. My suggestion is add -b1, -b2, -b3 to the end of the scenario name for each backup. That way you keep your backups in order.

Hidden errors
New 2013-08-03
Some errors in your scenario shows up not immediately, not when you save, but when you actually (re)load the scenario. This happens when you simulate, or when you actually test drive. And some errors/problems can actually go away: in particular, sometimes a red signal turns green the second time you try.

UKTS Assets
UKTS has provide Freeware Packs. Fantastic stuff! However, the assets (Wagons) are installed into Train Simulator in a not very nice way. On my computer, I have:

S:\Steam\steamapps\common\railworks\Assets>dir
 Volume in drive S is Steam
 Volume Serial Number is 3CCF-0E61

 Directory of S:\Steam\steamapps\common\railworks\Assets

05/11/2013  06:51 PM          .
05/11/2013  06:51 PM          ..
12/12/2012  07:36 PM          Castlerock
05/11/2013  06:51 PM          DT
12/12/2012  07:38 PM          EisenbahnwerkRW
12/12/2012  07:38 PM          G-TraX
12/12/2012  07:38 PM          GermanRailroadsRW
12/12/2012  07:38 PM          keithmross
12/12/2012  07:43 PM          Kuju
12/26/2012  10:29 PM          RSC
12/12/2012  07:47 PM          RSDL
12/12/2012  07:47 PM          SJCRW
12/12/2012  07:48 PM          vR_AddOn1
               0 File(s)              0 bytes
              13 Dir(s)  39,932,166,144 bytes free

Most of the “standard” assets included with the game goes to Kuju (for some reason). DCL from steam usually ends up in a subfolder in RSC (ex RSC/NorthEastCorridor), or as a separate folder (ex vR_AddOn1). UKTS Stuff ends up largely with your Kuju folder. The consequence is that the asset filter in the Scenario Editor can not separate most of UKTS FP stuff from the standard assets. And there are many UKTS assets, so if you install UKTS most of your assets under Kuju will not be available to most users on Steam. You have been warned.

Missing Marker Error
The Missing Marker error most often means that you have an instruction to drop or connect wagons to a train, and you have written the wrong wagon number in the instruction.

Train with initial speed
It has happened to me more than once, that the player train suddenly, after a save, has a non-zero initial speed. So, when the scenario starts, the train is running and braking. Very annoying. I have not found a way to fix it. I had to put a new train (loco) in place, and rewrite the timetable/instructions – perhaps there is a better way, but I don’t know.

Dependencies and Steam
Just having Assets visible from a DLC creates a dependency on that DLC, even if in the end you include nothing. I found that removing a dependency was a bit tricky. I had to remove the Asset source, and do another change to the scenario (I added a wagon to an empty siding) before saving, otherwise the removal of the source would not work.

Longer scenarios take much longer times
If you make a scenario twice as long, expect four times the building time. Everything gets more complicated. More test runs are needed. There will be more errors that need to be nailed out.

Up and down: platforms etc
Platforms and other track sections are often named Up or Down. Each route has an Up-direction (typically north) and a Down-direction (typically south). To avoid problems: Always use Up-tracks only for up-trains, and Down-tracks only for down-trains. There are reasons (practically or because of your story line) to make exceptions. Try to make sure everything works with Up-up and Down-down first, test it. Then, make your careful exceptions if you really have to. The errors that may result can be quite surprising and hard to track down otherwise.

Exchanging wagons with another train
You may want to build a scenario where one train (ex a Shunter) puts wagons somewhere, and another train picks them up. I am not talking about Relay-scenario – just standard scenarios. My findings:

  1. You may get consist warning – that is ok, just live with it
  2. It is fine to let the player pick up wagons left by an AI
  3. It is not fine to let the AI pick up wagons left by the player. There is a missing “marker”, so the AI will search for the wagons at the very end of the track section. If the wagons are not place (by player) just exactly outside the track section, then an AI collision critical error will occur.

Update 2013-08-03:Usually, if you want the player to pick up wagons that an AI train has dropped, you want the player to be around and see it (otherwise you can just cheat and put the wagons there in the first place). This creates timing/dependency-issues. Not impossible, but you have been warned.

AI Shunting
New: 2013-08-03
AI Trains can most often drop wagons that they had from the beginning, and most often connect wagons that were placed in position from the beginning. But do not expect an AI train to drop a few wagons and get back a few minutes later to pick them up: AI collision very likely. But the player usually does not look very closely at what the AI train does – sometimes you achieve 98% of the effect by having the same train just move back and forth with the same wagons.

The timetable
When you create a scenario, each active train gets a timetable. If you have no warnings or errors it means the timetable “works”. Now, the AI trains will drive very much based on the time table (and usually ignore the signals). Dont expect the the AI trains to be dynamically re-prioritized, re-routed, wait, or run ahead because of what the player does. Perhaps it happens in some situations – usually not.

Priority of a train determines the time table, but dont expect it to be used dynamically during the scenario.

If you want to delay/slow down a train, you have two ways:

  1. Change the performance percentage
  2. If it is a passenger train, give it a departure time of a passenger pickup instruction (by checking the timetable box) – it should obey the departure time regardless how much ahead of time it arrived

Setting the wait time or departure time for a normal stop instruction has very questionable effect.

AI Trains just stops in the middle of anywhere
New 2013-08-03
Sometimes AI Trains just stop (or do not start at all). It appears to happen if the Player does not follow timetable. Especially, if the Player is ahead of its timetable AI trains (in front of the player) may just stop (or creep extremely slowly). For Passenger player trains the best way to control the player timing is to use timetabled stops, and give the player some margin. For freight trains it is harder. The stop instruction, set at a long stop will give time in the timetable, but you might need to instruct the player explicitely: you may not proceed before 07:45, or to wait until another train has arrived/passed/departed.

Signals
AI trains often do not obey signals. They mostly obey the timetable.

The player has to obey signals, and the game aborts on passing a Danger Signal. There is a Game Setting to override this, but driving a train not obeying signals does not really make sense.

Each signal has a LUA script that decides it behaviour. I have not found a way to inspect or modify those scrips from the Scenario Editor. I have also not found a way to force a signal into a particular state, or change its initial state. As in all software there can be bugs in the LUA script and the behaviour of the signals. Sometimes a signal looks red, but generates no SPAD; I guess the state of the graphics element does not match the actual game state.

If you test your scenario and find SPADs that you can not get rid of, you can always at least notify the player about it with a message for each and every time (and require Game Settings to allow it).

However, signals often do not have super-complicated behaviour. They usually get red when you pass it forward. They often turn green if you pass it backwards. Otherwise it turns green when a train passes somewhere. Sometimes there are two routes to a signal, and just routing the player the right way helps. Sometimes you can manipulate a signal using an AI train (typically doing something illegal, but it does not care). Test in a little empty scenario to see how that particular signal behaves.

(It seems to me) The signals are not the result of a super complex state, but rather just what has happened around it.

(It seems to me) wagons placed anywhere do not affect signals. I also believe that locomotives (broken or working) do not necessarily cause a problem.

Update 2013-08-03: I am now sure that trains without drivers do not affect the timetable or dispatcher. Also, I do not believe they affect signals. However, the will give you static consists warning – that is nothing to worry about. So, one way to cheat a little is to add non-moving trains to create atmosphere without complicating your scenario. If the player drives by in 70km/h it does not matter much if that train in the siding moves slowly or not.

Via-routes and Waypoints
It is tempting to use Via-routes and Waypoints just to be clear to the game how you want things to run. Sometimes adding them helps – somethings getting rid of them also helps.

However, if you have a single track line with three stations: A-B-C. You want two trains to meet at B. I recommend you to use VIA-instructions to B (not waypoints) for both trains. This way you can verify that they have the same time at B. And usually, they refuse to meet at B unless you have VIA-instructions there.

Start and End positions for AI trains
If you have more than just a few AI trains, be careful that they have good starting and ending locations.

Portals are always good end locations, as the trains will disappear and not disturb anyone. But often you want to end it somewhere visible to the player, and often a portal is not available.

Sidings are tricky end locations, because the train may leave a red signal (into a platform, approach or shunt track). If the player is not going there, it should be less of a problem.

Platforms and other parts of the line are tricky start and end locations, because the train may end up blocking another train.

When troubleshooting a scenario, it is usally practical to remove a few AI trains to see if the problem goes away, and to see what timetable the player train really should have. One way to remove AI trains from the complete timetable is to just change their start time to something later (+3h). But this is when they can end up in the way of other trains. In the same way, it can be tempting to give a train running at the end of a scenario an end location just in the middle of the line. This will effectively make it very hard to delay other trains as suggested above.

Naming AI trains
Name all services in a sensible way. Be consistent. Direction and time are most important when troubleshooting. If you have many AI trains, write a little list on a paper with their name, start location and end location.

Test driving
You need to test drive your scenario. It takes much time to test drive a long scenario over and over again. When driving, keep structured notes:

  • Arrival/departure times
  • Problems with instructions: need more/less, better timing, spelling errors, references to wrong wagons or track sections, etc
  • Signal errors!
  • Stuff you want to add (people, wagons, boats, garbage, etc)
  • Things that are annoying

Do not quit at the first annoying thing, drive on and collect more information. But if you find serious routing or signalling problems, just abort and focus on that. Maybe in a test scenario to isolate the problem.

Instructions
Instructions and completion texts can be nice. It can be to much. And especially, the timing can be bad. A message does not stay for very long – keep them short – max 2 sentences. If you give critical information, make sure to not do it at a very busy moment, the player may just get rid of the message because he is busy with something.

It is unfortanate that text related to stops (with or without passengers) show up after the stop is complete, not in the beginning. When stopping, you know that you have a little while to relax and read.

It is unfortanate that it is not possible to see all historical/previous popups – or is it?

The Marshall instruction
New: 2013-08-03
The Marshall instruction leaves some problem solving to the player. Beware, the dispatcher/timetable has very little clue how long time it will take. If you do a Marshall in the beginning of a scenario, and the player is minutes ahead/after schedule, expect problems with signals and AI trains.

Load/Drop instructions
New 2013-08-03
Load/Drop instructions have a checkbox that decides if order of the wagons is important (Marshall has it too). Default is off. That means that you do not have to worry about what is forward/back and closest to the loco or anything (unless you check that box). Also, as a matter of fact, the player can usually drop (or pick up) any wagons anywhere most of the time, without getting an error. In practice, (as a player) it is often possible to cheat by just dropping your heavy load in the beginning of a scenario, and complete it with fewer wagons and no warnings. Be aware of it. You can also be lazy and just give a single wagon as drop/pick up instruction. When it comes to being lazy with AI trains, I am not so sure. I always test, and sometimes I give up.

Replacing a locomotive
So, you made a scenario for the Black 5, but you want to run it with the Robinson O4 instead? I don’t know how to do that in a simple way with the editor, unfortunately. However, there is something called RW Tools, that you can download, donate some money, and use. RW Tools has very many features, replacing rolling stock in a scenario is just one of them.

Update a scenario on Steam
I have not found a proper way to update a scenario on Steam. I set visibility to “friends only” (so it is still there for people who have it), and publish it again with a (v2) after the name. Then I post a link from the first version discussion board to the new version. There must be a better way…

Good pace
New 2013-08-03
What is the right pace for a scenario? 75% on all instructions? Well, that is often not so bad. In real life, train drivers (especially of freight trains) spend long time waiting and checking brakes, etc. If you tell your players to wait 15-20 minutes for an express train to pass (which is what you typically need on single track with signals not so close) there is a risk your players just think you waste their time. Just a few minutes waiting can be quite pretentious. But if the “slower players” are to have a chance, the faster players will have to accept to wait. And I have found, especially with steam locos, that different players get very different performance from their engine (read about Black 5 performance). For shunting scenarios some players find it too easy, while others need 15 minutes more. Short scenarios are a good idea – for many reasons.

LUA
With TS 2014 it was marketed that developers could now include a Lua Script in their scenarios. There IS a little button in the scenario editor tool, to open up and edit the Lua script. There IS nothing else I know of: no tutorial, no documentation, no manual. It is not that Lua itself is hard or need documentation – you simply need to know how you can interact with what parts of the simulator. I would like to interact with the AI trains (to override their timetable) and I would like to manipulate signals. The best you can do is to search the scenarios that ship with the simulator for .lua files, but changing weather and displaying alerts with a little picture in them, is not what I most want.

Timetable never resolving
Added 2014-01-15
When you change any instruction it takes a little while (a split second to a few seconds) for the timetable to recalculate. Sometimes it gets stuck/hung, and does not finish calculating (work progress icon just going round and round). This is bad. Don’t save. Don’t try to play. I have found that quite likely you have added some AI service that disturbs the timetable – perhaps a train in the Players’ path? Try removing consists, latest first, and perhaps the problems goes away. It is a little counter intuitive to not wait until the progress ends, but actually make more changes while it workds. But it has worked for me.

How to get started?
If you want to start creating scenarios, I suggest:

  1. Read the Creators Manual
  2. Choose a route that you know well
  3. Make short, simple scenarios
  4. Not so many AI trains, and test scenario without AI trains first
  5. Use as little DLC as possible (what comes with the route + Kuju/RailSimulator)
  6. Try to help the player (with instructions, etc): give correct information, dont complicate or make things extra difficult
  7. Details: description, duration, etc
  8. Test, if in doubt an extra time – scenarios that do not complete are annoying and disappointing

Lubuntu 13.04 on Eee 701

Do you still have an Eee 701 (4GB SSD version), and dont know what OS to put on it? Try Lubuntu 13.04 – it works perfectly, no tweaking, no problems. Just create a bootable USB memory using Unetbootin, boot it, try it, install it.

Of course, it is the 32-bit (x86) version of Lubuntu, that you should use.