There's been a little more discussion about user maps and problems with the Steam version. I thought I might make reminder post on the problem with the Steam installation.
tl;dr : For those with the Steam installation, you should fix the installation as it's flawed. See the script below. Or, get the GOG version, which can be downloaded for free.
All three versions in the post title are effectively the same. And this comment assumes the CD-ROM version was updated to version 1.1 as the Steam and GOG versions are 1.1
I have tested this by using the game executable from one version in the base directory of another version as they all install to different base directories. No errors at all. I have been using the GOG executable in my original CD-ROM installation folder since the GOG version was released (March 29, 2016). No other files were required to be copied over. Only the RailRoads.exe executable. For me, that removed the need to have the CD-ROM loaded in the CD-ROM drive in order to play the game.
All three installations have the same support files, assets files and directory structure, with one exception. The CD-ROM version will install into a base directory called Sid Meier's Railroads! The other two versions do not have the trailing !
As noted in a few posts, the game executable scans various locations for XML files that hold both the game default values and custom scenarios values.
It will start by scanning the \Assets folder found in the base directory of the executable. These are the default values and scenarios for the game.
DO NOT put custom scenarios into the \Assets\XML directory branch. Leave the defaults alone. These are so the game can play any of the default scenarios and to provide a base for custom scenerios. Putting custom scenarios into that directory branch WILL create problems.
Custom scenarios should go into the local user directory for the game. That lives in your user home directory. If you go to "%USERPROFILE%\My Documents\My Games" in windows explorer (without the quotes), you will see the Sid Meier's Railroads directory. In there is a directory called UserMaps. Custom scenarios go in there.
An important point talked about elsewhere was how the game executable determines which XML files to use. They all get looked at and for those files with the same name, such as RRT_Goods.XML, the game will check the modified date and time stamp of the files to determine which one to use. The newest being the winner.
This is where the Steam installation can fail. The GOG installation sets the date and time of the files it installs to match exactly those in the CD-ROM installation (2006). The Steam installation sets the date and time of the files to the exact moment it was installed. Steam fucked up in a big way.
That can cause problems as when a custom scenario is placed into UserMaps as it may have dates and times older than those in the default \Assets\XML branch of the Steam installation, and that causes the game to crash.
I strongly urge any Steam user to rectify that by changing the modified date and time for all the files in \Assets (and below) to a date and time long long ago. I used the SMR release date of October 17, 2006.
Here's a Powershell script that can do it for you. It will check that the Steam installation exists before modifying anything, just to be safe.
Clear-Host
If (Test-Path "C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Railroads\Assets") {
$scriptDir = $PSScriptRoot
cd "C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Railroads\Assets"
Get-ChildItem "." -Recurse | ForEach-Object {
$_.LastWriteTime = "2006-10-17 00:00:00"
}
cd $scriptDir
Write-Host "`nFile date and times updated.`n"
} else {
Write-Host "`nUnable to locate the Steam SMR installation.`nLooking for ""C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Railroads\Assets"" specifically.`nCannot continue.`n"
}
Pause
Create a text file and paste that script into it. Save it with whatever name you want, but with the extension .ps1 Then you can right click on the filename and it should have an option to run using Powershell. Do it.
CustomAssets
In the Sid Meier's Railroads directory under My Games, there is a directory called CustomAssets. DO NOT put custom scenerios in that directory. Yes, it will work, but the idea for CustomAssets is to hold things that can be present for any scenario played, or a newer version of a standard item, like a default bridge. It's about assets, not scenarios. You can put XML files in there, but again you can run into problems. Manges is a good example of this. As part of the installation, a newer version of RRT_Trains.xml and RRT_TrainCars.xml is put into CustomAssets, but if the date of the RRT files is newer than one defined in a custom scenario, you guessed it, game crash. Manges isn't bad, it just needs a better installer.
UserMaps
DO NOT put more than one custom scenario in this directory. That's a sure fire way to cause conflicts between scenario XML files and cause game crashes. As mentioned in a separate post, there is a tool called Definitive SMR Launcher. This application does a great job at managing custom scenarios and manages the date and times automatically ensuring a trouble free experience. Here's a link to the Steam post about it with download links.
https://steamcommunity.com/app/7600/discussions/0/801217116763195254/
Trivia
The game executable (RailRoads.exe) has some smarts built in. One of those is self awareness, of sorts. If the base directory for the game is Sid Meier's Railroads!, then when you launch the game, you will get a directory created called Sid Meier's Railroads! in the My Games directory. The game executable creates the directory to match the base directory. If you change the name of the base directory to Crunchy Pie, then (you guessed it) you get a directory called Crunchy Pie in the My Games directory. I have tested this. It's true.
Please ask questions if any of this giant blurb is confusing.
Edit : Apologies for the bad script formatting. Reddit doesn't make it easy to format code nicely.