3rd Party Route Dependencies

Discuss almost anything about RailWorks.

3rd Party Route Dependencies

Unread postby Crestone » Thu Jan 30, 2020 6:59 am

Hi

Quick question for you route builders. I’m considering breaking up how many routes I load into the game due to the sheer number that I own. Would prefer to do this in groups of 20 to 30 routes at a time based on era and or geography. However, I own a fair number of 3rd party routes with dlc dependencies. Do I need to keep these routes “bundled” with their predecessors.

From RWTools reporting, it appears all calls and references always goes back to the predecessor’s asset folder and never the content\ route folder. Am I correct in this assessment? FYI, I always keep all of my assets loaded in the game so this is not a concern, just the route folder.

I guess my lack of any route building experience is showing here.

Thanks, Jeff
Crestone
 
Posts: 22
Joined: Thu Jan 02, 2020 3:00 pm
Location: Upstate NY

Re: 3rd Party Route Dependencies

Unread postby buzz456 » Thu Jan 30, 2020 9:23 am

As long as the assets are left intact whether the route is in the game or not is irrelevant to items showing up so you can take all the routes out at your pleasure.
Buzz
39 and holding.
"Some people find fault like there's a reward for it."- Zig Ziglar
"If you can dream it you can do it."- Walt Disney
Image
User avatar
buzz456
Site Admin
 
Posts: 21087
Joined: Sun Mar 21, 2010 8:30 am
Location: SW Florida

Re: 3rd Party Route Dependencies

Unread postby Crestone » Thu Jan 30, 2020 10:19 am

Thanks for your response, Buzz! Very much appreciated.

That's very interesting that routes only reference assets and not other content. You learn something new every day and I am very glad I asked as it now gives me a lot more flexibility in "bundling" routes to load into the game.


Jeff
Crestone
 
Posts: 22
Joined: Thu Jan 02, 2020 3:00 pm
Location: Upstate NY

Re: 3rd Party Route Dependencies

Unread postby alanch » Thu Jan 30, 2020 2:02 pm

Crestone wrote:Thanks for your response, Buzz! Very much appreciated.

That's very interesting that routes only reference assets and not other content. You learn something new every day and I am very glad I asked as it now gives me a lot more flexibility in "bundling" routes to load into the game.


Jeff


Just to make things clear for posterity, there are no assets in the Content/Routes folders, and routes/scenarios only reference items in the Assets folders - that includes environment, lights, time of day and weather definitions, as well as Quickdrive consists in the Preload folders, rolling stock, track, signals, lofts and scenery.

Strangely, any consists that you create and save ARE stored in the Content folder in the ConsistTemplates.bin file, but they are yours and yours alone.
Alan


My railway photos are back - you can access them from this thread viewtopic.php?f=24&t=21667a . Lots of UK steam and early diesels from the late 1950s and early 1960s.
User avatar
alanch
 
Posts: 110
Joined: Fri Jul 10, 2009 7:14 am

Re: 3rd Party Route Dependencies

Unread postby Crestone » Thu Jan 30, 2020 5:38 pm

That pretty much lays it out, Alan, in clear detail.

Glad you mentioned the template. Since I run on multiple computers with different hardware profiles (AMD vs Intel, single processor vs dual processor, etc), I run multiple instance of the game on a single portable drive. I created a shared resource folder and the various instances point to this folder via links. The template is one of the shared files that reside there. That way, I have the same consists no matter what computer I'm on. Thought I would mention that for others, as it solved a problem I had at one time.
Crestone
 
Posts: 22
Joined: Thu Jan 02, 2020 3:00 pm
Location: Upstate NY

Re: 3rd Party Route Dependencies

Unread postby jlms48 » Sat Feb 01, 2020 11:46 am

