SimSchedule is the proprietary tool used for editing timetables in a format that makes improvements on the older MS Access (.mdb) method of creating and editing timetables.
- 1 Structure
- 2 Trains
- 3 Stabled Trains
- 4 Soft Orders
- 5 Expert Levels
- 6 Paths
- 7 Activity Codes
- 8 Vehicles
- 9 Consist Templates
- 10 Physics
- 11 Load Classes
- 12 Load Types
- 13 Special Dates
- 14 Period Templates
- 15 Auto Steering
- 16 Translations
- 17 Sanity Checks
- 18 Regions
- 19 Info
Timetables created using SimSchedule are saved with the extension .timetable extension, but internally, the data is a file structure enclosed in a Zip file. You can take any .timetable and rename the extension to .zip and work with it the way you would with any .zip file.
The benefits of having timetable data files inside a zip file (as opposed to tables in an MS Access database) are:
- the data, in its raw form, is human-readable and human-editable
- database developers are not limited to using a single program for editing (theoretically, someone could make a tool to edit the data better than SimSchedule does)
- backwards compatibility (the ability to add new features without breaking old ones)
- data transparency (there are no mysteries in how the data is stored and edited)
This data is the same as what was defined in the TrainTypes table. It provides some numbers that determine locomotive and braking properties.
A Load Class is essentially an ID number and a text description for types or classes of freight. This is not to be confused with Load Types which are more specific.
Each Load Type belongs to a Load class. For example, types such as "kerosene", "gasoline", "benzene", etc., would all belong to a class called "flammable liquids". Whereas a Load Class defines what sort of freight a car can carry, a Load Type defines what a vehicle is currently carrying.
Load Types are pieces of text that the user can see in the sim, so they need to be localised in different languages.
This data supercedes the MDB Timetable table SpecialDates.
Special dates like Christmas, New Year's, and country or region-specific holidays (like Queen's Day in the Netherlands) can be defined here. Dates are defined using both day, month, and year, as some holidays occur on different dates in different years. If the timetable designer wants to have a holiday defined for a 5 year period, then 5 entries need to be made for that specific holiday.
The result of a train running on a special date is that the schedule is the same as it would be for the day of the week that's specified. If you define Christmas to be like a Sunday, then trains running on Christmas will run as though it were a Sunday, even if Christmas falls on weekday.
This screen allows for the names of special dates to be localised.
Period templates are useful when creating many trains with commonly-used periods in which they run or do not run.
For layouts where certain train ID patterns should trigger an automatic renumbering of panel train IDs, this screen provides a method to enter such data. For each track, a number of rules can be defined. There are several types of these rules. This system operates using regular expressions.
Adds a steering number to the matched train ID pattern.
Following a match, removes the first digit of the train ID.
Following a match, replace one steering number with another.
Following a match, replace the contents of the matched group with another.
Following a match, treat the train ID as a number and increment the number by a specified value.
In order to localise remarks/train instructions in trains, you have the option to construct those pieces of text using short codes that are replaced with localised strings upon loading each train.
Some data errors can be detected algorithmically but they are expensive (time-wise) to discover, so these checks are not performed automatically when saving or loading.
This sanity check checks whether there are any stabled trains that will appear on the same track at the same time. Considering that every stabled train is compared with every other stabled train, on every day that it runs, this sanity check can take a considerable amount of time for timetables with many stabled trains (perhaps a minute or more).
If a problem is discovered, you will see a message similar to
Stabled trains XXXX and YYYY are on the same track(s) at the same time.
This checks for trains that do not have certain values specified:
- Trains that are not running any days
- Trains that are not running any time periods
This checks that missing references do not exist. For example, a train could have a consist template that does not exist. Otherwise, you will get an error message similar to:
Train XXXX missing references consist template YYYY which doesn't exist.
This checks that the platform names for each train matches with those names defined in the layout data. Such a problem can arise when a timetable is made after changes are made to the platform names.
SimSchedule supports the concept of regions, where some trains operate one one region but not others. At the moment, there is only one region to which all trains belong.
Provides some meta data about the timetable, including when it was first created, most recently edited, and the number of times it has been saved.
Creator: Tnformation about where the timetable came from. If it was exported from an old MS Access file, it will indicate this here.
Created: Date that the timetable was first created or exported.
Last Edited: Date that the timetable was more recently changed using SimSchedule. Obviously, manual edits to the .timetable file will not be reflected here.
Revision: Each time a timetable is saved, this version number increases by one. This provides an automatic version control scheme.
SimSchedule has a few options in how data is stored internally. Originally, the system was designed so that one train was saved per file, within the .timetable archive. Since each .timetable file is just a zip file, this method of saving creates a lot of small files. It is faster and more efficient to write fewer, larger files than many smaller ones. Switching these options on can drastically reduce the size of timetable files, at the expense of some human-readability. If you are not intending to ever unzip a .timetable file and edit manually, these options should be checked/on.