Modifications you can make to G-TraX products
Here are some handy fixes you can do yourself, but only if you are comfortable with modifying original RailWorks files. Be sure to make a copy of the file before you modify it, just in case. For some modifications you'll need to use a binary file editor such as KRSBinConvert, RW_Tools, or RWTextEdit. RSBinTool is a great texture viewer, or you could also use RW_Tools.
Disabling the P42DC Alerter
You just want to cruise around and watch the scenery? Maybe you want to run the train real fast and watch it fly off a sharp curve (c'mon, don't tell me you never did that). Oops! Unbeknownst to you, the alerter went through its warning sequence and if just hit the emergency brake.
Here's what to do.
What that does is delay triggering of the alerter sequence from 90 seconds to 9000 seconds. That's 2½ hours, which should be sufficient to get you through most sessions!
Changing the Cab View and Headout Coordinates
"I want my engineer to be looking out that hatch on the top of the cab. What was Rick thinking?"
Don't like where I located the cab view or the headout view? I chose the coordinates, but if you don't like them, by all means change them. They're just simple XYZ coordinates. Using Windows Explorer or equivalent, navigate to the CabView folder for the locomotive you want to change. The files you want to modify are usually named something like LocoName_CabCam.bin and LocoName_Headout.bin. Open the file using a binary file editor. You'll see two sets of line items that look more or less like this:
<cRVector3<
<X d:type="sFloat32" d:alt_encoding="000000206A4DE53F" d:precision="string">0.6657</X>
<Y d:type="sFloat32" d:alt_encoding="000000E051B80C40" d:precision="string">3.5900</Y>
<Z d:type="sFloat32" d:alt_encoding="00000020D7A32040" d:precision="string">8.3200</Z>
</cRVector3>
The only numbers that matter are the three XYZ coordinates, in this case 0.6657, 3.5900, and 8.3200. These coordinates are measured from the locomotive's "pivot point" which is usually near the center of the locomotive, at track level. The X coordinate represents the distance from the locomotive's centerline to the right (if positive) and left (if negative). Usually the second set of coordinates in these files has the same X coordinate value, only negative. The X coordinates of British and other left-hand-drive locomotives have the opposite signs of right-hand-drive ones. Continuing, the Y coordinate is the vertical dimension, measured from the railtops. And the Z coordinate is the distance in front of (if positive) or behind (if negative) the pivot point.
Modify the coordinates to suit your preferences. You'll have to experiment a bit. I suggest changing in 0.2m increments until you get the view where you want it.
How to Load and Unload Cargo
I often get asked how to make the containers show up in a set of double-stack well cars. Here's how. The same principles apply to all railcars that are equipped with loadable cargo, regardless of who made them. Note that some railcar models are made with permanent loads, or with no load at all. You can't do anything about those. Check with the developer if you're not sure what you have.
To "load" a container stack onto an individual well car, go into the Scenario Editor and double-click on the car.
OR
To load a whole well car consist at once, first open the lower-left flyout and click the Consist Select button. Then double-click on any car in the consist.
THEN
In the upper-right flyout menu, check the Preload cargo box.
For information on how to use the Mi-Jack crane, such as the one in San Bernardino Yard, to load G-TraX containers onto G-TraX well cars, click here for a complete tutorial.
Let It Snow!
You've probably noticed that some assets don't appear with snow in the wintertime. Well, here's a file hack that will let you change that. This method will not work with Steam DLC assets, as Steam will eventually replace your hacked file with the original version. Other assets are fair game, though.
There are two reasons why a particular building doesn't have snow on the roof when all the others nearby do. And it's not because the building uses a snow-melting system! The first reason is that the author probably didn't include a winter version of the building's roof texture. To verify this, find the geometry file for the building—it will have a name like Building.GeoPcDx—and open it for editing. Near the beginning of the file you will see one or more blocks of information that start out something like this:
<cHcExplicitStateMaterial d:id="123456789">
<ShaderName d:type="cDeltaString">Lit3DirSingle</ShaderName>
<TextureByName>
<e d:type="cDeltaString">textures\[00]rooftexture</e>
</TextureByName>
<Name d:type="cDeltaString">roof</Name>
:
:
:
The line containing the string "textures\[00]rooftexture" is the texture folder name (usually it's "textures" but not always) and the name of the texture itself, in this case "rooftexture." Don't worry about the "[00]" for now—we'll get to that.
It would be nice if all textures had obvious names like "rooftexture," but that's not usually the case. Scan through the file and make a note of the texture(s) that are most likely to need a winter version, then quit out of the editor.
Using a texture viewer, open each of the candidate textures in the asset's Textures folder until you find the one(s) that need snow. If you'd like a snowy roof and the author used a single texture for the roof only, your in luck. Just quit out of the viewer. Now look in the Textures folder. For each texture that should have a snow version there should be another texture with the same file name as the original, but with "_wi" inserted just before the .TgPcDx extension. If no such texture exists, place a generic, tilable snow texture in the Textures folder and rename it in this format: originaltexturename_wi.TgPcDx. Again, it should have the same file name as the original, non-snow texture but with "_wi" inserted.
If the roof image is included as part of a texture that also includes other images such as walls that should not have snow, export the texture as a DDS file. Open the DDS file in your paint program and add a snow layer to it. Erase any areas of the snow overlay that are over parts of the base texture that should not have snow. Now save the layered image in the paint program's native format, just in case, and then export the image in RailWorks ACE format. When you are prompted for the file name, be sure to insert the "_wi" suffix to distinguish it from the original texture's file name.
Place the winter ACE file in your RailWorks Source folder—anywhere is fine. Open the Blueprint Editor and find the winter ACE file. Right-click on it and select Export from the pop-up menu. That converts the winter texture to TgPcDx format. Find the new winter texture in the Assets folder and move it to the same Textures folder as the original texture.
In either of the above cases, the Textures folder should now have two textures named, for example, BuildingTex.TgPcDx and BuildingTex_Wi.TgPcDx. Don't worry about case sensitivity. We often use capital letters for our own identification purposes, but internally RailWorks convert everything to lower case.
In the beginning we said there are two reasons an asset may lack winter snow. One of them is that there was no snow texture, and we just fixed that. The other reason is we have to tell RailWorks that the snow texture exists. That's where that little "[00]" string in the GeoPcDx file comes in. In order to display a winter snow texture, this string should read "[08]." Open the GeoPcDx for editing and simply change the second digit from 0 to 8 for any texture(s) that you created winter versions for. Save the change. The next time you run RailWorks and you see the asset in a winter setting it should now have a nice snow texture.
We're all done now, but if you're interested in what the "[08]" really means, you must be an incorrigible hacker so read on. The 08 is hex code. The bits in the hex code are flags that tell RailWorks about the existence of alternate seasonal textures. In binary form, 08h is 0000 1000. The 1 is the winter flag. The flags appear in this order from left to right: winter, autumn, summer, spring. Thus, an asset such as a tree that was exported with winter, autumn and spring textures, in addition to the default (summer) texture, would have a binary code of 0000 1101. The summer flag is usually 0 unless for some reason we appended the suffix "_Su" to a copy of the default texture's file name, which is something we don't usually do. If you open the GeoPcDx file for an existing tree object, you'll probably find that the texture name has an "[0d]" (binary 0000 1101) in front of it.