I'm thinking about doing the same thing ( breaking up my route folder into groups based on country/era etc).
I would be interested to hear how you plan to switch between the different groups of routes before starting the game. I could just rename the folder for my selected group of routes ( eg " Routes_US_steam) to "routes " each time or I could store the route sub-folders as .zip files and just unzip my selected group to an empty "Routes" folder.
I assume lots of users already do this, so has anybody written a utility or batch file which makes it easy to switch between the different route folders?
jlms48
 
Posts: 104
Joined: Mon Mar 19, 2018 7:15 am
Location: Wales

Re: 3rd Party Route Dependencies

Unread postby Crestone » Sun Feb 02, 2020 11:47 pm

Jim,

I write tons of scripts to control my “build” and “ operating” environments. It’s kinda my day job.

I have a launch script you may find useful and/or instructive. At launch, I first select my environment, which you can ignore. I also set screen size, which you may or may not want. Finally, I point to my “ route bundle” by creating symbolic links in my content folder to select the group that want. The script just overwrites the “routes” link at each startup to point to the group I select in the selection dialogue.

I only run North America right now, so I just break them up by era. Each era has its own folder containing the appropriate routes.

Not at my computer now, but will post it here tomorrow.

Jeff
Crestone
 
Posts: 22
Joined: Thu Jan 02, 2020 3:00 pm
Location: Upstate NY

Re: 3rd Party Route Dependencies

Unread postby Crestone » Mon Feb 03, 2020 8:11 am

Jim...I have attached my launch batch file here. I have tried to comment enough to explain what is going on.

It will help to decipher the code to understand that I run three different environments:

Build - for installation, customization, debugging and testing of ALL DLC. No route bundling here, and this mode is ALWAYS offline from Steam.

Operations - Build content that has been verified is "published here" using SyncbackSE and where route bundling takes place as well. This is for operating the game with known working content.

OEM - Clean, pristine version of Steam DLC only. I never really run here, but keep a clean version so that I know what, if any, updates occur from Steam.

Other things going on besides bundling:
1) I set screen size outside the game, so that I don't get caught on full screen with buggy DLC causing a game freeze. Especially important when testing in Build mode.
2) I also force steam to to give me to option dialogue of going online or not. The code comments should provide greater detail on how to do this. I never want a steam update into my Build folders, and this is my way of ensuring that never happens.

Jeff

Ok, site won't let me upload a cmd, or bat. Posting the code here instead:




:: ****Terminate any instance of Steam still running****
taskkill /IM steamService.exe /F
taskkill /IM steam.exe /F


:: ****Remove existing symbolic links from Railworks installation in preparation to replace****
rmdir "S:\TS2020 OEM\steamapps\common\RailWorks\Content"
rmdir "S:\TS2020 OEM\steamapps\common\RailWorks\Assets"
rmdir "S:\TS2020 OEM\steamapps\common\RailWorks\Source"
rmdir "S:\TS2020 OEM\steamapps\common\RailWorks\Manuals"


:: ****Remove environment flag from desktop in preparation to reset****
if exist "C:\Users\####\Desktop\Scripts (--^ Operations)\" rmdir "C:\Users\mtbea\Desktop\Scripts (--^ Operations)\"
if exist "C:\Users\####\Desktop\Scripts (--^ OEM)\" rmdir "C:\Users\mtbea\Desktop\Scripts (--^ OEM)\"
if exist "C:\Users\####\Desktop\Scripts (--^ Build)\" rmdir "C:\Users\mtbea\Desktop\Scripts (--^ Build)\"
if exist "C:\Users\####\Desktop\Scripts (--^ Packaging)\" rmdir "C:\Users\mtbea\Desktop\Scripts (--^ Packaging)\"


echo off
CLS


:: ****Select run environment where Build is for offline installation, customization, testing only****
:: ****Publish from Build to Operations is for running TS#### in earnest online****
:: ****OEM is clean install of Steam DLC, only run here under special circumstances****
ECHO Select Run Environment
ECHO 1.Build
ECHO 2.Operations
ECHO 3.OEM

CHOICE /C 123 /M "Enter your choice:"

IF ERRORLEVEL 3 GOTO OEM
IF ERRORLEVEL 2 GOTO Operations
IF ERRORLEVEL 1 GOTO Build

:Build

:: ****Build env chosen, Set symbolic links in Railworks installation to Build Folders****
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Content" "S:\Build Materiel\Content"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Assets" "S:\Build Materiel\Assets\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Source" "S:\Build Materiel\Source\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Manuals" "S:\Build Materiel\Manuals\"

:: ****Remove player profile hard link in preparation to replace to point selection below****
del "S:\Build Materiel\Content\PlayerProfiles.bin"

:: ****Set Build flag on desktop****
mklink /D "C:\Users\####\Desktop\Scripts (--^ Build)" "V:\The Roundhouse\Scripts\"

echo off
CLS

:: ****Choose screen size dialogue****
ECHO Select Screen Size
ECHO 1.Windowed 1600 x 900 (16:9)
ECHO 2.Windowed 1680 x 1050 (16:10)
ECHO 3.Windowed 1920 x 1080 (16:9)
ECHO 4.Windowed 2048 x 1152 (16:9)
ECHO 5.Full Screen

CHOICE /C 12345 /M "Enter your choice:"

:: Note - list ERRORLEVELS in decreasing order
IF ERRORLEVEL 5 GOTO FullScreen
IF ERRORLEVEL 4 GOTO W2048
IF ERRORLEVEL 3 GOTO W1920
IF ERRORLEVEL 2 GOTO W1680
IF ERRORLEVEL 1 GOTO W1600


:: ****Set hardlinks to point to proper player profile based on screen size selection above****
:W1600
mklink /H "S:\Build Materiel\Content\PlayerProfiles.bin" "S:\Build Materiel\Content\PlayerProfiles1600x900.bin"
GOTO NextBd

:W1680
mklink /H "S:\Build Materiel\Content\PlayerProfiles.bin" "S:\Build Materiel\Content\PlayerProfiles1680x1050.bin"
GOTO NextBd

:W1920
mklink /H "S:\Build Materiel\Content\PlayerProfiles.bin" "S:\Build Materiel\Content\PlayerProfiles1920x1080.bin"
GOTO NextBd

:W2048
mklink /H "S:\Build Materiel\Content\PlayerProfiles.bin" "S:\Build Materiel\Content\PlayerProfiles2048x1152.bin"
GOTO NextBd

:FullScreen
mklink /H "S:\Build Materiel\Content\PlayerProfiles.bin" "S:\Build Materiel\Content\PlayerProfilesFullScreen.bin"
GOTO NextBd


:NextBd
Timeout 1
GOTO Launch





:Operations

:: ****Build env chosen, set symbolic links in Railworks installation to Operations Folders****
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Content" "S:\Operations Materiel\Content\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Assets" "S:\Operations Materiel\Assets\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Source" "S:\Operations Materiel\Source\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Manuals" "S:\Operations Materiel\Manuals\"

:: ****Remove Route link in Operations foolder in prep to be replaced re selection below****
rmdir "S:\Operations Materiel\Content\Routes"

:: ****Remove player profile hard link in preparation to replace to point selection below****
del "S:\Operations Materiel\Content\PlayerProfiles.bin"

:: ****Set Operations Flag on desktop****
mklink /D "C:\Users\####\Desktop\Scripts (--^ Operations)" "V:\The Roundhouse\Scripts\"


echo off
CLS

:: ****Choose screen size dialogue****
ECHO Select Screen Size
ECHO 1.Windowed 1600 x 900 (16:9)
ECHO 2.Windowed 1680 x 1050 (16:10)
ECHO 3.Windowed 1920 x 1080 (16:9)
ECHO 4.Windowed 2048 x 1152 (16:9)
ECHO 5.Full Screen

CHOICE /C 12345 /M "Enter your choice:"

:: Note - list ERRORLEVELS in decreasing order
IF ERRORLEVEL 5 GOTO FullScreen
IF ERRORLEVEL 4 GOTO W2048
IF ERRORLEVEL 3 GOTO W1920
IF ERRORLEVEL 2 GOTO W1680
IF ERRORLEVEL 1 GOTO W1600


:: ****Set hardlinks to point to proper player profile based on screen size selection above****
:W1600
mklink /H "S:\Operations Materiel\Content\PlayerProfiles.bin" "S:\Operations Materiel\Content\PlayerProfiles1600x900.bin"
GOTO NextBd

:W1680
mklink /H "S:\Operations Materiel\Content\PlayerProfiles.bin" "S:\Operations Materiel\Content\PlayerProfiles1680x1050.bin"
GOTO NextOp1

:W1920
mklink /H "S:\Operations Materiel\Content\PlayerProfiles.bin" "S:\Operations Materiel\Content\PlayerProfiles1920x1080.bin"
GOTO NextOp1

:W2048
mklink /H "S:\Operations Materiel\Content\PlayerProfiles.bin" "S:\Operations Materiel\Content\PlayerProfiles2048x1152.bin"
GOTO NextOp1

:FullScreen
mklink /H "S:\Operations Materiel\Content\PlayerProfiles.bin" "S:\Operations Materiel\Content\PlayerProfilesFullScreen.bin"
GOTO NextOp1

:NextOp1


echo off
CLS


:: ****Select Route Bundle Dialogue****
ECHO Select Operations Route Bundle
ECHO 1.Early Steam (Prior to 1900)
ECHO 2.Late Steam (1900 - 1940)
ECHO 3.Golden Age (1940 - 1970)
ECHO 4.Mature Diesel (1970 - 1995)
ECHO 5.Contemporary Diesel (1995 to Present)


CHOICE /C 12345 /M "Enter your choice:"

:: Note - list ERRORLEVELS in decreasing order
IF ERRORLEVEL 5 GOTO ContDiesel
IF ERRORLEVEL 4 GOTO MatureDiesel
IF ERRORLEVEL 3 GOTO GoldenAge
IF ERRORLEVEL 2 GOTO LateSteam
IF ERRORLEVEL 1 GOTO EarlySteam


:: ****Set symbolic link "Routes" to point to chosen Route bundle folder****
:EarlySteam
mklink /D "S:\Operations Materiel\Content\Routes" "S:\Operations Materiel\Content\EarlySteam"
GOTO NextOp

:LateSteam
mklink /D "S:\Operations Materiel\Content\Routes" "S:\Operations Materiel\Content\LateSteam"
GOTO NextOp

:GoldenAge
mklink /D "S:\Operations Materiel\Content\Routes" "S:\Operations Materiel\Content\GoldenAge"
GOTO NextOp

:MatureDiesel
mklink /D "S:\Operations Materiel\Content\Routes" "S:\Operations Materiel\Content\MatureDiesel"
GOTO NextOp

:ContDiesel
mklink /D "S:\Operations Materiel\Content\Routes" "S:\Operations Materiel\Content\ContDiesel"
GOTO NextOp

:NextOp
Timeout 1
GOTO Launch






:OEM

:: ****OEM environment chosen, set symbolic links in Railworks install to OEM content folders****
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Content" "S:\OEM Materiel\Content\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Assets" "S:\OEM Materiel\Assets\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Source" "S:\OEM Materiel\Source\"
mklink /D "S:\TS2020 OEM\steamapps\common\RailWorks\Manuals" "S:\OEM Materiel\Manuals\"


:: ****Set OEM Flag on desktop****
mklink /D "C:\Users\####\Desktop\Scripts (--^ OEM)" "V:\The Roundhouse\Scripts\"


GOTO Launch



:: ****Almost ready to launch. to ensure Steam provides offline option dialogue at startup,****
:: ****set Steam\config\loginusers.vdf options to offline and remove ALL users from edit capabilities****
:: **** for this file by right click file properties-security-users****

:Launch

:: *****Ready to launch. Start steam in silent mode****
Start "Steam" "C:\Program Files (x86)\Steam\Steam.exe" -silent /B

start steam://rungameid/24010
Crestone
 
Posts: 22
Joined: Thu Jan 02, 2020 3:00 pm
Location: Upstate NY

Re: 3rd Party Route Dependencies

Unread postby Chacal » Mon Feb 03, 2020 2:48 pm

This script is good, using symbolic links is much better than renaming folders.
You even have links pointing to links! *!greengrin!*
For users who have overlapping bundles, it is easy to use a 3rd level of symbolic links.

Do I understand correctly that:
- you have only one installation of TS2020, in S:\TS2020 OEM\steamapps\common\RailWorks
- this installation has no routes or scenarios (\Content is empty)
- all the normal content, assets, etc is in S:\Operations Materiel
Over the hill and gathering speed
Chacal
Site Admin
 
Posts: 6534
Joined: Tue Jul 05, 2011 1:11 pm
Location: Quebec, Canada

Re: 3rd Party Route Dependencies

Unread postby Crestone » Mon Feb 03, 2020 4:10 pm

Thanks, Chacal.

You are correct, I have links pointing to links, but I have never encountered any issues with it at all.

Also,correct, for this particular case I only have one TS2020 install. I do not have any content, assets, source or manuals residing in the Railworks installation folder. The various versions of content (S:\Build, S:\Operations, S:\OEM) are always "pointed to" by the links.

However, I mentioned above that I have multiple installations on various computers - each with their own launch script. So, separating out the content was an absolute must I encountered early on. Via the launch scripts, I can always point at the exact same content on a portable SDD that I carry with me.

At first, all of this may seem a little complex, but as a former software developer I could not imagine running any other way. Content/Code is either for use or for development/testing - never both- in my world. The latter is more a commentary on my professional brainwashing than it is on the "right" way of doing things. Haha!

The side benefit of this added overhead is it makes troubleshooting and backups much more manageable.

Jeff
Crestone
 
Posts: 22
Joined: Thu Jan 02, 2020 3:00 pm
Location: Upstate NY

Re: 3rd Party Route Dependencies

Unread postby chrisreb » Wed Feb 12, 2020 2:48 am

Impressive - I just go with renaming Routes folder and the SDB folder (saves it being rebuilt every time you switch). Four quick renames for a swap. I need 5 separate Routes folders - lots of routes!
chrisreb
 
Posts: 321
Joined: Tue Jun 30, 2009 9:40 am

Re: 3rd Party Route Dependencies

Unread postby ChrisOnline » Mon Feb 17, 2020 11:38 pm

One thing to remember with this is that any updates to a Route or its scenarios (e.g. Steam updates of DLC, or Workshop updates), will install into the "live" Routes folder at the time, which may not be the correct "group" of Routes. So there could be some duplication and/or failure to update in the "correct" group.

That assumes that you stay connected to Steam of course
ChrisOnline
 
Posts: 330
Joined: Tue Oct 02, 2012 11:47 am

Re: 3rd Party Route Dependencies

Unread postby chrisreb » Tue Feb 18, 2020 1:31 am

Yep after Steam updates I often have to move a few bits about
chrisreb
 
Posts: 321
Joined: Tue Jun 30, 2009 9:40 am

Re: 3rd Party Route Dependencies

Unread postby Crestone » Wed Feb 19, 2020 3:02 pm

ChrisOnline wrote:One thing to remember with this is that any updates to a Route or its scenarios (e.g. Steam updates of DLC, or Workshop updates), will install into the "live" Routes folder at the time, which may not be the correct "group" of Routes. So there could be some duplication and/or failure to update in the "correct" group.

That assumes that you stay connected to Steam of course


The script (and changes to the login.vdf) forces Steam to provide the option to you at startup whether to go online or offline. That coupled with the flag on the desktop is design to prevent unwanted updates to say the Build environment. Not perfect, but at least I have to make three mistakes in a row to get unwanted updates. The final being leaving the computer on overnight as I restrict all Steam updates to between 3am and 4 am.

I really want all updates to go into the OEM environment so that I can identify and manage them.
Crestone
 
Posts: 22
Joined: Thu Jan 02, 2020 3:00 pm
Location: Upstate NY

Re: 3rd Party Route Dependencies

Unread postby jlms48 » Thu Feb 27, 2020 6:26 am

Crestone wrote:
ChrisOnline wrote:One thing to remember with this is that any updates to a Route or its scenarios (e.g. Steam updates of DLC, or Workshop updates), will install into the "live" Routes folder at the time, which may not be the correct "group" of Routes. So there could be some duplication and/or failure to update in the "correct" group.

That assumes that you stay connected to Steam of course


The script (and changes to the login.vdf) forces Steam to provide the option to you at startup whether to go online or offline. That coupled with the flag on the desktop is design to prevent unwanted updates to say the Build environment. Not perfect, but at least I have to make three mistakes in a row to get unwanted updates. The final being leaving the computer on overnight as I restrict all Steam updates to between 3am and 4 am.

I really want all updates to go into the OEM environment so that I can identify and manage them.


Many thanks Crestone and others for your detailed replies and clarifications to my original query.
Sorry for the delay in replying but I have been travelling and couldn't log on to RWA until I got back home.
jlms48
 
Posts: 104
Joined: Mon Mar 19, 2018 7:15 am
Location: Wales


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest