35 Commits

Author SHA1 Message Date
92d2407fee Set stock car capacity to nominal capacity of 3 2025-12-13 12:51:21 -06:00
41a93625f9 Add PRR K7A STOCK CAR
https://www.nexusmods.com/railroader/mods/1056
2025-12-13 01:51:00 -06:00
2c4f43033f Ignore TimeSync sync file 2025-12-08 16:47:25 -06:00
5542435cf2 Ignore log files 2025-12-02 20:06:54 -06:00
2af750f646 Update to MapEnhancer 1.5.4.2 2025-12-02 20:06:45 -06:00
8041039244 Add Some Kind of Madness 2025-12-02 19:58:07 -06:00
58b0228838 Remove the old RRCrossing mod 2025-12-02 19:57:38 -06:00
9fa64b95da Add TimeSync mod 2025-12-01 19:28:03 -06:00
c9132f472e Ignore downloaded map tiles from Alina's Map mod 2025-12-01 19:27:51 -06:00
b474a10da1 Remove Car Spawner 2025-12-01 19:27:28 -06:00
cd4373cc61 Remove Ocanaluftee River 2025-11-30 22:43:41 -06:00
171ebc90fe Remove RTM Asset Pack 0.5.0 2025-11-30 21:22:34 -06:00
40509c2db2 Update to Alina’s Map Mod 1.7.5315.2154 2025-11-30 21:16:26 -06:00
4bec427289 Update to SCOLD 6.3 2025-11-30 21:14:38 -06:00
9002674718 Update to RTM Asset Pack 0.5.7 2025-11-30 21:13:39 -06:00
10bf990152 update to AR Branchline 0.5.7 2025-11-30 21:09:26 -06:00
b990fbef23 Add For Your Convenience 1.2.24366.2200 2025-11-08 22:20:10 -06:00
2dcae51979 Add RMROC T&T 2.1.8 2025-11-02 12:05:07 -06:00
c7f120c2ae Add Legotrainman’s Used Equipment Market
https://www.nexusmods.com/railroader/mods/604
2025-11-01 18:29:23 -05:00
fea10f58ff Add Map Enhancer 2025-11-01 18:28:55 -05:00
bd32631dba Add Legotrainman’s Scrappalachia
https://www.nexusmods.com/railroader/mods/746
2025-11-01 18:28:24 -05:00
4e11da213e Add Legotrainmain’s Better Loans 1.0
https://www.nexusmods.com/railroader/mods/965
2025-11-01 18:27:50 -05:00
75e2ed34eb Add Griz1231.Ocanoluftee_River 0.5.0
https://rmh.alinanova.dev/mod/fa633153-15fc-412a-a46e-7b25e9e17378
2025-10-31 23:27:48 -05:00
c5eb7a55db add Embeddeds Asset Pack
https://www.nexusmods.com/railroader/mods/1019
2025-10-31 23:26:03 -05:00
c4de9f79e0 Add Western North Carolina Piggyback (TOFC) Service [Base]
https://www.nexusmods.com/railroader/mods/902
2025-10-31 23:23:47 -05:00
7874446a1f Add RTM Crossing pack 0.5
https://rmh.alinanova.dev/mod/f44be3f8-e091-413c-9927-16e3033f24bb
2025-10-31 23:21:40 -05:00
ce5802e97c Add CLB CarSpawner 0.5
https://rmh.alinanova.dev/mod/e583f8bd-b4d3-4dd8-9bdd-4a374cf553e0
2025-10-31 23:19:27 -05:00
0e02661382 Add CLB Assets 3.1.1
https://www.nexusmods.com/railroader/mods/132
2025-10-31 23:17:53 -05:00
c1feb3c8d4 Add RTM Asset Pack 0.5
https://rmh.alinanova.dev/mod/7de9f195-289d-450b-a4e3-39354632a8d7
2025-10-31 23:11:52 -05:00
d10304ebcc Add Zamu Strange Customs 1.10.25017.313 2025-10-31 22:58:36 -05:00
48a08f4b74 Add Alina’s Map Mod 1.7.25304.436
https://rmh.alinanova.dev/mod/cba5981c-8e8e-4b01-918c-214fa155adff
2025-10-31 22:33:42 -05:00
d6152d88f0 Add The Standard Catalog of Load IDs (SCOLD)
https://www.nexusmods.com/railroader/mods/434?tab=files&file_id=3992
2025-10-31 22:25:31 -05:00
0fcacde7f2 add A.R Branchline 0.5
https://rmh.alinanova.dev/mod/bf8e2075-b6a6-4ffd-8b0c-3e1002bedf42
2025-10-31 22:23:22 -05:00
85de13ac80 Ignore mod settings files 2025-08-12 20:57:14 -05:00
311b07e90c Ignore dll .cache files 2025-08-10 16:55:04 -05:00
263 changed files with 114780 additions and 0 deletions

8
.gitignore vendored
View File

@@ -3,3 +3,11 @@
*.swp
*.swo
# Ignore dll cache files
*.cache
*.log
Settings.xml
Railloader/ModSettings/*
AlinasMapMod/Maps/*
TimeSync/*.json

Binary file not shown.

View File

@@ -0,0 +1,636 @@
{
"items": {
"AN_Sylva_Interchange_Yard": {
"identifier": "AN_Sylva_Interchange_Yard",
"name": "Sylva Interchange Yard",
"groupIds": [
"AN_Sylva_Interchange_Yard"
],
"description": "A yard that can be useful for organizing west bound trains and storing cars if the Interchange is filled to capacity.",
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 4,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 12,
"load": "gravel",
"direction": 0
}
]
},
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 2,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 6,
"load": "rails",
"direction": 0
}
]
}
],
"prerequisiteSections": [
"s1"
],
"area": "sylva",
"trackSpans": [
"PAN_Sylva_Interchange_Yard_00"
],
"industryComponent": "AN_Sylva_Interchange_Yard.interchange-yard-site"
},
"AN_Sylva_Wye": {
"identifier": "AN_Sylva_Wye",
"name": "Sylva Wye",
"groupIds": [
"AN_Sylva_Wye"
],
"description": "Adds a Wye at the Sylva Interchange, great for turning around those massive Berks.",
"area": "sylva",
"trackSpans": [
"PAN_Sylva_Wye_00"
],
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "FM",
"count": 1,
"load": "mow-machinery",
"direction": 0
},
{
"carTypeFilter": "GB",
"count": 100,
"load": "debris",
"direction": 0
}
]
},
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "FM",
"count": 1,
"load": "mow-machinery",
"direction": 1
},
{
"carTypeFilter": "GB*",
"count": 6,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 5,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 2,
"load": "rails",
"direction": 0
}
]
}
],
"prerequisiteSections": [
"s1",
"AN_Sylva_Interchange_Yard"
],
"industryComponent": "AN_Sylva_Wye.wye-site"
},
"AN_Sylva_Paper_Crossover": {
"identifier": "AN_Sylva_Paper_Crossover",
"name": "Sylva Paper Crossovers",
"groupIds": [
"AN_Sylva_Paper_Crossover"
],
"description": "Adds two Crossovers at Sylva Paperboard.",
"area": "sylva",
"trackSpans": [
"PAN_Sylva_Paper_Crossover_00"
],
"deliveryPhases": [
{
"cost": 1000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 1,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 1,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 1,
"load": "rails",
"direction": 0
}
]
}
],
"prerequisiteSections": [
"s1"
],
"industryComponent": "AN_Sylva_Paper_Crossover.sylva-paper-crossover-site"
},
"AN_Sylva_Pax_Storage": {
"identifier": "AN_Sylva_Pax_Storage",
"name": "Sylva Pax Storage",
"groupIds": [
"AN_Sylva_Pax_Storage"
],
"description": "Adds two storage tracks to Sylva Station.",
"area": "sylva",
"trackSpans": [
"PAN_Sylva_Pax_Storage_00"
],
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 2,
"load": "rails",
"direction": 0
}
]
}
],
"prerequisiteSections": [
"s1"
],
"industryComponent": "AN_Sylva_Pax_Storage.sylva-station-site"
},
"AN_Whittier_Yard_Sawmill": {
"identifier": "AN_Whittier_Yard_Sawmill",
"name": "Whittier Sawmill Connection",
"groupIds": [
"AN_Whittier_Yard_Sawmill"
],
"description": "Extend the sawmill track over to the interchange",
"trackSpans": [
"PAN_Whittier_Yard_00"
],
"area": "whittier",
"industryComponent": "AN_Whittier_Yard.sawmill-site",
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 4,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 1,
"load": "rails",
"direction": 0
}
]
}
]
},
"AN_Whittier_Yard_1": {
"identifier": "AN_Whittier_Yard_1",
"name": "Whittier Yard ",
"groupIds": [
"AN_Whittier_Yard_Yard_Lead",
"AN_Whittier_Yard_Yard_Track_6",
"AN_Whittier_Yard_Yard_Track_7",
"AN_Whittier_Yard_Yard_Track_8"
],
"trackSpans": [
"PAN_Whittier_Yard_00"
],
"industryComponent": "AN_Whittier_Yard.yard-site-1",
"area": "whittier",
"description": "A yard that can be useful for organizing trains and storing cars.",
"prerequisiteSections": [
"AN_Whittier_Yard_Sawmill"
],
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 12,
"load": "gravel",
"direction": 0
}
]
},
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 6,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 6,
"load": "rails",
"direction": 0
}
]
}
]
},
"AN_Whittier_Yard_2": {
"identifier": "AN_Whittier_Yard_2",
"name": "Whittier Yard Extension 2",
"groupIds": [
"AN_Whittier_Yard_Yard_Track_3",
"AN_Whittier_Yard_Yard_Track_4",
"AN_Whittier_Yard_Yard_Track_5"
],
"trackSpans": [
"PAN_Whittier_Yard_00"
],
"industryComponent": "AN_Whittier_Yard.yard-site-2",
"area": "whittier",
"description": "An additional 3 tracks for the Whittier yard",
"prerequisiteSections": [
"AN_Whittier_Yard_Sawmill",
"AN_Whittier_Yard_1"
],
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 12,
"load": "gravel",
"direction": 0
}
]
},
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 6,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 6,
"load": "rails",
"direction": 0
}
]
}
]
},
"AN_Whittier_Yard_3": {
"identifier": "AN_Whittier_Yard_3",
"name": "Whittier Yard Extension 3",
"groupIds": [
"AN_Whittier_Yard_Yard_Track_0",
"AN_Whittier_Yard_Yard_Track_1",
"AN_Whittier_Yard_Yard_Track_2"
],
"trackSpans": [
"PAN_Whittier_Yard_00"
],
"industryComponent": "AN_Whittier_Yard.yard-site-3",
"area": "whittier",
"description": "An additional 3 tracks for the Whittier yard",
"prerequisiteSections": [
"AN_Whittier_Yard_Sawmill",
"AN_Whittier_Yard_1",
"AN_Whittier_Yard_2"
],
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 12,
"load": "gravel",
"direction": 0
}
]
},
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 6,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 6,
"load": "rails",
"direction": 0
}
]
}
]
},
"AN_Andrews_Interchange_Yard": {
"identifier": "AN_Andrews_Interchange_Yard",
"name": "Andrews Interchange Yard",
"groupIds": [
"AN_Andrews_Interchange_Yard"
],
"description": "A yard that can be useful for organizing east bound trains and storing cars if the Interchange is filled to capacity.",
"trackSpans": [
"PAN_Andrews_Interchange_Yard_00"
],
"industryComponent": "AN_Andrews_Interchange_Yard.interchange-yard-site",
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 4,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 12,
"load": "gravel",
"direction": 0
}
]
},
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 2,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 6,
"load": "rails",
"direction": 0
}
]
}
],
"prerequisiteSections": [
"s6"
],
"area": "andrews"
},
"AN_Alarka_Jct_Additional": {
"identifier": "AN_Alarka_Jct_Additional",
"name": "Alarka Jct Additional Tracks",
"groupIds": [
"AN_Alarka_Jct_Additional"
],
"description": "Additional tracks in Alarka Jct, currently just a bypass around the interchange.",
"prerequisiteSections": [
"alarka-jct"
],
"trackSpans": [
"Pevc"
],
"industryComponent": "AN_Alarka_Jct_Additional.alarka-bypass-site",
"area": "alarka-jct",
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 4,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 1,
"load": "rails",
"direction": 0
}
]
}
]
},
"AN_Alarka_Pax_Storage": {
"identifier": "AN_Alarka_Pax_Storage",
"name": "Alarka Pax Storage",
"groupIds": [
"AN_Alarka_Pax_Storage"
],
"description": "Adds two storage tracks to Alarka Station.",
"area": "alarka",
"trackSpans": [
"PAN_Alarka_Pax_Storage_00"
],
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 2,
"load": "rails",
"direction": 0
}
]
}
],
"prerequisiteSections": [
"alarka-branch"
],
"industryComponent": "AN_Alarka_Pax_Storage.alarka-station-site"
},
"AN_Alarka_Loop": {
"identifier": "AN_Alarka_Loop",
"name": "Alarka Balloon Loop",
"groupIds": [
"AN_Alarka_Loop"
],
"description": "Balloon loop in Alarka, no more fighting with a Wye.",
"prerequisiteSections": [
"alarka-branch"
],
"trackSpans": [
"PAN_Alarka_Loop_00"
],
"industryComponent": "AN_Alarka_Loop.alarka-bypass-site",
"area": "alarka",
"deliveryPhases": [
{
"cost": 2000,
"deliveries": [
{
"carTypeFilter": "GB*",
"count": 4,
"load": "ballast",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "gravel",
"direction": 0
},
{
"carTypeFilter": "GB*",
"count": 2,
"load": "ties",
"direction": 0
},
{
"carTypeFilter": "FM*",
"count": 1,
"load": "rails",
"direction": 0
}
]
}
]
}
}
}

View File

@@ -0,0 +1,22 @@
{
"manifestVersion": 5,
"id": "AlinaNova21.AlinasMapMod",
"name": "Alina's Map Mod",
"version": "1.7.25315.2154",
"assemblies": [ "AlinasMapMod" ],
"updateUrl": "https://railroader.alinanova.dev/update.json",
"requires": [
{
"id": "railroader",
"notBefore": "2024.6.10"
},
{
"id": "railloader",
"notBefore": "1.10.0.2"
},
{
"id": "Zamu.StrangeCustoms",
"notBefore": "1.10.25017.313"
}
]
}

View File

@@ -0,0 +1,8 @@
# Map Editor Integration
There are new classes adding in AlinasMapMod that allows
itself and other mods to register their objects in MapEditor.
This allows MapEditor to edit and save these objects.
There not much documentation yet, but there is a few implementations in the Loaders, Map, and Station folders. The main interfaces are IEditableObject, ITransformableObject, and IObjectFactory. There is also ICustomHelper for custom helper objects.

View File

@@ -0,0 +1,36 @@
# Pax stations
Industry:
```json
{
"barkers": {
"industries": {
"barkers-station": {
"name": "Barkers Station",
"localPosition": { "x": 0, "y": 0, "z": 0},
"usesContract": false,
"components": {
"ammBarkersStation": {
"name": "Barkers Station",
"type": "AlinasMapMod.PaxStationComponent",
"timetableCode": "BC",
// Reference values: Whittier: 30, Ela: 25, Bryson: 50
"basePopulation": 10,
"loadId": "passengers",
"trackSpans": [ // Spans for loading/unloading
"PAN_Test_Mod_00"
],
// Future support for custom branches, currently supported is "Main" and "Alarka Branch"
"branch": "Main",
// List of ids of other passenger stations.
// Unsure of exact impact
"neighborIds": [],
"carTypeFilter": "*",
"sharedStorage": true
}
}
}
}
}
}
```

View File

@@ -0,0 +1,88 @@
# Progressions
```json
// progressions json format
{
"mapFeatures": {
"sampleMapFeature": {
"displayName": "Sample MapFeature",
"name": "Sample MapFeature",
"description": "Description",
"prerequisites": {
"anotherMapFeature": true
},
"areasEnableOnUnlock": {
"sampleArea": true
},
"defaultEnableInSandbox": false,
"gameObjectsEnableOnUnlock": {
// Existing object in world, primary here for dumps.
"path://scene/world/path/to/gameObject/in/tree": true,
// Requires scenery to be defined in a game-graph
"scenery://sampleSceneryId": true
},
"trackGroupsAvailableOnUnlock": {
"sampleGroup": true
},
"trackGroupsEnableOnUnlock": {
"sampleGroup": true
},
"unlockExcludeIndustries": {
"sampleIndustry": true
},
"unlockIncludeIndustries": {
// Includes components by default
"sampleIndustry": true
},
"unlockIncludeIndustryComponents": {
"sampleIndustryComponent": true
}
}
},
"progressions": {
"ewh": { // ewh is the only current progression tree.
"sections": {
"sampleSection": {
"displayName": "sample milestone",
"description": "Description here",
"prerequisiteSections": {
"anotherSampleSection": true
},
"deliveryPhases": [
// Can have as many phases as you want here.
{
"cost": 1234,
"industryComponent": "sampleIndustryId.componentId",
"deliveries": [
// Can be empty for cost only milestones.
{
"carTypeFilter": "GB*",
"count": 8,
"load": "ballast",
"direction": 0 // 0 = LoadToIndustry, 1 = LoadFromIndustry
},
{
"carTypeFilter": "GB*",
"count": 12,
"load": "gravel",
"direction": 0 // 0 = LoadToIndustry, 1 = LoadFromIndustry
}
]
}
],
// Important note: You cannot both disable and enable the same feature, not even in seperate sections.
"disableFeaturesOnUnlock": {
"sampleMapFeature": true
},
"enableFeaturesOnUnlock": {
"sampleMapFeature": true
},
"enableFeaturesOnAvailable": {
"sampleMapFeature": true
}
}
}
}
}
}
```

158
AlinasMapMod/splineys.md Normal file
View File

@@ -0,0 +1,158 @@
# Splineys
All listed values are defaults, and may usually be omitted unless otherwise noted
- [Prefab Formats](#prefab-formats)
- [Telegraph Poles](#telegraph-poles)
- [Turntables](#turntables)
- [Loaders](#loaders)
- [Passenger Station Agent](#passenger-station-agent-includes-building)]
- [Passenger Stations](#passenger-stations)
- [Map Labels](#map-labels)
## Prefab formats
All prefabs use the following formats:
- Path based: `path://scene/world/path/to/gameObject/in/tree`
- Scenery: `scenery://sampleSceneryId`
- Vanilla: `vanilla://vanillaObjectid`
This is a special one for specific structures,
as of 05/10/2025, it has the following:
- roundhouseStall
- roundhouseStart
- roundhouseEnd
- coalConveyor
- coalTower
- dieselFuelingStand
- waterTower
- waterColumn
- flagStopStation
- brysonDepot
- dillsboroStation
- southernCombinationDepot
## Telegraph poles
```json
{
"handler": "AlinasMapMod.TelegraphPoleBuilder",
"polesToRaise": [1,2,3]
}
```
```json
{
"handler": "AlinasMapMod.TelegraphPoleMover",
"polesToMove": [1,2,3],
"poleMovement": [
[0,1,2],
[22,2,0],
[33,3,5],
]
}
```
## Turntables
```json
{
"handler":"AlinasMapMod.Turntable.TurntableBuilder",
"radius": 15,
"subdivisions": 32,
"position": { "x": 0, "y": 0, "z": 0 },
"rotation": { "x": 0, "y": 0, "z": 0 },
"roundhouseStalls": 0,
"roundhouseTrackLength": 46,
"stallPrefab": "vanilla://roundhouseStall",
"startPrefab": "vanilla://roundhouseStart",
"endPrefab": "vanilla://roundhouseEnd"
}
```
## Loaders
```json
{
"handler": "AlinasMapMod.LoaderBuilder",
"position": { "x": 0, "y": 0, "z": 0 },
"rotation": { "x": 0, "y": 0, "z": 0 },
// Must be set to one of the coal, diesel, or water prefabs
"prefab": "empty://",
// Required for coal and diesel, see example industry below
"industry": "",
}
```
Example industry:
```json
{
"loader-industry-example": {
"name": "Example industry for loaders",
"localPosition": { "x": -271.6577, "y": 0.0, "z": -22.8286133 },
"usesContract": false,
"components": {
"coaling": {
"type": "Model.Ops.IndustryUnloader",
"name": "Example Coaling Tower",
"trackSpans": [ "PExampleSpan" ],
"carTypeFilter": "HM,HT",
"sharedStorage": true,
"loadId": "coal",
"storageChangeRate": 0.0,
"maxStorage": 300000.0,
"orderAroundEmpties": false,
"carTransferRate": 1E+07,
"orderAroundLoaded": false
},
"diesel": {
"type": "Model.Ops.IndustryUnloader",
"name": "Example Diesel Stand",
"trackSpans": [ "PExampleSpan" ],
"carTypeFilter": "TM",
"sharedStorage": true,
"loadId": "diesel-fuel",
"storageChangeRate": 0.0,
"maxStorage": 16000.0,
"orderAroundEmpties": false,
"carTransferRate": 32000.0,
"orderAroundLoaded": false
}
}
}
}
```
## Passenger Station Agent (Includes building)
```json
{
"handler": "AlinasMapMod.StationAgentBuilder",
"position": {
"x": 12886,
"y": 562,
"z": 4703
},
"rotation": {
"x": 0,
"y": 0,
"z": 0
},
"prefab": "vanilla://flagStopStation",
"passengerStop": "whittier"
}
```
## Passenger Stations
### <span style="color:red">***DEPRECATED: Use the industry component instead***
## Map Labels
### Note that live editing may have ssizing issues, these are usually resolved on a save reload.
```json
{
"handler": "AlinasMapMod.Map.MapLabelBuilder",
"position": { "x": 0, "y": 0, "z": 0 },
"text": "Map Label",
}
```

View File

@@ -0,0 +1,861 @@
# Validation Framework Documentation
## Overview
The AlinasMapMod validation framework provides a standardized approach to validating spliney builder components and serialized objects. This framework uses a field-based validation system with fluent API extensions and comprehensive error reporting.
## Core Architecture
### ValidationBuilder<T> (Field-Based Validation)
The validation system is built around `ValidationBuilder<T>` which requires a field name for context:
```csharp
// Create a validation builder for a specific field
var builder = new ValidationBuilder<string>("PrefabUri");
// Add validation rules using fluent API
builder.AsUri()
.AsVanillaPrefab(allowedPrefabs);
// Validate a value
var result = builder.Validate("vanilla://locomotive_steam_small");
```
### ValidationResult System
The framework provides detailed validation feedback with manual result creation:
```csharp
public class ValidationResult
{
public bool IsValid { get; set; } = true;
public List<ValidationError> Errors { get; set; } = new List<ValidationError>();
public List<ValidationWarning> Warnings { get; set; } = new List<ValidationWarning>();
public void ThrowIfInvalid(); // Throws ValidationException if invalid
// Combines multiple validation results with null handling
public static ValidationResult Combine(params ValidationResult[] results);
}
```
### ValidationError and ValidationWarning
Detailed error information with context:
```csharp
public class ValidationError
{
public string Field { get; set; } // Field name being validated
public string Message { get; set; } // Human-readable error message
public string Code { get; set; } // Machine-readable error code
public object Value { get; set; } // The invalid value
}
public class ValidationWarning
{
public string Field { get; set; }
public string Message { get; set; }
public object Value { get; set; }
}
```
## Validation Rules
### Core Validation Rules
- **RequiredRule<T>**: Validates non-null/non-empty values with whitespace control
- **WhitelistRule<T>**: Validates values against allowed lists (includes null validation)
- **MinValueRule<T>**: Validates minimum values for comparable types
- **EnumValidationRule<TEnum>**: Validates enum values are defined
- **CustomRule<T>**: Allows custom validation logic
### URI Validation Rules
#### Basic URI Rules
- **UriFormatRule**: Validates URI format (contains "://")
- **UriSchemeValidationRule**: Validates supported schemes (case-insensitive: path, scenery, vanilla, empty)
#### Scheme-Specific Rules (Restrictive)
- **VanillaPrefabRule**: Only allows `vanilla://` URIs, validates prefab names with path extraction
- **PathUriRule**: Only allows `path://` URIs, validates scene path format
- **SceneryUriRule**: Only allows `scenery://` URIs, rejects identifiers with paths
- **EmptyUriRule**: Only allows `empty://` URIs or null/empty values
#### Comprehensive Rules (Permissive)
- **GameObjectUriRule**: Allows multiple URI schemes, validates each according to its rules
### Cache Validation Rules
- **CacheValidationRule<T>**: Validates cache key existence with null handling and exception safety
- **CacheTypeValidationRule<TExpected>**: Validates cached object types with comprehensive error handling
## Builder Standardization
### SplineyBuilderBase Class
All builders inherit from `SplineyBuilderBase` which provides standardized patterns for logging, error handling, validation, and object creation:
```csharp
public abstract class SplineyBuilderBase : StrangeCustoms.ISplineyBuilder
{
protected static readonly Serilog.ILogger Logger = Log.ForContext<SplineyBuilderBase>();
// Main build method with standardized error handling
public GameObject BuildSpliney(string id, Transform parentTransform, JObject data)
{
return SafeBuildSpliney(id, parentTransform, data, () => BuildSplineyInternal(id, parentTransform, data));
}
// To be implemented by derived classes
protected abstract GameObject BuildSplineyInternal(string id, Transform parentTransform, JObject data);
}
```
### Core Builder Features
#### Input Validation
```csharp
protected virtual void ValidateInput(string id, JObject data)
{
if (string.IsNullOrEmpty(id))
throw new ValidationException("ID cannot be null or empty");
if (data == null)
throw new ValidationException("Data cannot be null");
}
```
#### GameObject Creation
```csharp
protected virtual GameObject CreateGameObject(string id, Transform parentTransform, string objectTypeName = null)
{
var gameObject = new GameObject(id);
if (parentTransform != null)
{
gameObject.transform.SetParent(parentTransform);
}
else
{
var parent = Utils.GetParent(objectTypeName ?? "Unknown");
if (parent != null)
gameObject.transform.SetParent(parent.transform);
}
return gameObject;
}
```
#### Standardized Error Handling
Safe execution with structured logging and error handling:
```csharp
protected GameObject SafeBuildSpliney(string id, Transform parentTransform, JObject data, Func<GameObject> buildAction)
{
try
{
ValidateInput(id, data);
Logger.Information("Building {BuilderType} with ID {Id}", GetType().Name, id);
var result = buildAction();
Logger.Information("Successfully built {BuilderType} with ID {Id}", GetType().Name, id);
return result;
}
catch (ValidationException ex)
{
Logger.Error(ex, "Validation failed for {BuilderType} {Id}", GetType().Name, id);
throw new ValidationException($"Validation failed for {GetType().Name} {id}: {ex.Message}", ex);
}
catch (Exception ex)
{
Logger.Error(ex, "Failed to create {BuilderType} {Id}", GetType().Name, id);
throw new InvalidOperationException($"Failed to create {GetType().Name} {id}", ex);
}
}
```
#### Transactional Building with Cleanup
For builders that need cleanup on failure:
```csharp
protected GameObject SafeBuildSplineyWithCleanup(string id, Transform parentTransform, JObject data, Func<IBuilderTransaction, GameObject> buildAction)
{
var transaction = new BuilderTransaction();
try
{
ValidateInput(id, data);
Logger.Information("Building {BuilderType} with ID {Id}", GetType().Name, id);
var result = buildAction(transaction);
transaction.Commit();
Logger.Information("Successfully built {BuilderType} with ID {Id}", GetType().Name, id);
return result;
}
catch (Exception ex)
{
transaction.Rollback();
Logger.Error(ex, "Failed to create {BuilderType} {Id}", GetType().Name, id);
throw;
}
}
```
#### Deserialization and Validation
Helper method for deserializing and validating data objects:
```csharp
protected TData DeserializeAndValidate<TData>(JObject data) where TData : IValidatable
{
var deserializedData = data.ToObject<TData>();
if (deserializedData == null)
throw new ValidationException($"Failed to deserialize data as {typeof(TData).Name}");
// Use rich validation for detailed error reporting
var validationResult = deserializedData.ValidateWithDetails();
if (!validationResult.IsValid)
{
foreach (var error in validationResult.Errors)
{
Logger.Error("Validation error in {Field}: {Message}", error.Field, error.Message);
}
}
// Log warnings but continue
foreach (var warning in validationResult.Warnings)
{
Logger.Warning("Validation warning in {Field}: {Message}", warning.Field, warning.Message);
}
validationResult.ThrowIfInvalid();
return deserializedData;
}
```
#### Component Building Pattern
For building from serialized components that implement `ICreatableComponent`:
```csharp
protected virtual GameObject BuildFromCreatableComponent<TComponent, TSerialized>(string id, JObject data)
where TComponent : Component
where TSerialized : ICreatableComponent<TComponent>, IValidatable
{
var serialized = DeserializeAndValidate<TSerialized>(data);
Logger.Information("Creating {ObjectType} {Id} using serialized component", typeof(TComponent).Name, id);
return serialized.Create(id).gameObject;
}
```
## Serialized Component Framework
### SerializedComponentBase<T>
Serialized components can inherit from `SerializedComponentBase<T>` for standardized validation functionality:
```csharp
public abstract class SerializedComponentBase<T> : ISerializedPatchableComponent<T>, IValidatable
where T : Component
{
private readonly Dictionary<string, Func<ValidationResult>> _validators = new Dictionary<string, Func<ValidationResult>>();
private bool _validationConfigured = false;
// Override to configure validation rules
protected virtual void ConfigureValidation() { }
// Abstract methods to be implemented by derived classes
public abstract T Create(string id);
public abstract void Write(T comp);
public abstract void Read(T comp);
// IValidatable implementation
public virtual void Validate() => ValidateWithDetails().ThrowIfInvalid();
public virtual ValidationResult ValidateWithDetails() { /* implementation */ }
}
```
### Property-Based Validation Rules
Use the `RuleFor` method to create validation rules for properties:
```csharp
protected ValidationBuilder<TValue> RuleFor<TValue>(Expression<Func<TValue>> propertyExpression)
{
// Creates a ValidationBuilder for the specified property
var propertyName = GetPropertyName(propertyExpression);
var builder = new ValidationBuilder<TValue>(propertyName);
// Store validator function for later execution
_validators[propertyName] = () => {
var propertyValue = GetPropertyValue<TValue>(propertyExpression);
var context = new ValidationContext { Owner = this };
return builder.Validate(propertyValue, context);
};
return builder;
}
```
### Example Implementation
```csharp
public class SerializedLoader : SerializedComponentBase<LoaderInstance>
{
public string Prefab { get; set; }
public int Capacity { get; set; }
public Vector3 Position { get; set; }
protected override void ConfigureValidation()
{
RuleFor(() => Prefab)
.Required()
.AsUri()
.AsVanillaPrefab(VanillaPrefabs.AvailableLoaderPrefabs);
RuleFor(() => Capacity)
.GreaterThan(0);
}
public override LoaderInstance Create(string id)
{
// Create and configure the component
var gameObject = new GameObject(id);
var loader = gameObject.AddComponent<LoaderInstance>();
// Apply configuration
loader.SetPrefab(Prefab);
loader.SetCapacity(Capacity);
gameObject.transform.position = Position;
return loader;
}
public override void Write(LoaderInstance comp)
{
Prefab = comp.GetPrefab();
Capacity = comp.GetCapacity();
Position = comp.transform.position;
}
public override void Read(LoaderInstance comp)
{
comp.SetPrefab(Prefab);
comp.SetCapacity(Capacity);
comp.transform.position = Position;
}
}
```
### Fluent Validation API
The framework provides a fluent API through extension methods on `ValidationBuilder<T>`:
```csharp
var builder = new ValidationBuilder<string>("PrefabField");
// Basic validation
builder.Required() // Value must not be null/empty
.AsUri(); // Must contain "://"
// URI scheme validation
builder.AsUriScheme() // Must be supported scheme
.AsVanillaPrefab(allowedPrefabs) // Specific to vanilla:// URIs
.AsPathUri() // Specific to path:// URIs
.AsSceneryUri() // Specific to scenery:// URIs
.AsEmptyUri() // Specific to empty:// URIs
.AsGameObjectUri(allowedPrefabs); // Multiple URI forms allowed
// Numeric validation
builder.GreaterThan(0) // Value > minimum
.GreaterThanOrEqual(0); // Value >= minimum
// Enum validation
builder.AsValidEnum<MyEnum>(); // Must be defined enum value
// Custom validation
builder.Custom((value, context) => { // Custom validation logic
var result = new ValidationResult { IsValid = true };
if (/* custom condition */) {
result.IsValid = false;
result.Errors.Add(new ValidationError {
Field = context.FieldName,
Message = "Custom validation failed",
Code = "CUSTOM_ERROR",
Value = value
});
}
return result;
});
```
## Complete Builder Implementation Example
### Creating a New Builder
Here's how to implement a complete builder following the standardized patterns:
```csharp
public class MyCustomBuilder : SplineyBuilderBase, IObjectFactory
{
public string Name => "My Custom Component";
public bool Enabled => true;
public Type ObjectType => typeof(MyCustomComponent);
protected override GameObject BuildSplineyInternal(string id, Transform parentTransform, JObject data)
{
// Use the standardized pattern for building from serialized components
return BuildFromCreatableComponent<MyCustomComponent, SerializedMyCustomComponent>(id, data);
}
public IEditableObject CreateObject(PatchEditor editor, string id)
{
// Create a default instance for the editor
return new SerializedMyCustomComponent
{
Prefab = "vanilla://default_prefab",
Scale = 1.0f
}.Create(id);
}
}
```
### Corresponding Serialized Component
```csharp
public class SerializedMyCustomComponent : SerializedComponentBase<MyCustomComponent>
{
public string Prefab { get; set; }
public float Scale { get; set; } = 1.0f;
public bool IsActive { get; set; } = true;
protected override void ConfigureValidation()
{
RuleFor(() => Prefab)
.Required()
.AsUri()
.AsVanillaPrefab(VanillaPrefabs.AvailableComponentPrefabs);
RuleFor(() => Scale)
.GreaterThan(0.1f);
}
public override MyCustomComponent Create(string id)
{
var gameObject = CreateGameObject(id);
var component = GetOrAddComponent<MyCustomComponent>(gameObject);
ConfigureWithActivation(gameObject, () => {
component.SetPrefab(Prefab);
component.SetScale(Scale);
component.SetActive(IsActive);
});
return component;
}
public override void Write(MyCustomComponent comp)
{
Prefab = comp.GetPrefab();
Scale = comp.GetScale();
IsActive = comp.IsActive();
}
public override void Read(MyCustomComponent comp)
{
comp.SetPrefab(Prefab);
comp.SetScale(Scale);
comp.SetActive(IsActive);
}
private GameObject CreateGameObject(string id)
{
var gameObject = new GameObject(id);
return gameObject;
}
private TComponent GetOrAddComponent<TComponent>(GameObject gameObject) where TComponent : Component
{
return gameObject.GetComponent<TComponent>() ?? gameObject.AddComponent<TComponent>();
}
private void ConfigureWithActivation(GameObject gameObject, System.Action configureAction)
{
var wasActive = gameObject.activeSelf;
gameObject.SetActive(false);
try
{
configureAction();
}
finally
{
gameObject.SetActive(wasActive);
}
}
}
```
## Migration Guide
### Updating Existing Builders
1. **Inherit from SplineyBuilderBase**: Replace custom base classes with `SplineyBuilderBase`
2. **Use BuildFromCreatableComponent**: Replace manual deserialization with the standardized pattern
3. **Implement IObjectFactory**: Add `CreateObject` method for editor integration
4. **Remove custom logging**: Use the inherited `Logger` instance
**Before:**
```csharp
public class OldBuilder : ISplineyBuilder
{
public GameObject BuildSpliney(string id, Transform parent, JObject data)
{
try
{
var serialized = data.ToObject<SerializedComponent>();
serialized.Validate(); // Simple validation
return serialized.Create(id).gameObject;
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
throw;
}
}
}
```
**After:**
```csharp
public class NewBuilder : SplineyBuilderBase, IObjectFactory
{
public string Name => "My Component";
public bool Enabled => true;
public Type ObjectType => typeof(MyComponent);
protected override GameObject BuildSplineyInternal(string id, Transform parentTransform, JObject data)
{
return BuildFromCreatableComponent<MyComponent, SerializedComponent>(id, data);
}
public IEditableObject CreateObject(PatchEditor editor, string id) =>
new SerializedComponent().Create(id);
}
```
### Updating Serialized Components
1. **Inherit from SerializedComponentBase<T>**: Replace custom validation with the standardized framework
2. **Override ConfigureValidation**: Use `RuleFor` to set up validation rules
3. **Use ValidationBuilder**: Replace manual validation with fluent API
**Before:**
```csharp
public class OldSerializedComponent : IValidatable
{
public string Prefab { get; set; }
public void Validate()
{
if (string.IsNullOrEmpty(Prefab))
throw new ValidationException("Prefab is required");
}
public ValidationResult ValidateWithDetails()
{
// Manual validation result creation
}
}
```
**After:**
```csharp
public class NewSerializedComponent : SerializedComponentBase<MyComponent>
{
public string Prefab { get; set; }
protected override void ConfigureValidation()
{
RuleFor(() => Prefab)
.Required()
.AsUri()
.AsVanillaPrefab(allowedPrefabs);
}
// Implement Create, Write, Read methods
}
```
## Builder Helper Methods
The `SplineyBuilderBase` class provides additional helper methods for common builder tasks:
### Finding Existing Components
```csharp
// Find existing components by ID using caches
protected virtual TComponent FindExistingComponent<TComponent>(string id) where TComponent : Component
{
// Uses type-specific caches for performance
if (typeof(TComponent) == typeof(PaxStationAgent))
{
StationAgentCache.Instance.TryGetValue(id, out var stationAgent);
return stationAgent as TComponent;
}
// Fallback to GameObject.FindObjectsOfType
return GameObject.FindObjectsOfType<TComponent>(true)
.FirstOrDefault(c => GetComponentId(c) == id);
}
```
### Component ID Resolution
```csharp
// Gets component ID using common patterns
protected virtual string GetComponentId(Component component)
{
// Try common identifier patterns
var identifiableProperty = component.GetType().GetProperty("identifier");
if (identifiableProperty != null)
return identifiableProperty.GetValue(component)?.ToString();
var idProperty = component.GetType().GetProperty("Id");
if (idProperty != null)
return idProperty.GetValue(component)?.ToString();
return component.name;
}
```
### Safe Component Configuration
```csharp
// Safely configure GameObject by disabling during configuration
protected virtual void ConfigureWithActivation(GameObject gameObject, System.Action configureAction)
{
var wasActive = gameObject.activeSelf;
gameObject.SetActive(false);
try
{
configureAction();
}
finally
{
gameObject.SetActive(wasActive);
}
}
```
### Validation Patterns
#### Field-Based Validation
```csharp
// Validate a URI field
var uriBuilder = new ValidationBuilder<string>("PrefabUri");
uriBuilder.Required()
.AsUri()
.AsVanillaPrefab(VanillaPrefabs.AvailableLoaderPrefabs);
var uriResult = uriBuilder.Validate("vanilla://locomotive_steam_small");
if (!uriResult.IsValid)
{
// Handle validation errors
foreach (var error in uriResult.Errors)
{
Logger.Error("Validation error in {Field}: {Message}", error.Field, error.Message);
}
}
// Validate numeric values
var numberBuilder = new ValidationBuilder<int>("Subdivisions");
numberBuilder.GreaterThan(2);
var numberResult = numberBuilder.Validate(subdivisions);
```
#### Creating Validation Rules
```csharp
// Create a custom validation rule
public class PositiveNumberRule : ValidationRule<int>
{
public override ValidationResult Validate(int value, ValidationContext context)
{
var result = new ValidationResult { IsValid = true };
if (value <= 0)
{
result.IsValid = false;
result.Errors.Add(new ValidationError
{
Field = context.FieldName,
Message = $"Value must be positive, got {value}",
Code = "MUST_BE_POSITIVE",
Value = value
});
}
return result;
}
}
// Use the custom rule
var builder = new ValidationBuilder<int>("MyNumber");
builder.AddRule(new PositiveNumberRule());
```
#### Working with ValidationContext
```csharp
var context = new ValidationContext { FieldName = "PrefabField" };
var rule = new RequiredRule<string>();
var result = rule.Validate(value, context);
// The context provides field information for error messages
```
## URI Validation Architecture
### Two Types of URI Rules
The validation framework supports two distinct approaches to URI validation:
#### Restrictive Rules (Single Scheme)
These rules only accept their specific URI scheme and reject all others:
- **VanillaPrefabRule**: Only accepts `vanilla://` URIs
- **PathUriRule**: Only accepts `path://` URIs
- **SceneryUriRule**: Only accepts `scenery://` URIs
- **EmptyUriRule**: Only accepts `empty://` URIs
```csharp
// This will ONLY accept vanilla:// URIs
var vanillaBuilder = new ValidationBuilder<string>("VanillaPrefab");
vanillaBuilder.AsVanillaPrefab(allowedPrefabs);
// VALID: "vanilla://locomotive_steam_small"
// INVALID: "path://scene/SomeObject"
```
#### Permissive Rules (Multiple Schemes)
These rules accept multiple URI schemes and validate each according to its rules:
- **GameObjectUriRule**: Accepts path://, scenery://, vanilla://, empty:// schemes
```csharp
// This will accept multiple URI forms
var gameObjectBuilder = new ValidationBuilder<string>("GameObjectUri");
gameObjectBuilder.AsGameObjectUri(allowedVanillaPrefabs);
// VALID: "vanilla://locomotive_steam_small"
// VALID: "path://scene/SomeObject"
// VALID: "scenery://tree_oak"
// VALID: "empty://"
```
### URI Parsing Details
#### Vanilla Prefab Extraction
The `VanillaPrefabRule` extracts prefab names from URIs with paths:
```csharp
// Input: "vanilla://Locomotive/part"
// Extracted prefab: "Locomotive"
// Validation: Check if "Locomotive" is in allowed prefabs list
```
#### Path URI Format
Path URIs must follow the format `path://scene/GameObject1/GameObject2/...`:
```csharp
// VALID: "path://scene/SomeGameObject"
// VALID: "path://scene/Parent/Child"
// INVALID: "path://notscene/SomeObject"
```
#### Scenery URI Format
Scenery URIs must be simple identifiers without paths:
```csharp
// VALID: "scenery://tree_oak"
// INVALID: "scenery://category/tree_oak" // Contains path separator
```
### Case Sensitivity
URI scheme validation is case-insensitive:
```csharp
// All of these are equivalent:
// "PATH://scene/Object"
// "path://scene/Object"
// "Path://scene/Object"
```
## Common Error Codes
The validation framework uses standardized error codes for consistent error handling:
### Core Validation Errors
- `REQUIRED`: Value is required but null/empty
- `REQUIRED_NOT_WHITESPACE`: Value cannot be whitespace-only
- `INVALID_VALUE`: Value not in allowed whitelist
- `MIN_VALUE_VIOLATION`: Value below minimum threshold
- `INVALID_ENUM_VALUE`: Enum value not defined
### URI Validation Errors
- `INVALID_URI_FORMAT`: URI missing "://" separator
- `INVALID_URI_SCHEME`: Unsupported URI scheme
- `NON_VANILLA_URI_NOT_ALLOWED`: Non-vanilla URI in vanilla-only context
- `NON_PATH_URI_NOT_ALLOWED`: Non-path URI in path-only context
- `NON_SCENERY_URI_NOT_ALLOWED`: Non-scenery URI in scenery-only context
- `NON_EMPTY_URI_NOT_ALLOWED`: Non-empty URI in empty-only context
- `INVALID_VANILLA_PREFAB`: Vanilla prefab not in allowed list
- `INVALID_PATH_URI_FORMAT`: Path URI format incorrect
- `MISSING_PATH_COMPONENTS`: Path URI missing GameObject path
- `MISSING_SCENERY_IDENTIFIER`: Scenery URI missing identifier
- `SCENERY_IDENTIFIER_CONTAINS_PATH`: Scenery identifier contains path separators
- `VALUE_MUST_BE_EMPTY`: Value must be empty or null
### Cache Validation Errors
- `CACHE_KEY_NULL_OR_EMPTY`: Cache key cannot be null or empty
- `CACHE_NOT_FOUND`: Cache key not found
- `CACHE_ACCESS_ERROR`: Error accessing cache
- `CACHE_OBJECT_NULL`: Cached object is null
- `INVALID_CACHE_OBJECT_TYPE`: Cached object has wrong type
## Benefits
1. **Field-Based Context**: Validation tied to specific fields provides clear error context
2. **Comprehensive Error Reporting**: Detailed error messages with codes, fields, and values
3. **Flexible Architecture**: Support for both restrictive and permissive validation patterns
4. **URI Scheme Awareness**: Intelligent handling of different URI schemes and formats
5. **Exception Safety**: Proper null handling and exception management
6. **Extensibility**: Easy to add new validation rules through inheritance
7. **Performance**: Efficient validation with early returns and minimal overhead
8. **Testability**: Comprehensive test coverage ensures reliability
## Migration Notes
When updating validation code:
1. **ValidationBuilder Constructor**: Always provide a field name
2. **Manual ValidationResult Creation**: No static `Valid`/`Invalid` properties
3. **URI Rule Selection**: Choose restrictive vs permissive rules based on requirements
4. **Null Handling**: Validation rules now properly handle null values
5. **Error Codes**: Use standardized error codes for consistent error handling
## Best Practices
1. **Use Descriptive Field Names**: `"PrefabUri"` instead of `"field1"`
2. **Chain Validation Rules**: Use fluent API for multiple validation rules
3. **Handle ValidationResult**: Always check `IsValid` before proceeding
4. **Log Validation Errors**: Use structured logging with error context
5. **Choose Appropriate URI Rules**: Restrictive for specific schemes, permissive for flexibility
6. **Test Validation Logic**: Write tests for both valid and invalid cases

View File

@@ -0,0 +1,18 @@
{
"manifestVersion": 5,
"id": "C_L_B.ASSETS01",
"name": "C_L_B's ASSETS01",
"version": "3.1.1",
"requires": [
{
"id": "railloader",
"notBefore": "1.9.0"
},
{
"id": "Zamu.StrangeCustoms",
"notBefore": "1.9.0"
}
],
"assemblies": [ "ModularScenery" ]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1 @@
{"identifier":"CLB_ASSETS_Buildings","name":"CLB_ASSETS_Buildings","shared":false,"assets":{"CLB_GrainElevator01_black":{"name":"CLB_GrainElevator01_black","type":"prefab","filename":"CLB_GrainElevator01_black.prefab"},"CLB_GrainElevator01":{"name":"CLB_GrainElevator01","type":"prefab","filename":"CLB_GrainElevator01.prefab"},"CLB_Factory03_Wall80":{"name":"CLB_Factory03_Wall80","type":"prefab","filename":"CLB_Factory03_Wall80.prefab"},"CLB_Factory03_Wall40":{"name":"CLB_Factory03_Wall40","type":"prefab","filename":"CLB_Factory03_Wall40.prefab"},"CLB_Factory03_Sidewall7":{"name":"CLB_Factory03_Sidewall7","type":"prefab","filename":"CLB_Factory03_Sidewall7.prefab"},"CLB_Factory03_Sidewall6":{"name":"CLB_Factory03_Sidewall6","type":"prefab","filename":"CLB_Factory03_Sidewall6.prefab"},"CLB_Factory03_Sidewall5":{"name":"CLB_Factory03_Sidewall5","type":"prefab","filename":"CLB_Factory03_Sidewall5.prefab"},"CLB_Factory03_Sidewall4W":{"name":"CLB_Factory03_Sidewall4W","type":"prefab","filename":"CLB_Factory03_Sidewall4W.prefab"},"CLB_Factory03_Sidewall4":{"name":"CLB_Factory03_Sidewall4","type":"prefab","filename":"CLB_Factory03_Sidewall4.prefab"},"CLB_Factory03_Sidewall3W":{"name":"CLB_Factory03_Sidewall3W","type":"prefab","filename":"CLB_Factory03_Sidewall3W.prefab"},"CLB_Factory03_Sidewall3":{"name":"CLB_Factory03_Sidewall3","type":"prefab","filename":"CLB_Factory03_Sidewall3.prefab"},"CLB_Factory03_Sidewall2W":{"name":"CLB_Factory03_Sidewall2W","type":"prefab","filename":"CLB_Factory03_Sidewall2W.prefab"},"CLB_Factory03_Sidewall2":{"name":"CLB_Factory03_Sidewall2","type":"prefab","filename":"CLB_Factory03_Sidewall2.prefab"},"CLB_Factory03_Sidewall1":{"name":"CLB_Factory03_Sidewall1","type":"prefab","filename":"CLB_Factory03_Sidewall1.prefab"},"CLB_Factory03_Sidewall0":{"name":"CLB_Factory03_Sidewall0","type":"prefab","filename":"CLB_Factory03_Sidewall0.prefab"},"CLB_Factory03_Frame":{"name":"CLB_Factory03_Frame","type":"prefab","filename":"CLB_Factory03_Frame.prefab"},"CLB_Factory02":{"name":"CLB_Factory02","type":"prefab","filename":"CLB_Factory02.prefab"},"CLB_Factory01":{"name":"CLB_Factory01","type":"prefab","filename":"CLB_Factory01.prefab"},"CLB_Shed02":{"name":"CLB_Shed02","type":"prefab","filename":"CLB_Shed02.prefab"},"CLB_Shed01":{"name":"CLB_Shed01","type":"prefab","filename":"CLB_Shed01.prefab"},"CLB_Shop01_EndA_Closed":{"name":"CLB_Shop01_EndA_Closed","type":"prefab","filename":"CLB_Shop01_EndA_Closed.prefab"},"CLB_Shop01_EndA_Door":{"name":"CLB_Shop01_EndA_Door","type":"prefab","filename":"CLB_Shop01_EndA_Door.prefab"},"CLB_Shop01_EndA_Gates":{"name":"CLB_Shop01_EndA_Gates","type":"prefab","filename":"CLB_Shop01_EndA_Gates.prefab"},"CLB_Shop01_EndA_Gates_Door":{"name":"CLB_Shop01_EndA_Gates_Door","type":"prefab","filename":"CLB_Shop01_EndA_Gates_Door.prefab"},"CLB_Shop01_EndB_Closed":{"name":"CLB_Shop01_EndB_Closed","type":"prefab","filename":"CLB_Shop01_EndB_Closed.prefab"},"CLB_Shop01_EndB_Door":{"name":"CLB_Shop01_EndB_Door","type":"prefab","filename":"CLB_Shop01_EndB_Door.prefab"},"CLB_Shop01_EndB_Gates":{"name":"CLB_Shop01_EndB_Gates","type":"prefab","filename":"CLB_Shop01_EndB_Gates.prefab"},"CLB_Shop01_EndB_Gates_Door":{"name":"CLB_Shop01_EndB_Gates_Door","type":"prefab","filename":"CLB_Shop01_EndB_Gates_Door.prefab"},"CLB_Shop01_Middle":{"name":"CLB_Shop01_Middle","type":"prefab","filename":"CLB_Shop01_Middle.prefab"},"CLB_Shop01_Middle_Gate":{"name":"CLB_Shop01_Middle_Gate","type":"prefab","filename":"CLB_Shop01_Middle_Gate.prefab"},"CLB_Shop01_Crane_Bridge":{"name":"CLB_Shop01_Crane_Bridge","type":"prefab","filename":"CLB_Shop01_Crane_Bridge.prefab"},"CLB_Shop01_Crane_Trolly":{"name":"CLB_Shop01_Crane_Trolly","type":"prefab","filename":"CLB_Shop01_Crane_Trolly.prefab"},"CLB_Shop01_PreAssembled01":{"name":"CLB_Shop01_PreAssembled01","type":"prefab","filename":"CLB_Shop01_PreAssembled01.prefab"},"CLB_Shop02":{"name":"CLB_Shop02","type":"prefab","filename":"CLB_Shop02.prefab"},"CLB_Shop01_GateA":{"name":"CLB_Shop01_GateA","type":"prefab","filename":"CLB_Shop01_GateA.prefab"},"MaterialBackpack":{"name":"MaterialBackpack","type":"prefab","filename":"MaterialBackpack.prefab"},"CLB_Shop02_Gate":{"name":"CLB_Shop02_Gate","type":"prefab","filename":"CLB_Shop02_Gate.prefab"}}}

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1 @@
{"identifier":"CLB_ASSETS_Text","name":"CLB_ASSETS_Text","shared":false,"assets":{"CLB_Text_MidsBakCo":{"name":"CLB_Text_MidsBakCo","type":"prefab","filename":"CLB_Text_MidsBakCo.prefab"},"CLB_Text_MurTex":{"name":"CLB_Text_MurTex","type":"prefab","filename":"CLB_Text_MurTex.prefab"},"CLB_Text_TucRivFurCo":{"name":"CLB_Text_TucRivFurCo","type":"prefab","filename":"CLB_Text_TucRivFurCo.prefab"},"CLB_Text_RagCabCo":{"name":"CLB_Text_RagCabCo","type":"prefab","filename":"CLB_Text_RagCabCo.prefab"},"CLB_Text_MillElec":{"name":"CLB_Text_MillElec","type":"prefab","filename":"CLB_Text_MillElec.prefab"},"CLB_Text_SmoMounSup":{"name":"CLB_Text_SmoMounSup","type":"prefab","filename":"CLB_Text_SmoMounSup.prefab"},"CLB_Text_SoutChem":{"name":"CLB_Text_SoutChem","type":"prefab","filename":"CLB_Text_SoutChem.prefab"},"CLB_Text_BrySteElec":{"name":"CLB_Text_BrySteElec","type":"prefab","filename":"CLB_Text_BrySteElec.prefab"},"CLB_Text_AppTex":{"name":"CLB_Text_AppTex","type":"prefab","filename":"CLB_Text_AppTex.prefab"},"CLB_Text_Whittier":{"name":"CLB_Text_Whittier","type":"prefab","filename":"CLB_Text_Whittier.prefab"},"CLB_Text_Whittier&WP":{"name":"CLB_Text_Whittier&WP","type":"prefab","filename":"CLB_Text_Whittier&WP.prefab"},"CLB_Text_WP&Yukon":{"name":"CLB_Text_WP&Yukon","type":"prefab","filename":"CLB_Text_WP&Yukon.prefab"},"CLB_Text_WPRepairShops":{"name":"CLB_Text_WPRepairShops","type":"prefab","filename":"CLB_Text_WPRepairShops.prefab"},"CLB_Text_SteamShop":{"name":"CLB_Text_SteamShop","type":"prefab","filename":"CLB_Text_SteamShop.prefab"},"MaterialBackpack":{"name":"MaterialBackpack","type":"prefab","filename":"MaterialBackpack.prefab"}}}

View File

@@ -0,0 +1,326 @@
{
"objects": [
{
"identifier": "CLB_Text_AppTex",
"metadata": {
"name": "CLB_Text_AppTex",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_AppTex",
"components": []
}
},
{
"identifier": "CLB_Text_BrySteElec",
"metadata": {
"name": "CLB_Text_BrySteElec",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_BrySteElec",
"components": []
}
},
{
"identifier": "CLB_Text_MillElec",
"metadata": {
"name": "CLB_Text_MillElec",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_MillElec",
"components": []
}
},
{
"identifier": "CLB_Text_SoutChem",
"metadata": {
"name": "CLB_Text_SoutChem",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_SoutChem",
"components": []
}
},
{
"identifier": "CLB_Text_SmoMounSup",
"metadata": {
"name": "CLB_Text_SmoMounSup",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_SmoMounSup",
"components": []
}
},
{
"identifier": "CLB_Text_MidsBakCo",
"metadata": {
"name": "CLB_Text_MidsBakCo",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_MidsBakCo",
"components": []
}
},
{
"identifier": "CLB_Text_RagCabCo",
"metadata": {
"name": "CLB_Text_RagCabCo",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_RagCabCo",
"components": []
}
},
{
"identifier": "CLB_Text_TucRivFurCo",
"metadata": {
"name": "CLB_Text_TucRivFurCo",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_TucRivFurCo",
"components": []
}
},
{
"identifier": "CLB_Text_MurTex",
"metadata": {
"name": "CLB_Text_MurTex",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_MurTex",
"components": []
}
},
{
"identifier": "CLB_Text_Whittier",
"metadata": {
"name": "CLB_Text_Whittier",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_Whittier",
"components": []
}
},
{
"identifier": "CLB_Text_Whittier&WP",
"metadata": {
"name": "CLB_Text_Whittier&WP",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_Whittier&WP",
"components": []
}
},
{
"identifier": "CLB_Text_WP&Yukon",
"metadata": {
"name": "CLB_Text_WP&Yukon",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_WP&Yukon",
"components": []
}
},
{
"identifier": "CLB_Text_WPRepairShops",
"metadata": {
"name": "CLB_Text_WPRepairShops",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_WPRepairShops",
"components": []
}
},
{
"identifier": "CLB_Text_SteamShop",
"metadata": {
"name": "CLB_Text_SteamShop",
"description": "A new item",
"tags": [
"text"
],
"credits": "Model & Texture: C_L_B",
"clb-materials": {
"Main": [
"Black",
"White",
"Red"
]
}
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Text_SteamShop",
"components": []
}
}
]
}

Binary file not shown.

View File

@@ -0,0 +1 @@
{"identifier":"CLB_ASSETS_colliery","name":"CLB_ASSETS_colliery","shared":false,"assets":{"CLB_colliery_WashingTank01":{"name":"CLB_colliery_WashingTank01","type":"prefab","filename":"CLB_colliery_WashingTank01.prefab"},"CLB_colliery_Silo01":{"name":"CLB_colliery_Silo01","type":"prefab","filename":"CLB_colliery_Silo01.prefab"},"CLB_colliery_FanHouse01":{"name":"CLB_colliery_FanHouse01","type":"prefab","filename":"CLB_colliery_FanHouse01.prefab"},"CLB_colliery_BoilerHouse01":{"name":"CLB_colliery_BoilerHouse01","type":"prefab","filename":"CLB_colliery_BoilerHouse01.prefab"},"CLB_colliery_ConveyorPillar12A":{"name":"CLB_colliery_ConveyorPillar12A","type":"prefab","filename":"CLB_colliery_ConveyorPillar12A.prefab"},"CLB_colliery_ConveyorPillar8S":{"name":"CLB_colliery_ConveyorPillar8S","type":"prefab","filename":"CLB_colliery_ConveyorPillar8S.prefab"},"CLB_colliery_ConveyorPillar5.4S":{"name":"CLB_colliery_ConveyorPillar5.4S","type":"prefab","filename":"CLB_colliery_ConveyorPillar5.4S.prefab"},"CLB_colliery_ConveyorPillar5.4A":{"name":"CLB_colliery_ConveyorPillar5.4A","type":"prefab","filename":"CLB_colliery_ConveyorPillar5.4A.prefab"},"CLB_colliery_ConveyorPillar4.3S":{"name":"CLB_colliery_ConveyorPillar4.3S","type":"prefab","filename":"CLB_colliery_ConveyorPillar4.3S.prefab"},"CLB_colliery_Conveyor_Short":{"name":"CLB_colliery_Conveyor_Short","type":"prefab","filename":"CLB_colliery_Conveyor_Short.prefab"},"CLB_colliery_Conveyor_Ramp":{"name":"CLB_colliery_Conveyor_Ramp","type":"prefab","filename":"CLB_colliery_Conveyor_Ramp.prefab"},"CLB_colliery_Conveyor_Long":{"name":"CLB_colliery_Conveyor_Long","type":"prefab","filename":"CLB_colliery_Conveyor_Long.prefab"},"CLB_colliery_WashingPlant01":{"name":"CLB_colliery_WashingPlant01","type":"prefab","filename":"CLB_colliery_WashingPlant01.prefab"},"CLB_colliery_Headframe01":{"name":"CLB_colliery_Headframe01","type":"prefab","filename":"CLB_colliery_Headframe01.prefab"},"CLB_colliery_ConveyorTower01":{"name":"CLB_colliery_ConveyorTower01","type":"prefab","filename":"CLB_colliery_ConveyorTower01.prefab"},"CLB_colliery_Baths01":{"name":"CLB_colliery_Baths01","type":"prefab","filename":"CLB_colliery_Baths01.prefab"}}}

View File

@@ -0,0 +1,264 @@
{
"objects": [
{
"identifier": "CLB_colliery_Baths01",
"metadata": {
"name": "CLB_colliery_Baths01",
"description": "A new item",
"tags": [
"industry",
"brick"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_Baths01",
"components": []
}
},
{
"identifier": "CLB_colliery_ConveyorTower01",
"metadata": {
"name": "CLB_colliery_ConveyorTower01",
"description": "A new item",
"tags": [
"industry"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_ConveyorTower01",
"components": []
}
},
{
"identifier": "CLB_colliery_Headframe01",
"metadata": {
"name": "CLB_colliery_Headframe01",
"description": "A new item",
"tags": [
"industry",
"brick"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_Headframe01",
"components": []
}
},
{
"identifier": "CLB_colliery_WashingPlant01",
"metadata": {
"name": "CLB_colliery_WashingPlant01",
"description": "A new item",
"tags": [
"industry",
"brick"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_WashingPlant01",
"components": []
}
},
{
"identifier": "CLB_colliery_Conveyor_Long",
"metadata": {
"name": "CLB_colliery_Conveyor_Long",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_Conveyor_Long",
"components": []
}
},
{
"identifier": "CLB_colliery_Conveyor_Ramp",
"metadata": {
"name": "CLB_colliery_Conveyor_Ramp",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_Conveyor_Ramp",
"components": []
}
},
{
"identifier": "CLB_colliery_Conveyor_Short",
"metadata": {
"name": "CLB_colliery_Conveyor_Short",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_Conveyor_Short",
"components": []
}
},
{
"identifier": "CLB_colliery_ConveyorPillar4.3S",
"metadata": {
"name": "CLB_colliery_ConveyorPillar4.3S",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_ConveyorPillar4.3S",
"components": []
}
},
{
"identifier": "CLB_colliery_ConveyorPillar5.4A",
"metadata": {
"name": "CLB_colliery_ConveyorPillar5.4A",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_ConveyorPillar5.4A",
"components": []
}
},
{
"identifier": "CLB_colliery_ConveyorPillar5.4S",
"metadata": {
"name": "CLB_colliery_ConveyorPillar5.4S",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_ConveyorPillar5.4S",
"components": []
}
},
{
"identifier": "CLB_colliery_ConveyorPillar8S",
"metadata": {
"name": "CLB_colliery_ConveyorPillar8S",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_ConveyorPillar8S",
"components": []
}
},
{
"identifier": "CLB_colliery_ConveyorPillar12A",
"metadata": {
"name": "CLB_colliery_ConveyorPillar12A",
"description": "A new item",
"tags": [
"structure"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_ConveyorPillar12A",
"components": []
}
},
{
"identifier": "CLB_colliery_BoilerHouse01",
"metadata": {
"name": "CLB_colliery_BoilerHouse01",
"description": "A new item",
"tags": [
"industry",
"brick"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_BoilerHouse01",
"components": []
}
},
{
"identifier": "CLB_colliery_FanHouse01",
"metadata": {
"name": "CLB_colliery_FanHouse01",
"description": "A new item",
"tags": [
"industry"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_FanHouse01",
"components": []
}
},
{
"identifier": "CLB_colliery_Silo01",
"metadata": {
"name": "CLB_colliery_Silo01",
"description": "A new item",
"tags": [
"industry"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_Silo01",
"components": []
}
},
{
"identifier": "CLB_colliery_WashingTank01",
"metadata": {
"name": "CLB_colliery_WashingTank01",
"description": "A new item",
"tags": [
"industry"
],
"credits": "Model & Texture: CommonSpence"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_colliery_WashingTank01",
"components": []
}
}
]
}

Binary file not shown.

View File

@@ -0,0 +1 @@
{"identifier":"CLB_ASSETS_deko","name":"CLB_ASSETS_deko","shared":false,"assets":{"CLB_HydraulicPress01":{"name":"CLB_HydraulicPress01","type":"prefab","filename":"CLB_HydraulicPress01.prefab"},"CLB_Welder01":{"name":"CLB_Welder01","type":"prefab","filename":"CLB_Welder01.prefab"},"CLB_Lathe01":{"name":"CLB_Lathe01","type":"prefab","filename":"CLB_Lathe01.prefab"},"CLB_DrillPress01":{"name":"CLB_DrillPress01","type":"prefab","filename":"CLB_DrillPress01.prefab"}}}

View File

@@ -0,0 +1,72 @@
{
"objects": [
{
"identifier": "CLB_HydraulicPress01",
"metadata": {
"name": "CLB_HydraulicPress01",
"description": "A new item",
"tags": [
"shop",
"object"
],
"credits": "Model & Texture: Scarecrow_original"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_HydraulicPress01",
"components": []
}
},
{
"identifier": "CLB_Welder01",
"metadata": {
"name": "CLB_Welder01",
"description": "A new item",
"tags": [
"shop",
"object"
],
"credits": "Model & Texture: Yevhen Avramenko"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Welder01",
"components": []
}
},
{
"identifier": "CLB_Lathe01",
"metadata": {
"name": "CLB_Lathe01",
"description": "A new item",
"tags": [
"shop",
"object"
],
"credits": "Model & Texture: ridhobahri"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_Lathe01",
"components": []
}
},
{
"identifier": "CLB_DrillPress01",
"metadata": {
"name": "CLB_DrillPress01",
"description": "A new item",
"tags": [
"shop",
"object"
],
"credits": "Model & Texture: xplanepilot"
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "CLB_DrillPress01",
"components": []
}
}
]
}

View File

@@ -0,0 +1,15 @@
{
"manifestVersion": 5,
"id": "Embedded.PiggyBackBase",
"name": "Embeddeds Piggyback trailers and LoadID",
"version": "1.5",
"requires": [
"Zamu.StrangeCustoms"
],
"mixintos": {
"game-graph": [
"file(PBLoadID.json)"
],
"container:fm-flatcar01": ["file(PiggyBack1.json)", "file(PiggyBack2.json)", "file(PiggyBack3.json)"]
}
}

View File

@@ -0,0 +1,13 @@
{
"loads": {
"PiggyBack-Trailers": {
"description": "PiggyBack-Trailers",
"units": "Pounds",
"density": 62.4,
"unitWeightInPounds": 30.0,
"importable": true,
"payPerQuantity": 0.00495,
"costPerUnit": 0.0
}
}
}

View File

@@ -0,0 +1,105 @@
{
"objects": [
{
"$find": [
{
"path": "identifier",
"value": "fm-flatcar01"
}
],
"$clone": true,
"identifier": "PRR-PiggyBack1",
"metadata": {
"name": "PRR 1954 Piggyback Trailer",
"description": "1954 Piggyback Trailer from the PRR"
},
"definition": {
"carType": "PBF",
"basePrice": 1150,
"weightEmpty": 58000,
"loadSlots": [
{
"$find": [
{
"path": "loadUnits",
"value": "Pounds"
}
],
"maximumCapacity": 100000.0,
"loadUnits": "Pounds",
"requiredLoadIdentifier": ""
}
],
"components": [
{
"$find": [
{
"path": "kind",
"value": "LoadModel",
"comp": "equals"
}
],
"models": {
"$replace": [
{
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBPRR26PB"
},
{
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBPRRStands"
}
]
},
"instances": {
"$replace":
[
{
"position": [0.0,1,0.0],
"rotation": [0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
},
{
"position": [0.0,1,0.0],
"rotation": [0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
}
]
},
"name": "LoadModel 1",
"transform": {
"$replace":{
"position": [0.0,1.145,0.0],
"rotation": [0.0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
}
},
"parent": null,
"enabled": true
},
{
"$add": {
"kind": "DetailModel",
"model": {
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBPBSupports"
},
"offset": [0.0, 0.0, 0.0],
"count": 1,
"name": "Piggy Back Car Rails/poles",
"transform": {
"position": [0, 2.231352, 0.0],
"rotation": [0.0, 0.0, 0.0, 1.0],
"scale": [1.0, 1.0, 1.0]
},
"parent": null,
"enabled": true
}
}
]
}
}
]
}

View File

@@ -0,0 +1,105 @@
{
"objects": [
{
"$find": [
{
"path": "identifier",
"value": "fm-flatcar01"
}
],
"$clone": true,
"identifier": "SP-PiggyBack1",
"metadata": {
"name": "SP 1950s Piggyback Trailer",
"description": "1954 Piggyback Trailer from the Southern Pacific"
},
"definition": {
"carType": "PBF",
"basePrice": 1150,
"weightEmpty": 58000,
"loadSlots": [
{
"$find": [
{
"path": "loadUnits",
"value": "Pounds"
}
],
"maximumCapacity": 100000.0,
"loadUnits": "Pounds",
"requiredLoadIdentifier": ""
}
],
"components": [
{
"$find": [
{
"path": "kind",
"value": "LoadModel",
"comp": "equals"
}
],
"models": {
"$replace": [
{
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBSP22PB"
},
{
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBSPStands"
}
]
},
"instances": {
"$replace":
[
{
"position": [0.0,1.15,0.0],
"rotation": [0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
},
{
"position": [0.0,1.15,0.0],
"rotation": [0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
}
]
},
"name": "LoadModel 1",
"transform": {
"$replace":{
"position": [0.0,0,0.0],
"rotation": [0.0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
}
},
"parent": null,
"enabled": true
},
{
"$add": {
"kind": "DetailModel",
"model": {
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBPBSupports"
},
"offset": [0.0, 0.0, 0.0],
"count": 1,
"name": "Piggy Back Car Rails/poles",
"transform": {
"position": [0, 2.231352, 0.0],
"rotation": [0.0, 0.0, 0.0, 1.0],
"scale": [1.0, 1.0, 1.0]
},
"parent": null,
"enabled": true
}
}
]
}
}
]
}

View File

@@ -0,0 +1,105 @@
{
"objects": [
{
"$find": [
{
"path": "identifier",
"value": "fm-flatcar01"
}
],
"$clone": true,
"identifier": "SF-PiggyBack1",
"metadata": {
"name": "SF 1950s Piggyback Trailer",
"description": "1956 Piggyback Trailer from the Atchison Topeka & Santa Fe"
},
"definition": {
"carType": "PBF",
"basePrice": 1150,
"weightEmpty": 58000,
"loadSlots": [
{
"$find": [
{
"path": "loadUnits",
"value": "Pounds"
}
],
"maximumCapacity": 100000.0,
"loadUnits": "Pounds",
"requiredLoadIdentifier": ""
}
],
"components": [
{
"$find": [
{
"path": "kind",
"value": "LoadModel",
"comp": "equals"
}
],
"models": {
"$replace": [
{
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBATSF24PB"
},
{
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBATSFStands"
}
]
},
"instances": {
"$replace":
[
{
"position": [0.0,1.185,0.0],
"rotation": [-0.00654493831,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
},
{
"position": [0.0,1.17,0.0],
"rotation": [0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
}
]
},
"name": "LoadModel 1",
"transform": {
"$replace":{
"position": [0.0,0,0.0],
"rotation": [0.0,0.0,0.0,1],
"scale": [1.0,1.0,1.0]
}
},
"parent": null,
"enabled": true
},
{
"$add": {
"kind": "DetailModel",
"model": {
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
"assetIdentifier": "EMBPBSupports"
},
"offset": [0.0, 0.0, 0.0],
"count": 1,
"name": "Piggy Back Car Rails/poles",
"transform": {
"position": [0, 2.231352, 0.0],
"rotation": [0.0, 0.0, 0.0, 1.0],
"scale": [1.0, 1.0, 1.0]
},
"parent": null,
"enabled": true
}
}
]
}
}
]
}

Binary file not shown.

View File

@@ -0,0 +1 @@
{"identifier":"PiggyBackAssets","name":"PiggyBackAssets","shared":false,"assets":{"EMBPBSupports":{"name":"EMBPBSupports","type":"prefab","filename":"EMBPBSupports.prefab"},"EMBSPStands":{"name":"EMBSPStands","type":"prefab","filename":"EMBSPStands.prefab"},"EMBPRRStands":{"name":"EMBPRRStands","type":"prefab","filename":"EMBPRRStands.prefab"},"EMBATSFStands":{"name":"EMBATSFStands","type":"prefab","filename":"EMBATSFStands.prefab"},"EMBSP22PB":{"name":"EMBSP22PB","type":"prefab","filename":"EMBSP22PB.prefab"},"EMBPRR26PB":{"name":"EMBPRR26PB","type":"prefab","filename":"EMBPRR26PB.prefab"},"EMB10MPlatform":{"name":"EMB10MPlatform","type":"prefab","filename":"EMB10MPlatform.prefab"},"EMBEndPlatform":{"name":"EMBEndPlatform","type":"prefab","filename":"EMBEndPlatform.prefab"},"EMBMidPlatform":{"name":"EMBMidPlatform","type":"prefab","filename":"EMBMidPlatform.prefab"},"EMBPBRamp3":{"name":"EMBPBRamp3","type":"prefab","filename":"EMBPBRamp3.prefab"},"EMBPBRamp2":{"name":"EMBPBRamp2","type":"prefab","filename":"EMBPBRamp2.prefab"},"EMBPBRamp1":{"name":"EMBPBRamp1","type":"prefab","filename":"EMBPBRamp1.prefab"},"EMBATSF24PB":{"name":"EMBATSF24PB","type":"prefab","filename":"EMBATSF24PB.prefab"}}}

View File

@@ -0,0 +1,186 @@
{
"objects": [
{
"identifier": "EMBPBSupports",
"metadata": {
"name": "EMBPBSupports",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBPBSupports",
"components": []
}
},
{
"identifier": "EMBSPStands",
"metadata": {
"name": "EMBSPStands",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBSPStands",
"components": []
}
},
{
"identifier": "EMBATSFStands",
"metadata": {
"name": "EMBATSFStands",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBATSFStands",
"components": []
}
},
{
"identifier": "EMBPRRStands",
"metadata": {
"name": "EMBPRRStands",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBPRRStands",
"components": []
}
},
{
"identifier": "EMBSP22PB",
"metadata": {
"name": "EMBSP22PB",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBSP22PB",
"components": []
}
},
{
"identifier": "EMBPRR26PB",
"metadata": {
"name": "EMBPRR26PB",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBPRR26PB",
"components": []
}
},
{
"identifier": "EMBATSF24PB",
"metadata": {
"name": "EMBATSF24PB",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBATSF24PB",
"components": []
}
},
{
"identifier": "EMB10MPlatform",
"metadata": {
"name": "EMB10MPlatform",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB10MPlatform",
"components": []
}
},
{
"identifier": "EMBEndPlatform",
"metadata": {
"name": "EMBEndPlatform",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBEndPlatform",
"components": []
}
},
{
"identifier": "EMBMidPlatform",
"metadata": {
"name": "EMBMidPlatform",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBMidPlatform",
"components": []
}
},
{
"identifier": "EMBPBRamp3",
"metadata": {
"name": "EMBPBRamp3",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBPBRamp3",
"components": []
}
},
{
"identifier": "EMBPBRamp2",
"metadata": {
"name": "EMBPBRamp2",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBPBRamp2",
"components": []
}
},
{
"identifier": "EMBPBRamp1",
"metadata": {
"name": "EMBPBRamp1",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBPBRamp1",
"components": []
}
}
]
}

View File

@@ -0,0 +1,9 @@
{
"manifestVersion": 5,
"id": "Embedded.BuildingBlocks",
"name": "Embeddeds Non specific asset pack",
"version": "1.0",
"requires": [
"Zamu.StrangeCustoms"
]
}

Binary file not shown.

View File

@@ -0,0 +1 @@
{"identifier":"EmbeddedsBuildingBlocks","name":"EmbeddedsBuildingBlocks","shared":false,"assets":{"EMBPlatformRamp":{"name":"EMBPlatformRamp","type":"prefab","filename":"EMBPlatformRamp.prefab"},"EMB_PlatHalf05":{"name":"EMB_PlatHalf05","type":"prefab","filename":"EMB_PlatHalf05.prefab"},"EMB_PlatHalf10":{"name":"EMB_PlatHalf10","type":"prefab","filename":"EMB_PlatHalf10.prefab"},"EMB_PlatHalf25":{"name":"EMB_PlatHalf25","type":"prefab","filename":"EMB_PlatHalf25.prefab"},"EMB_PlatPlain10":{"name":"EMB_PlatPlain10","type":"prefab","filename":"EMB_PlatPlain10.prefab"},"EMB_PlatPlain25":{"name":"EMB_PlatPlain25","type":"prefab","filename":"EMB_PlatPlain25.prefab"},"EMB_PlatPlainCube10":{"name":"EMB_PlatPlainCube10","type":"prefab","filename":"EMB_PlatPlainCube10.prefab"},"EMB_PlatPlainCube25":{"name":"EMB_PlatPlainCube25","type":"prefab","filename":"EMB_PlatPlainCube25.prefab"},"EMB_TriangleP90d":{"name":"EMB_TriangleP90d","type":"prefab","filename":"EMB_TriangleP90d.prefab"}}}

View File

@@ -0,0 +1,130 @@
{
"objects": [
{
"identifier": "EMB_PlatHalf05",
"metadata": {
"name": "EMB_PlatHalf05",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_PlatHalf05",
"components": []
}
},
{
"identifier": "EMB_PlatPlainCube25",
"metadata": {
"name": "EMB_PlatPlainCube25",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_PlatPlainCube25",
"components": []
}
},
{
"identifier": "EMB_PlatPlainCube10",
"metadata": {
"name": "EMB_PlatPlainCube10",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_PlatPlainCube10",
"components": []
}
},
{
"identifier": "EMB_PlatPlain10",
"metadata": {
"name": "EMB_PlatPlain10",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_PlatPlain10",
"components": []
}
},
{
"identifier": "EMB_PlatPlain25",
"metadata": {
"name": "EMB_PlatPlain25",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_PlatPlain25",
"components": []
}
},
{
"identifier": "EMB_TriangleP90d",
"metadata": {
"name": "EMB_TriangleP90d",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_TriangleP90d",
"components": []
}
},
{
"identifier": "EMB_PlatHalf25",
"metadata": {
"name": "EMB_PlatHalf25",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_PlatHalf25",
"components": []
}
},
{
"identifier": "EMB_PlatHalf10",
"metadata": {
"name": "EMB_PlatHalf10",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMB_PlatHalf10",
"components": []
}
},
{
"identifier": "EMBPlatformRamp",
"metadata": {
"name": "EMBPlatformRamp",
"description": "A new item",
"tags": [],
"credits": ""
},
"definition": {
"kind": "Scenery",
"modelIdentifier": "EMBPlatformRamp",
"components": []
}
}
]
}

View File

@@ -0,0 +1,4 @@
{
"assemblies": [ "ForYourConvenience" ],
"updateUrl": "https://railroader.stelltis.ch/updates.json"
}

View File

@@ -0,0 +1,27 @@
{
"manifestVersion": 5,
"id": "Zamu.ForYourConvenience",
"name": "For Your Convenience",
"version": "1.2.24366.2200",
"requires": [
{
"id": "railloader",
"notBefore": "1.9.6.8"
}
],
"redirects": [
{
"definition": "Definition.Stable.json",
"requires": [
{
"id": "railroader",
"notAfter": "2024.5.9999"
}
]
},
{
"definition": "Experimental/Definition.Experimental.json"
}
],
"updateUrl": "https://railroader.stelltis.ch/updates.json"
}

View File

@@ -0,0 +1,4 @@
{
"assemblies": [ "ForYourConvenience" ],
"updateUrl": "https://railroader.stelltis.ch/updates.json"
}

Binary file not shown.

Binary file not shown.

32
LegosBetterLoans/LICENSE Normal file
View File

@@ -0,0 +1,32 @@
By downloading, installing, or using the mod this file is included with ("the Mod"), you agree to the following terms:
1) No Redistribution:
- You may not reupload, distribute, or share the Mod on any website, platform, or service without prior written permission from the Mod's author, legotrainman ("the Author").
- Inclusion of the Mod in modpacks, compilations, or zip files intended for redistribution is strictly prohibited without explicit authorization from the Author.
2) No Modification or Reverse Engineering:
- You may not open, decompile, reverse engineer, or modify any part of the Mod, including but not limited to its .dll files or Unity Bundle files.
3) No Commercial Use:
- You may not use the Mod for any commercial purpose. This includes but is not limited to:
- Selling or monetizing access to the Mod.
- Using the Mod as part of any paid service, product, or content.
- Generating revenue through advertisements, donations, or other means directly tied to the Mods distribution or use.
4) Personal Use Only:
- You are granted a non-exclusive, non-transferable license to use the Mod for personal, non-commercial purposes only.
5) Liability and Warranty:
- The Mod is provided "as is" without warranty of any kind. The Author is not responsible for any damage, data loss, or other issues arising from the use of the Mod.
6) Termination:
- Failure to comply with these terms will result in the immediate termination of your right to use the Mod.
Contact:
For permissions, inquiries, or requests, contact the Author on Discord (legotrainman), or on Nexus mods (https://next.nexusmods.com/profile/legotrainman).
By using the Mod, you acknowledge that you have read, understood, and agreed to these terms.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
{
"Id": "LegosBetterLoans",
"Version": "1.0.0",
"DisplayName": "Legos Better Loans",
"Author": "legotrainman",
"EntryMethod": "LegosBetterLoans.Main.Load",
"ManagerVersion": "0.27.3"
}

32
LegosScrapalachia/LICENSE Normal file
View File

@@ -0,0 +1,32 @@
By downloading, installing, or using the mod this file is included with ("the Mod"), you agree to the following terms:
1) No Redistribution:
- You may not reupload, distribute, or share the Mod on any website, platform, or service without prior written permission from the Mod's author, legotrainman ("the Author").
- Inclusion of the Mod in modpacks, compilations, or zip files intended for redistribution is strictly prohibited without explicit authorization from the Author.
2) No Modification or Reverse Engineering:
- You may not open, decompile, reverse engineer, or modify any part of the Mod, including but not limited to its .dll files or Unity Bundle files.
3) No Commercial Use:
- You may not use the Mod for any commercial purpose. This includes but is not limited to:
- Selling or monetizing access to the Mod.
- Using the Mod as part of any paid service, product, or content.
- Generating revenue through advertisements, donations, or other means directly tied to the Mods distribution or use.
4) Personal Use Only:
- You are granted a non-exclusive, non-transferable license to use the Mod for personal, non-commercial purposes only.
5) Liability and Warranty:
- The Mod is provided "as is" without warranty of any kind. The Author is not responsible for any damage, data loss, or other issues arising from the use of the Mod.
6) Termination:
- Failure to comply with these terms will result in the immediate termination of your right to use the Mod.
Contact:
For permissions, inquiries, or requests, contact the Author on Discord (legotrainman), or on Nexus mods (https://next.nexusmods.com/profile/legotrainman).
By using the Mod, you acknowledge that you have read, understood, and agreed to these terms.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
{
"Id": "LegosScrapalachia",
"Version": "1.0.3",
"DisplayName": "Lego's Scrapalachia",
"Author": "legotrainman",
"EntryMethod": "LegosScrapalachia.Main.Load",
"ManagerVersion": "0.27.3"
}

32
LegosUsedLocos/LICENSE Normal file
View File

@@ -0,0 +1,32 @@
By downloading, installing, or using the mod this file is included with ("the Mod"), you agree to the following terms:
1) No Redistribution:
- You may not reupload, distribute, or share the Mod on any website, platform, or service without prior written permission from the Mod's author, legotrainman ("the Author").
- Inclusion of the Mod in modpacks, compilations, or zip files intended for redistribution is strictly prohibited without explicit authorization from the Author.
2) No Modification or Reverse Engineering:
- You may not open, decompile, reverse engineer, or modify any part of the Mod, including but not limited to its .dll files or Unity Bundle files.
3) No Commercial Use:
- You may not use the Mod for any commercial purpose. This includes but is not limited to:
- Selling or monetizing access to the Mod.
- Using the Mod as part of any paid service, product, or content.
- Generating revenue through advertisements, donations, or other means directly tied to the Mods distribution or use.
4) Personal Use Only:
- You are granted a non-exclusive, non-transferable license to use the Mod for personal, non-commercial purposes only.
5) Liability and Warranty:
- The Mod is provided "as is" without warranty of any kind. The Author is not responsible for any damage, data loss, or other issues arising from the use of the Mod.
6) Termination:
- Failure to comply with these terms will result in the immediate termination of your right to use the Mod.
Contact:
For permissions, inquiries, or requests, contact the Author on Discord (legotrainman), or on Nexus mods (https://next.nexusmods.com/profile/legotrainman).
By using the Mod, you acknowledge that you have read, understood, and agreed to these terms.

Binary file not shown.

8
LegosUsedLocos/info.json Normal file
View File

@@ -0,0 +1,8 @@
{
"Id": "LegosUsedLocos",
"Version": "1.2.1",
"DisplayName": "Lego's Used Locomotive Market",
"Author": "legotrainman",
"EntryMethod": "LegosUsedLocos.Main.Load",
"ManagerVersion": "0.27.3"
}

21
MapEnhancer/LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 Michael Richer a.k.a. Vanguard
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

BIN
MapEnhancer/MapEnhancer.dll Normal file

Binary file not shown.

BIN
MapEnhancer/arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
MapEnhancer/flare.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

11
MapEnhancer/info.json Normal file
View File

@@ -0,0 +1,11 @@
{
"Id": "MapEnhancer",
"DisplayName": "Map Enhancer",
"Author": "Vanguard",
"Version": "1.5.4.2",
"AssemblyName": "MapEnhancer.dll",
"EntryMethod": "MapEnhancer.UMM.Loader.Load",
"ManagerVersion": "0.32.4",
"HomePage": "https://www.nexusmods.com/railroader/mods/18/",
"Repository": "https://raw.githubusercontent.com/Refizar08/rr-mapenhancer-fix/master/repository.json"
}

BIN
MapEnhancer/traincar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

604
R.GBBL/ConcreteBridge.json Normal file
View File

@@ -0,0 +1,604 @@
{
"tracks": {
"nodes": {},
"segments": {},
"spans": {}
},
"scenery": {
"_01": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 1.321,
"y": -2.980,
"z": 1.366
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 2.000,
"z": 2.000
}
},
"_02": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 50.778,
"y": -2.980,
"z": 52.584
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 2.000,
"z": 2.000
}
},
"_03": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 4.100,
"y": -3.330,
"z": 4.243
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 2.000,
"z": 2.000
}
},
"_04": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 47.999,
"y": -3.330,
"z": 49.707
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 2.000,
"z": 2.000
}
},
"_05": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 6.183,
"y": -0.170,
"z": 6.402
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 5.000
}
},
"_06": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 45.914,
"y": -0.170,
"z": 47.550
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 5.000
}
},
"_07": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 13.061,
"y": -0.170,
"z": 13.523
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 5.000
}
},
"_08": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 39.036,
"y": -0.170,
"z": 40.429
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 5.000
}
},
"_09": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 19.939,
"y": -0.170,
"z": 20.644
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 5.000
}
},
"_10": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 32.158,
"y": -0.170,
"z": 33.308
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 5.000
}
},
"_11": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 26.052,
"y": -0.170,
"z": 26.974
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 4.000
}
},
"_12": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 2.687,
"y": 0.330,
"z": 8.251
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_13": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 9.564,
"y": 0.330,
"z": 15.372
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_14": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 16.441,
"y": 0.330,
"z": 22.493
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_15": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 23.318,
"y": 0.330,
"z": 29.614
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_16": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 30.195,
"y": 0.330,
"z": 36.735
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_17": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 37.072,
"y": 0.330,
"z": 43.856
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_18": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 43.949,
"y": 0.330,
"z": 50.977
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_19": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 8.153,
"y": 0.330,
"z": 2.969
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_20": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 15.030,
"y": 0.330,
"z": 10.090
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_21": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 21.907,
"y": 0.330,
"z": 17.211
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_22": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 28.784,
"y": 0.330,
"z": 24.332
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_23": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 35.661,
"y": 0.330,
"z": 31.453
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_24": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 42.538,
"y": 0.330,
"z": 38.574
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_25": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 49.415,
"y": 0.330,
"z": 45.695
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.250,
"y": 1.000,
"z": 5.000
}
},
"_26": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": -2.591,
"y": -1.440,
"z": 2.784
},
"rotation": {
"x": -30.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.245,
"y": 1.000,
"z": 4.000
}
},
"_27": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 2.876,
"y": -1.440,
"z": -2.495
},
"rotation": {
"x": -30.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 0.245,
"y": 1.000,
"z": 4.000
}
},
"_28": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 54.695,
"y": -1.440,
"z": 51.164
},
"rotation": {
"x": -30.000,
"y": 224.000,
"z": 0.000
},
"scale": {
"x": 0.245,
"y": 1.000,
"z": 4.000
}
},
"_29": {
"modelIdentifier": "CLB_Block01",
"position": {
"x": 49.228,
"y": -1.440,
"z": 56.443
},
"rotation": {
"x": -30.000,
"y": 224.000,
"z": 0.000
},
"scale": {
"x": 0.245,
"y": 1.000,
"z": 4.000
}
},
"_Lamp_01": {
"modelIdentifier": "CLB_Lamppost01",
"position": {
"x": 2.687,
"y": 1.330,
"z": 8.251
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 1.000,
"y": 1.000,
"z": 1.000
}
},
"_Lamp_02": {
"modelIdentifier": "CLB_Lamppost01",
"position": {
"x": 28.784,
"y": 1.330,
"z": 24.332
},
"rotation": {
"x": 0.000,
"y": 224.000,
"z": 0.000
},
"scale": {
"x": 1.000,
"y": 1.000,
"z": 1.000
}
},
"_Lamp_03": {
"modelIdentifier": "CLB_Lamppost01",
"position": {
"x": 43.949,
"y": 1.330,
"z": 50.977
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 1.000,
"y": 1.000,
"z": 1.000
}
},
"_Mask_01": {
"modelIdentifier": "AR-RF_objectmask",
"position": {
"x": 26.052,
"y": -0.170,
"z": 26.974
},
"rotation": {
"x": 0.000,
"y": 44.000,
"z": 0.000
},
"scale": {
"x": 4.000,
"y": 0.125,
"z": 4.000
}
}
},
"splineys": {}
}

57
R.GBBL/Definition.json Normal file
View File

@@ -0,0 +1,57 @@
{
"manifestVersion": 5,
"id": "RTM.AR_Branchline",
"name": "RTM Appalachian Railway Branchline",
"version": "0.5.7",
"requires": [
{
"id": "railloader",
"notBefore": "1.9.6.8"
},
{
"id": "Zamu.StrangeCustoms",
"notBefore": "1.10"
},
{
"id": "AlinaNova21.AlinasMapMod",
"notBefore": "1.7.25315.2154"
},
{
"id": "NickB.TheStandardCatalogofLoadIDs",
"notBefore": "6.2"
},
{
"id": "RTM_Objects_Pack",
"notBefore": "5.7"
},
{
"id": "C_L_B.ASSETS01",
"notBefore": "3.1.0"
},
{
"id": "Embedded.PiggyBackBase",
"notBefore": "1.5"
},
{
"id": "Embedded.BuildingBlocks",
"notBefore": "1.0"
}
],
"mixintos": {
"game-graph": [
"file(game-graph.json)",
"file(buildings.json)",
"file(buildings2.json)",
"file(buildings3.json)",
"file(industries.json)",
"file(REXB1.json)",
"file(REXB2.json)",
"file(REXB3.Json)",
"file(Telegraph_Poles.json)",
"file(JamesonAnimals.json)",
"file(OC_River.json)"
],
"container:cbs-baggage01": "file(baggage_car.json)",
"progressions": "file(progressions.json)"
}
}

View File

@@ -0,0 +1,46 @@
A.R. Branchline End User License Agreement (EULA)
Version 1.0 Effective October 2025
1. Ownership and Rights
All files, assets, tracks, industries, configurations, and any other content included in the A.R. Branchline package (collectively, the Mod) are the intellectual property of the RTM Development Team and its contributors.
The Mod is provided for personal, non-commercial use only within supported Railroader-related projects.
You are granted a limited, non-exclusive, revocable license to install and use the Mod solely for entertainment purposes.
2. Restrictions
Without prior written permission from the RTM Development Team, you may not:
Modify, alter, or edit any of the Mods track layouts, industries, assets, or core files.
Redistribute, reupload, or repackage any part of the Mod under a different name or branding.
Extract or reuse individual files (models, textures, scripts, or configuration data) for unrelated projects.
Circumvent or modify any internal file structure or systems that define the Mods core operation.
Any unauthorized modification or redistribution will result in revocation of usage rights and may lead to content takedown or reporting through appropriate community channels.
3. Adaptation and Integration
The A.R. Branchline may be adapted or extended for use within other track mods or expansion projects only under the following conditions:
The A.R. Branchline must remain installed as the base file dependency.
Any adaptation or modification must clearly credit the RTM Development Team and link back to the original project.
Modders must not alter or redistribute original core assets without prior approval.
Failure to meet these terms constitutes a breach of this agreement.
4. Liability
The Mod is provided as is without any warranties or guarantees of performance. The RTM Development Team is not liable for any damage, corruption, or malfunction resulting from installation or use of this Mod.
5. Agreement
By downloading, installing, or using the A.R. Branchline, you acknowledge that you have read, understood, and agreed to this EULA.
For permissions, inquiries, or collaboration requests, please contact the RTM Development Team via the RTM Discord.

5531
R.GBBL/JamesonAnimals.json Normal file

File diff suppressed because it is too large Load Diff

5002
R.GBBL/OC_River.json Normal file

File diff suppressed because it is too large Load Diff

3432
R.GBBL/REXB1.json Normal file

File diff suppressed because it is too large Load Diff

881
R.GBBL/REXB2.json Normal file
View File

@@ -0,0 +1,881 @@
{
"tracks": {
"nodes": {
},
"segments": {
},
"spans": {
}
},
"areas": {
},
"loads": {
},
"texts": {
},
"scenery": {
"CHEROKEE_COAL_S_LOADER": {
"modelIdentifier": "freight_depot_2",
"position": { "x": 17603.000, "y": 618.000, "z": 6980.000 },
"rotation": { "x": -90.000, "y": 272.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_COAL_S_BUILD_01": {
"modelIdentifier": "roadmaster-office",
"position": { "x": 17538.000, "y": 620.000, "z": 6988.000 },
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_COAL_S_BUILD_02": {
"modelIdentifier": "switchmen-shanty",
"position": { "x": 17557.562, "y": 620.000, "z": 6983.842 },
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_COAL_S_BUILD_03": {
"modelIdentifier": "depot-ridgeville",
"position": { "x": 17563.185, "y": 620.000, "z": 6962.201 },
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_COAL_S_BUILD_05": {
"modelIdentifier": "oil-supply-house",
"position": { "x": 17560.066, "y": 620.000, "z": 6947.529 },
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_COAL_S_BUILD_06": {
"modelIdentifier": "power-house-large",
"position": { "x": 17624.685, "y": 620.000, "z": 6938.905 },
"rotation": { "x": 0.000, "y": 192.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_COAL_S_BUILD_07": {
"modelIdentifier": "power-house-stack",
"position": { "x": 17628.721, "y": 620.000, "z": 6948.271 },
"rotation": { "x": 0.000, "y": 192.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_COAL_S_BUILD_08": {
"modelIdentifier": "power-house-stack",
"position": { "x": 17623.830, "y": 620.000, "z": 6949.311 },
"rotation": { "x": 0.000, "y": 192.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17596.995, "y": 618.200, "z": 7047.459 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER01": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17587.382, "y": 618.200, "z": 7050.215 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER02": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17577.769, "y": 618.200, "z": 7052.971 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER03": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17568.156, "y": 618.200, "z": 7055.727 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER04": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17558.543, "y": 618.200, "z": 7058.483 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER05": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17548.930, "y": 618.200, "z": 7061.239 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER06": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17539.317, "y": 618.200, "z": 7063.995 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER07": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17529.704, "y": 618.200, "z": 7066.751 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER08": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17520.091, "y": 618.200, "z": 7069.507 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADER09": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17510.478, "y": 618.200, "z": 7072.263 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER": {
"modelIdentifier": "fuel_oil_dock",
"position": { "x": 17587.106, "y": 618.600, "z": 7049.254 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_PIPE": {
"modelIdentifier": "CLB_Pipe02",
"position": { "x": 17578.371, "y": 623.700, "z": 7051.448 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 0.500, "y": 1.000, "z": 0.500 }
},
"CHEROKEE_CERO_TANK_UNLOADER_02": {
"modelIdentifier": "fuel_oil_dock",
"position": { "x": 17567.882, "y": 618.600, "z": 7054.766 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_03": {
"modelIdentifier": "fuel_oil_dock",
"position": { "x": 17558.270, "y": 618.600, "z": 7057.522 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_PIPE_02": {
"modelIdentifier": "CLB_Pipe02",
"position": { "x": 17549.535, "y": 623.700, "z": 7059.716 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 0.500, "y": 1.000, "z": 0.500 }
},
"CHEROKEE_CERO_TANK_UNLOADER_04": {
"modelIdentifier": "fuel_oil_dock",
"position": { "x": 17539.046, "y": 618.600, "z": 7063.034 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_05": {
"modelIdentifier": "CLB_Reactor01",
"position": { "x": 17524.616, "y": 619.200, "z": 7066.755 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_PIPE_03": {
"modelIdentifier": "CLB_Pipe02",
"position": { "x": 17530.302, "y": 623.700, "z": 7065.233 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 0.500, "y": 1.000, "z": 0.500 }
},
"CHEROKEE_CERO_TANK_UNLOADER_06": {
"modelIdentifier": "CLB_Reactor01",
"position": { "x": 17519.810, "y": 619.200, "z": 7068.133 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_07": {
"modelIdentifier": "CLB_Reactor01",
"position": { "x": 17515.004, "y": 619.200, "z": 7069.511 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_08": {
"modelIdentifier": "CLB_Reactor01",
"position": { "x": 17510.198, "y": 619.200, "z": 7070.889 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK_UNLOADER_PIPE_04": {
"modelIdentifier": "CLB_Pipe02",
"position": { "x": 17517.807, "y": 620.700, "z": 7068.817 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 0.800, "y": 1.500, "z": 0.800 }
},
"CHEROKEE_CERO_TRACK_UNLOADER": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17521.199, "y": 619.100, "z": 7080.639 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_02": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17551.958, "y": 619.100, "z": 7071.821 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_03": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17553.338, "y": 619.100, "z": 7076.626 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_04": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17522.579, "y": 619.100, "z": 7085.444 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_05": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17523.959, "y": 619.100, "z": 7090.249 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_06": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17554.711, "y": 619.100, "z": 7081.417 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_07": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17602.776, "y": 619.100, "z": 7067.637 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_08": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17572.015, "y": 619.100, "z": 7076.457 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_09": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17570.637, "y": 619.100, "z": 7071.651 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_10": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17601.398, "y": 619.100, "z": 7062.833 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_11": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17600.020, "y": 619.100, "z": 7058.027 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TRACK_UNLOADER_12": {
"modelIdentifier": "CLB_Oil-Loader",
"position": { "x": 17569.261, "y": 619.100, "z": 7066.845 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PLANT_BUILDING": {
"modelIdentifier": "taconite_plant_building",
"position": { "x": 17683.626, "y": 620.000, "z": 7136.420 },
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_01": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17561.367, "y": 623.000, "z": 7068.893 },
"rotation": { "x": 0.000, "y": 286.000, "z": 90.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_02": {
"modelIdentifier": "CLB_TrussPipes01_Corner_Down90_Q",
"position": { "x": 17561.367, "y": 628.000, "z": 7068.893 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_03": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17562.745, "y": 628.000, "z": 7073.699 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_04": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17560.349, "y": 628.000, "z": 7065.336 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_05": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17559.523, "y": 628.000, "z": 7062.452 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_06": {
"modelIdentifier": "CLB_TrussPipes01_Corner_Down90_Q",
"position": { "x": 17558.147, "y": 628.000, "z": 7057.644 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_07": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17558.147, "y": 626.000, "z": 7057.644 },
"rotation": { "x": 0.000, "y": 286.000, "z": 90.000 },
"scale": { "x": 0.300, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_08": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17562.833, "y": 622.100, "z": 7073.986 },
"rotation": { "x": 0.000, "y": 286.000, "z": 90.000 },
"scale": { "x": 1.500, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_09": {
"modelIdentifier": "CLB_TrussPipes01_Corner_Flat45_Q",
"position": { "x": 17564.127, "y": 628.000, "z": 7078.504 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_10": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17568.502, "y": 628.000, "z": 7080.929 },
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_11": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17575.498, "y": 628.000, "z": 7084.807 },
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_12": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17574.188, "y": 622.200, "z": 7084.082 },
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_13": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17565.442, "y": 622.200, "z": 7079.234 },
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_14": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17579.270, "y": 622.200, "z": 7086.904 },
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_15": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17582.241, "y": 628.000, "z": 7088.550 },
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_16": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17589.237, "y": 628.000, "z": 7092.428 },
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_17": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17594.485, "y": 628.000, "z": 7095.337 },
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_18": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17590.112, "y": 622.200, "z": 7092.913 },
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_19": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17601.481, "y": 628.000, "z": 7099.215 },
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_20": {
"modelIdentifier": "CLB_TrussPipes01_Corner_Flat45_Q",
"position": { "x": 17605.856, "y": 628.000, "z": 7101.640 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_21": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17607.234, "y": 628.000, "z": 7106.446 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_22": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17608.338, "y": 628.000, "z": 7110.290 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_23": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17610.542, "y": 628.000, "z": 7117.980 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_24": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17612.196, "y": 628.000, "z": 7123.747 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_25": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17613.298, "y": 628.000, "z": 7127.592 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_26": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17614.952, "y": 628.000, "z": 7133.359 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_27": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17616.606, "y": 628.000, "z": 7139.126 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_28": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17618.260, "y": 628.000, "z": 7144.893 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_29": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17619.914, "y": 628.000, "z": 7150.660 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_30": {
"modelIdentifier": "CLB_TrussPipes01_Corner_Flat90_Q",
"position": { "x": 17621.292, "y": 628.000, "z": 7155.466 },
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_31": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17626.098, "y": 628.000, "z": 7154.088 },
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_32": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17633.788, "y": 628.000, "z": 7151.884 },
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_33": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17641.478, "y": 628.000, "z": 7149.680 },
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_34": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17649.168, "y": 628.000, "z": 7147.476 },
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_35": {
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
"position": { "x": 17653.975, "y": 628.000, "z": 7146.100 },
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_TANK": {
"modelIdentifier": "CLB_Reactor01",
"position": { "x": 17656.858, "y": 620.000, "z": 7145.272 },
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
"scale": { "x": 2.000, "y": 2.000, "z": 2.000 }
},
"CHEROKEE_CERO_PIPES_36": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17601.483, "y": 622.100, "z": 7099.216 },
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_37": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17649.168, "y": 622.000, "z": 7147.476 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_38": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17634.750, "y": 622.000, "z": 7151.610 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_39": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17621.292, "y": 622.000, "z": 7155.468 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_41": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17618.536, "y": 622.000, "z": 7145.855 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_42": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17615.780, "y": 622.000, "z": 7136.242 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_43": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17613.024, "y": 622.000, "z": 7126.629 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_45": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17621.292, "y": 622.000, "z": 7155.468 },
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.200, "z": 1.000 }
},
"CHEROKEE_CERO_PIPES_46": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17610.268, "y": 622.000, "z": 7117.017 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_PIPES_47": {
"modelIdentifier": "CLB_Truss01_Straight8",
"position": { "x": 17607.512, "y": 622.000, "z": 7107.405 },
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"CHEROKEE_CERO_LOADING_BLOCK_01": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17664.056, "y": 618.700, "z": 7046.501 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_02": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17654.443, "y": 618.700, "z": 7049.257 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_03": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17644.830, "y": 618.700, "z": 7052.013 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_04": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17635.217, "y": 618.700, "z": 7054.769 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_05": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17625.604, "y": 618.700, "z": 7057.525 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_06": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17615.991, "y": 618.700, "z": 7060.281 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_07": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17606.378, "y": 618.700, "z": 7063.037 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_08": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17596.765, "y": 618.700, "z": 7065.793 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_09": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17587.152, "y": 618.700, "z": 7068.549 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_10": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17577.539, "y": 618.700, "z": 7071.305 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_11": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17567.926, "y": 618.700, "z": 7074.061 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_12": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17558.313, "y": 618.700, "z": 7076.817 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_13": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17548.700, "y": 618.700, "z": 7079.573 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_14": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17539.087, "y": 618.700, "z": 7082.329 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_15": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17529.474, "y": 618.700, "z": 7085.085 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_16": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17519.861, "y": 618.700, "z": 7087.841 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_17": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17510.248, "y": 618.700, "z": 7090.597 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_18": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17500.635, "y": 618.700, "z": 7093.353 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_19": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17491.022, "y": 618.700, "z": 7096.109 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_20": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17481.409, "y": 618.700, "z": 7098.865 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_21": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17471.796, "y": 618.700, "z": 7101.621 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_22": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17462.183, "y": 618.700, "z": 7104.377 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_23": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17452.570, "y": 618.700, "z": 7107.133 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_BLOCK_24": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17442.957, "y": 618.700, "z": 7109.889 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_25": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17638.231, "y": 618.700, "z": 7043.503 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_26": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17628.618, "y": 618.700, "z": 7046.259 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_27": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17619.005, "y": 618.700, "z": 7049.015 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_28": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17609.392, "y": 618.700, "z": 7051.771 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_29": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17599.779, "y": 618.700, "z": 7054.527 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_30": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17590.166, "y": 618.700, "z": 7057.283 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_31": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17580.553, "y": 618.700, "z": 7060.039 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_32": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17570.940, "y": 618.700, "z": 7062.795 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_33": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17561.327, "y": 618.700, "z": 7065.551 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_34": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17551.714, "y": 618.700, "z": 7068.307 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_35": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17542.101, "y": 618.700, "z": 7071.063 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_36": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17532.488, "y": 618.700, "z": 7073.819 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_37": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17522.875, "y": 618.700, "z": 7076.575 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_38": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17513.262, "y": 618.700, "z": 7079.331 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_39": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17503.649, "y": 618.700, "z": 7082.087 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_40": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17494.036, "y": 618.700, "z": 7084.843 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_41": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17484.423, "y": 618.700, "z": 7087.599 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_42": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17474.810, "y": 618.700, "z": 7090.355 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_43": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17465.197, "y": 618.700, "z": 7093.111 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_44": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17455.584, "y": 618.700, "z": 7095.867 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_45": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17542.111, "y": 618.700, "z": 7071.063 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_46": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17537.305, "y": 618.700, "z": 7072.441 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_47": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17532.499, "y": 618.700, "z": 7073.819 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_48": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17527.693, "y": 618.700, "z": 7075.197 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_49": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17522.887, "y": 618.700, "z": 7076.575 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_50": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17518.081, "y": 618.700, "z": 7077.953 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_51": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17513.275, "y": 618.700, "z": 7079.331 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_52": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17508.469, "y": 618.700, "z": 7080.709 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_53": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17503.663, "y": 618.700, "z": 7082.087 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_54": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 17498.857, "y": 618.700, "z": 7083.465 },
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
}
},
"splineys": {
},
"simpleGraphs": {},
"mandelas": {
}
}

209
R.GBBL/REXB3.json Normal file
View File

@@ -0,0 +1,209 @@
{
"tracks": {
"nodes": {
},
"segments": {
},
"spans": {
}
},
"areas": {
},
"loads": {
},
"texts": {
},
"scenery": {
"WRRIGHTSCREEK_BUILD_01": {
"modelIdentifier": "ury_dragon_freight_house_small",
"position": { "x": 21195.000, "y": 706.000, "z": 11333.000 },
"rotation": { "x": -90.000, "y": 0.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_02": {
"modelIdentifier": "engine-supply-house",
"position": { "x": 21220.000, "y": 706.000, "z": 11333.000 },
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_03": {
"modelIdentifier": "switchmen-shanty",
"position": { "x": 21237.320, "y": 708.000, "z": 11343.000 },
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_04": {
"modelIdentifier": "brick-substation-medium",
"position": { "x": 21227.320, "y": 708.000, "z": 11360.320 },
"rotation": { "x": 0.000, "y": 240.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_05": {
"modelIdentifier": "Logs1",
"position": { "x": 21283.050, "y": 708.600, "z": 11333.815 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_06": {
"modelIdentifier": "Logs1",
"position": { "x": 21273.845, "y": 708.600, "z": 11329.908 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_07": {
"modelIdentifier": "Logs1",
"position": { "x": 21264.640, "y": 707.600, "z": 11326.001 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_08": {
"modelIdentifier": "Logs1",
"position": { "x": 21255.435, "y": 707.600, "z": 11322.094 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_09": {
"modelIdentifier": "Logs1",
"position": { "x": 21246.230, "y": 706.600, "z": 11318.187 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_10": {
"modelIdentifier": "Logs1",
"position": { "x": 21237.025, "y": 706.600, "z": 11314.280 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_11": {
"modelIdentifier": "Logs1",
"position": { "x": 21227.820, "y": 706.600, "z": 11310.373 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_12": {
"modelIdentifier": "Logs1",
"position": { "x": 21218.615, "y": 706.600, "z": 11306.466 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_13": {
"modelIdentifier": "Logs1",
"position": { "x": 21209.410, "y": 706.600, "z": 11302.559 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_14": {
"modelIdentifier": "Logs1",
"position": { "x": 21200.205, "y": 705.600, "z": 11298.652 },
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_CRANE": {
"modelIdentifier": "bayshore_traversing_crane",
"position": { "x": 21229.946, "y": 704.600, "z": 11304.255 },
"rotation": { "x": -90.000, "y": 87.000, "z": -20.000 },
"scale": { "x": 0.900, "y": 1.000, "z": 1.500 }
},
"MINGOFALLS_SILO_BLOCK_01": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 19077.000, "y": 668.500, "z": 16506.000 },
"rotation": { "x": 0.000, "y": 340.000, "z": 0.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"MINGOFALLS_SILO_BLOCK_02": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 19071.870, "y": 668.500, "z": 16520.096 },
"rotation": { "x": 0.000, "y": 340.000, "z": 0.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"MINGOFALLS_SILO_BLOCK_03": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 19066.740, "y": 668.500, "z": 16534.190 },
"rotation": { "x": 0.000, "y": 340.000, "z": 0.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"MINGOFALLS_SILO_BLOCK_04": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 19050.467, "y": 668.000, "z": 16523.811 },
"rotation": { "x": 10.000, "y": 170.000, "z": 0.000 },
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
},
"MINGOFALLS_SILO_BLOCK_05": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 19059.970, "y": 668.500, "z": 16558.248 },
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
"scale": { "x": 5.000, "y": 3.000, "z": 5.000 }
},
"MINGOFALLS_BUILDING_ADDON_01": {
"modelIdentifier": "freight_depot_2",
"position": { "x": 19054.080, "y": 669.500, "z": 16556.729 },
"rotation": { "x": -90.000, "y": 355.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"MINGOFALLS_BUILDING_ADDON_02": {
"modelIdentifier": "CLB_Truck01",
"position": { "x": 19062.049, "y": 669.900, "z": 16557.426 },
"rotation": { "x": 0.000, "y": 175.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"MINGOFALLS_BUILDING_ADDON_03": {
"modelIdentifier": "CLB_Truck01_red",
"position": { "x": 19061.613, "y": 669.900, "z": 16562.407 },
"rotation": { "x": 0.000, "y": 175.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"MINGOFALLS_BUILDING_ADDON_04": {
"modelIdentifier": "CLB_Truck01_red",
"position": { "x": 19071.139, "y": 669.900, "z": 16568.260 },
"rotation": { "x": 0.000, "y": 220.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_15": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 19465.363, "y": 648.000, "z": 10445.187 },
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
"scale": { "x": 3.000, "y": 3.000, "z": 3.000 }
},
"WRRIGHTSCREEK_BUILD_16": {
"modelIdentifier": "ury_watson_freight_house_small",
"position": { "x": 19465.363, "y": 648.600, "z": 10445.187 },
"rotation": { "x": -90.000, "y": 224.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_17": {
"modelIdentifier": "Rex_water_tower",
"position": { "x": 19465.117, "y": 648.600, "z": 10459.327 },
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_18": {
"modelIdentifier": "Logs4",
"position": { "x": 19481.661, "y": 649.600, "z": 10443.349 },
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_19": {
"modelIdentifier": "Logs4",
"position": { "x": 19478.188, "y": 649.600, "z": 10439.752 },
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_20": {
"modelIdentifier": "linemen-tool-shed",
"position": { "x": 19466.307, "y": 649.400, "z": 10431.765 },
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"WRRIGHTSCREEK_BUILD_21": {
"modelIdentifier": "CLB_Block02",
"position": { "x": 19451.819, "y": 647.000, "z": 10431.160 },
"rotation": { "x": 12.000, "y": 224.000, "z": 0.000 },
"scale": { "x": 3.000, "y": 3.000, "z": 1.000 }
}
},
"splineys": {
},
"simpleGraphs": {},
"mandelas": {
}
}

Binary file not shown.

View File

@@ -0,0 +1 @@
{"identifier":"MapMaskEmpty","name":"MapMaskEmpty","shared":false,"assets":{"MapMask":{"name":"MapMask","type":"prefab","filename":"MapMask.prefab"}}}

File diff suppressed because it is too large Load Diff

110
R.GBBL/Telegraph_Poles.json Normal file
View File

@@ -0,0 +1,110 @@
{
"areas": {},
"scenery": {},
"loads": {},
"splineys": {
"BTBL_Telegraph_Poles": {
"handler": "AlinasMapMod.TelegraphPoleMover",
"polesToMove": [
467,
465,
431,
429,
427,
425,
391,
389,
373,
371,
369,
365,
363,
385,
375,
387
],
"poleMovement": [
[
0,
2.5,
0
],
[
0,
2.5,
0
],
[
2,
0,
4
],
[
3.5,
0,
6.06
],
[
5.36,
3.5,
4.5
],
[
0,
3.5,
0
],
[
0,
3.5,
0
],
[
0,
3.5,
0
],
[
0,
2,
0
],
[
0,
2,
0
],
[
0,
2.17,
0
],
[
0,
2,
0
],
[
0,
2,
0
],
[
4,
2,
5
],
[
0,
2,
0
],
[
0,
2,
0
]
]
}
}
}

163
R.GBBL/baggage_car.json Normal file
View File

@@ -0,0 +1,163 @@
{
"objects": [
{
"$find": [
{
"path": "identifier",
"value": "cbs-baggage01",
"comp": "equals"
}
],
"$clone": true,
"identifier": "cbs-baggage01-bbl",
"metadata": {
"name": "Mail Car",
"description": "Mail Car"
},
"definition": {
"carType": "CBSBBL",
"archetype": "Boxcar",
"loadSlots": [
{
"$find": [
{
"path": "requiredLoadIdentifier",
"value": "mail"
}
],
"maximumCapacity": 40000.0,
"loadUnits": "Pounds",
"requiredLoadIdentifier": ""
}
],
"components": [
{
"$find": [
{
"path": "kind",
"value": "Colorizer",
"comp": "equals"
}
],
"hexColors": [
{
"$append": [
"FFA200",
"69170E",
"0D1247",
"8A4C30"
]
}
]
}
]
}
},
{
"$find": [
{
"path": "identifier",
"value": "cbs-baggage01",
"comp": "equals"
}
],
"$clone": true,
"identifier": "cbs-baggage01-arw",
"metadata": {
"name": "MOW workers Car",
"description": "MOW car to carry workers to progression work sites"
},
"definition": {
"carType": "MOWCBS",
"archetype": "Boxcar",
"loadSlots": [
{
"$find": [
{
"path": "requiredLoadIdentifier",
"value": "mail"
}
],
"maximumCapacity": 40.0,
"loadUnits": "Quantity",
"requiredLoadIdentifier": "workmen"
}
],
"components": [
{
"$find": [
{
"path": "kind",
"value": "Colorizer",
"comp": "equals"
}
],
"hexColors": [
{
"$append": [
"FFA200",
"69170E",
"0D1247",
"8A4C30"
]
}
]
}
]
}
},
{
"$find": [
{
"path": "identifier",
"value": "cbs-baggage01",
"comp": "equals"
}
],
"$clone": true,
"identifier": "cbs-baggage01-fish",
"metadata": {
"name": "DNR Fish Car",
"description": "Baggage car outfitted with tanks to carry live fish for stocking."
},
"definition": {
"carType": "FSCBS",
"archetype": "Boxcar",
"loadSlots": [
{
"$find": [
{
"path": "requiredLoadIdentifier",
"value": "mail"
}
],
"maximumCapacity": 20000.0,
"loadUnits": "Pounds",
"requiredLoadIdentifier": "fish"
}
],
"components": [
{
"$find": [
{
"path": "kind",
"value": "Colorizer",
"comp": "equals"
}
],
"hexColors": [
{
"$append": [
"FFA200",
"69170E",
"0D1247",
"8A4C30"
]
}
]
}
]
}
}
]
}

7637
R.GBBL/buildings.json Normal file

File diff suppressed because it is too large Load Diff

1666
R.GBBL/buildings2.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,354 @@
{
"tracks": {
"nodes": {},
"segments": {},
"spans": {}
},
"areas": {},
"loads": {},
"texts": {},
"scenery": {},
"splineys": {
"C_AR_EI_RV_01": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 9722.013,
"y": 545.930,
"z": 7517.319
},
"rotation": {
"x": 0.000,
"y": 226.300,
"z": 0.000
}
},
{
"position": {
"x": 9722.857,
"y": 545.930,
"z": 7507.751
},
"rotation": {
"x": 0.000,
"y": 46.300,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_EI_RV_Crossing1_01",
"P_AR_EI_RV_Crossing1_02",
"P_AR_EI_RV_Crossing1_03"
]
},
"C_AR_Main_01": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 11942.405,
"y": 565.676,
"z": 8358.266
},
"rotation": {
"x": 0.000,
"y": 297.000,
"z": 0.000
}
},
{
"position": {
"x": 11890.087,
"y": 565.576,
"z": 8376.732
},
"rotation": {
"x": 0.000,
"y": 117.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing01_01",
"P_AR_Main_Crossing01_02"
]
},
"C_AR_Main_02": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 12947.417,
"y": 569.840,
"z": 8890.580
},
"rotation": {
"x": 0.000,
"y": 13.000,
"z": 0.000
}
},
{
"position": {
"x": 12944.754,
"y": 569.840,
"z": 8913.636
},
"rotation": {
"x": 0.000,
"y": 192.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing02_01",
"P_AR_Main_Crossing02_02",
"P_AR_Main_Crossing02_03"
]
},
"C_AR_Main_03": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 13505.690,
"y": 572.114,
"z": 10054.449
},
"rotation": {
"x": 0.000,
"y": 221.000,
"z": 0.000
}
},
{
"position": {
"x": 13481.889,
"y": 572.114,
"z": 10034.205
},
"rotation": {
"x": 0.000,
"y": 91.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing03_01",
"P_AR_Main_Crossing03_02",
"P_AR_Main_Crossing03_03",
"P_AR_Main_Crossing03_04"
]
},
"C_AR_Main_04": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 16207.482,
"y": 594.297,
"z": 9736.218
},
"rotation": {
"x": 0.000,
"y": 10.667,
"z": 0.000
}
},
{
"position": {
"x": 16205.522,
"y": 594.297,
"z": 9759.758
},
"rotation": {
"x": 0.000,
"y": 196.667,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing04_01",
"P_AR_Main_Crossing04_02"
]
},
"C_AR_Main_05": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 16440.213,
"y": 598.900,
"z": 11868.170
},
"rotation": {
"x": 0.000,
"y": 290.000,
"z": 0.000
}
},
{
"position": {
"x": 16427.995,
"y": 598.900,
"z": 11866.764
},
"rotation": {
"x": 0.000,
"y": 110.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing05_01",
"P_AR_Main_Crossing05_02"
]
},
"C_AR_Main_06": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 17718.141,
"y": 607.235,
"z": 13124.808
},
"rotation": {
"x": 0.000,
"y": 251.667,
"z": 0.000
}
},
{
"position": {
"x": 17667.979,
"y": 607.035,
"z": 13101.339
},
"rotation": {
"x": 0.000,
"y": 71.667,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing06_01",
"P_AR_Main_Crossing06_02",
"P_AR_Main_Crossing06_03"
]
},
"C_AR_RF_01": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 17562.490,
"y": 616.168,
"z": 14243.105
},
"rotation": {
"x": 0.000,
"y": 345.000,
"z": 0.000
}
},
{
"position": {
"x": 17550.164,
"y": 616.168,
"z": 14260.507
},
"rotation": {
"x": 0.000,
"y": 165.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_RF_Crossing01_01"
]
},
"C_AR_RF_02": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 17616.259,
"y": 613.358,
"z": 14014.223
},
"rotation": {
"x": 0.000,
"y": 165.000,
"z": 0.000
}
},
{
"position": {
"x": 17630.041,
"y": 613.308,
"z": 13990.998
},
"rotation": {
"x": 0.000,
"y": 345.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_RF_Crossing02_01"
]
},
"OCustom_oxdx": {
"handler": "AlinasMapMod.MapLabelBuilder",
"position": {
"x": 13061.472,
"y": 571.372,
"z": 9590.119
},
"text": "Birdtown",
"alignment": "TopLeft"
},
"OCustom_8njm": {
"handler": "AlinasMapMod.MapLabelBuilder",
"position": {
"x": 17188.516,
"y": 608.61,
"z": 9723.577
},
"text": "Cherokee",
"alignment": "TopLeft"
},
"OCustom_3pjr": {
"handler": "AlinasMapMod.MapLabelBuilder",
"position": {
"x": 17680.56,
"y": 643.89,
"z": 14738.434
},
"text": "Ravenford",
"alignment": "TopLeft"
}
},
"simpleGraphs": {},
"mandelas": {}
}

486
R.GBBL/buildings3.json Normal file
View File

@@ -0,0 +1,486 @@
{
"tracks": {
"nodes": {},
"segments": {},
"spans": {}
},
"areas": {},
"loads": {},
"texts": {},
"scenery": {},
"splineys": {
"C_AR_EI_RV_01": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 9722.013,
"y": 545.930,
"z": 7517.319
},
"rotation": {
"x": 0.000,
"y": 226.300,
"z": 0.000
}
},
{
"position": {
"x": 9722.857,
"y": 545.930,
"z": 7507.751
},
"rotation": {
"x": 0.000,
"y": 46.300,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_EI_RV_Crossing1_01",
"P_AR_EI_RV_Crossing1_02",
"P_AR_EI_RV_Crossing1_03"
]
},
"C_AR_Main_01": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 11942.405,
"y": 565.676,
"z": 8358.266
},
"rotation": {
"x": 0.000,
"y": 297.000,
"z": 0.000
}
},
{
"position": {
"x": 11890.087,
"y": 565.576,
"z": 8376.732
},
"rotation": {
"x": 0.000,
"y": 117.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing01_01",
"P_AR_Main_Crossing01_02"
]
},
"C_AR_Main_02": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 12947.867,
"y": 569.840,
"z": 8892.528
},
"rotation": {
"x": 0.000,
"y": 13.000,
"z": 0.000
}
},
{
"position": {
"x": 12945.066,
"y": 569.840,
"z": 8915.103
},
"rotation": {
"x": 0.000,
"y": 192.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing02_01",
"P_AR_Main_Crossing02_02",
"P_AR_Main_Crossing02_03"
]
},
"C_AR_Main_03": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 13505.690,
"y": 572.114,
"z": 10054.449
},
"rotation": {
"x": 0.000,
"y": 221.000,
"z": 0.000
}
},
{
"position": {
"x": 13481.889,
"y": 572.114,
"z": 10034.205
},
"rotation": {
"x": 0.000,
"y": 91.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing03_01",
"P_AR_Main_Crossing03_02",
"P_AR_Main_Crossing03_03",
"P_AR_Main_Crossing03_04"
]
},
"C_AR_Main_04": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 16207.389,
"y": 594.297,
"z": 9735.727
},
"rotation": {
"x": 0.000,
"y": 10.667,
"z": 0.000
}
},
{
"position": {
"x": 16205.219,
"y": 594.197,
"z": 9758.288
},
"rotation": {
"x": 0.000,
"y": 191.667,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing04_01",
"P_AR_Main_Crossing04_02"
]
},
"C_AR_Main_05": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 16440.213,
"y": 598.900,
"z": 11868.170
},
"rotation": {
"x": 0.000,
"y": 290.000,
"z": 0.000
}
},
{
"position": {
"x": 16427.995,
"y": 598.900,
"z": 11866.764
},
"rotation": {
"x": 0.000,
"y": 110.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing05_01",
"P_AR_Main_Crossing05_02"
]
},
"C_AR_Main_06": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 17718.141,
"y": 607.235,
"z": 13124.808
},
"rotation": {
"x": 0.000,
"y": 251.667,
"z": 0.000
}
},
{
"position": {
"x": 17667.979,
"y": 607.035,
"z": 13101.339
},
"rotation": {
"x": 0.000,
"y": 71.667,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_Main_Crossing06_01",
"P_AR_Main_Crossing06_02",
"P_AR_Main_Crossing06_03"
]
},
"C_AR_RF_01": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 17562.490,
"y": 616.168,
"z": 14243.105
},
"rotation": {
"x": 0.000,
"y": 345.000,
"z": 0.000
}
},
{
"position": {
"x": 17549.906,
"y": 616.168,
"z": 14261.473
},
"rotation": {
"x": 0.000,
"y": 165.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_RF_Crossing01_01"
]
},
"C_AR_RF_02": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 17616.518,
"y": 613.358,
"z": 14013.257
},
"rotation": {
"x": 0.000,
"y": 165.000,
"z": 0.000
}
},
{
"position": {
"x": 17630.041,
"y": 613.308,
"z": 13990.998
},
"rotation": {
"x": 0.000,
"y": 345.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_RF_Crossing02_01"
]
},
"C_AR_RF_03": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 18532.909,
"y": 633.959,
"z": 15531.714
},
"rotation": {
"x": 0.000,
"y": 13.000,
"z": 0.000
},
},
{
"position": {
"x": 18526.032,
"y": 634.356,
"z": 15557.276
},
"rotation": {
"x": 0.000,
"y": 178.000,
"z": 0.000
},
}
],
"spanIds": [
"P_AR_RF_Crossing03_01"
]
},
"C_AR_CB_01": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 15694.504,
"y": 594.526,
"z": 9367.962
},
"rotation": {
"x": 0.000,
"y": 79.000,
"z": 0.000
}
},
{
"position": {
"x": 15704.379,
"y": 594.376,
"z": 9375.236
},
"rotation": {
"x": 0.000,
"y": 269.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_CB_Crossing01_01"
]
},
"C_AR_CB_02": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 15752.499,
"y": 595.326,
"z": 9368.774
},
"rotation": {
"x": 0.000,
"y": 86.000,
"z": 0.000
}
},
{
"position": {
"x": 15759.369,
"y": 595.326,
"z": 9376.196
},
"rotation": {
"x": 0.000,
"y": 268.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_CB_Crossing02_01"
]
},
"C_AR_CB_03": {
"handler": "CUtil.RRCrossing",
"identifier": "RRCrossingRexRust1",
"instances": [
{
"position": {
"x": 16964.654,
"y": 609.449,
"z": 9268.154
},
"rotation": {
"x": 0.000,
"y": 9.000,
"z": 0.000
}
},
{
"position": {
"x": 16960.996,
"y": 609.599,
"z": 9293.203
},
"rotation": {
"x": 0.000,
"y": 189.000,
"z": 0.000
}
}
],
"spanIds": [
"P_AR_CB_Crossing03_01"
]
},
"OCustom_oxdx": {
"handler": "AlinasMapMod.MapLabelBuilder",
"position": {
"x": 13061.472,
"y": 571.372,
"z": 9590.119
},
"text": "Birdtown",
"alignment": "TopLeft"
},
"OCustom_8njm": {
"handler": "AlinasMapMod.MapLabelBuilder",
"position": {
"x": 17188.516,
"y": 608.610,
"z": 9723.577
},
"text": "Cherokee",
"alignment": "TopLeft"
},
"OCustom_3pjr": {
"handler": "AlinasMapMod.MapLabelBuilder",
"position": {
"x": 17680.560,
"y": 643.890,
"z": 14738.434
},
"text": "Ravenford",
"alignment": "TopLeft"
}
},
"simpleGraphs": {},
"mandelas": {}
}

42824
R.GBBL/game-graph.json Normal file

File diff suppressed because it is too large Load Diff

3612
R.GBBL/industries.json Normal file

File diff suppressed because it is too large Load Diff

1119
R.GBBL/progressions.json Normal file

File diff suppressed because it is too large Load Diff

41
R.GBBL/s1.sel Normal file
View File

@@ -0,0 +1,41 @@
"RBP Selection File": {
"Nodes": [
],
"Splines": [
],
"Objects": [
"AR_BT_Road_Bridge_02_01",
"AR_BT_Road_Bridge_02_02",
"AR_BT_Road_Bridge_02_03",
"AR_BT_Road_Bridge_02_04",
"AR_BT_Road_Bridge_02_05",
"AR_BT_Road_Bridge_02_06",
"AR_BT_Road_Bridge_02_07",
"AR_BT_Road_Bridge_02_08",
"AR_BT_Road_Bridge_02_09",
"AR_BT_Road_Bridge_02_10",
"AR_BT_Road_Bridge_02_11",
"AR_BT_Road_Bridge_02_12",
"AR_BT_Road_Bridge_02_13",
"AR_BT_Road_Bridge_02_14",
"AR_BT_Road_Bridge_02_15",
"AR_BT_Road_Bridge_02_16",
"AR_BT_Road_Bridge_02_17",
"AR_BT_Road_Bridge_02_18",
"AR_BT_Road_Bridge_02_19",
"AR_BT_Road_Bridge_02_20",
"AR_BT_Road_Bridge_02_21",
"AR_BT_Road_Bridge_02_22",
"AR_BT_Road_Bridge_02_23",
"AR_BT_Road_Bridge_02_24",
"AR_BT_Road_Bridge_02_25",
"AR_BT_Road_Bridge_02_26",
"AR_BT_Road_Bridge_02_27",
"AR_BT_Road_Bridge_02_28",
"AR_BT_Road_Bridge_02_29",
"AR_BT_Road_Bridge_02_Lamp_01",
"AR_BT_Road_Bridge_02_Lamp_02",
"AR_BT_Road_Bridge_02_Lamp_03",
"AR_BT_Road_Bridge_02_Mask_01"
]
}

412
R.GBBL/temp.json Normal file
View File

@@ -0,0 +1,412 @@
{
"tracks": {
"nodes": {
},
"segments": {
},
"spans": {
}
},
"areas": {
},
"loads": {
},
"texts": {
},
"scenery": {
"REX_TEST_ANINMAL_OBJ_1": {
"modelIdentifier": "Rex_Aligator",
"position": { "x": 10380.000, "y": 544.000, "z": 7095.000 },
"rotation": { "x": 0.000, "y": 0.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_2": {
"modelIdentifier": "Rex_StripedBass",
"position": { "x": 10380.300, "y": 543.900, "z": 7093.400 },
"rotation": { "x": 0.000, "y": 90.000, "z": 0.000 },
"scale": { "x": 4.000, "y": 4.000, "z": 4.000 }
},
"TWINFORKS_FISH_ADDON_01": {
"modelIdentifier": "freight-house-general",
"position": { "x": 21550.537, "y": 774.000, "z": 21334.195 },
"rotation": { "x": 0.000, "y": 147.000, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_02": {
"modelIdentifier": "roadmaster-office",
"position": { "x": 21400.000, "y": 778.000, "z": 21528.000 },
"rotation": { "x": 0.000, "y": 138.000, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_03": {
"modelIdentifier": "Rex_water_tower",
"position": { "x": 21389.962, "y": 778.000, "z": 21539.148 },
"rotation": { "x": 0.000, "y": 48.000, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_04": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21396.686, "y": 777.900, "z": 21545.134 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_05": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21389.628, "y": 777.900, "z": 21552.218 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_06": {
"modelIdentifier": "EMB_B510Platform",
"position": { "x": 21395.213, "y": 778.400, "z": 21554.413 },
"rotation": { "x": 0.000, "y": 45.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_07": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21397.915, "y": 777.900, "z": 21560.475 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_08": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21404.973, "y": 777.900, "z": 21553.391 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_09": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21412.032, "y": 777.900, "z": 21546.308 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_10": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21419.091, "y": 777.900, "z": 21539.225 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_11": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21403.751, "y": 777.900, "z": 21538.055 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_12": {
"modelIdentifier": "CLB_Ramp01",
"position": { "x": 21410.810, "y": 777.900, "z": 21530.972 },
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
},
"TWINFORKS_FISH_ADDON_13": {
"modelIdentifier": "EMB10MPlatform",
"position": { "x": 21414.918, "y": 778.000, "z": 21535.065 },
"rotation": { "x": 0.000, "y": 315.100, "z": 0.000 },
"scale": { "x": 0.300, "y": 1.500, "z": 0.500 }
},
"TWINFORKS_FISH_ADDON_14": {
"modelIdentifier": "EMB10MPlatform",
"position": { "x": 21414.918, "y": 778.000, "z": 21535.065 },
"rotation": { "x": 0.000, "y": 315.100, "z": 0.000 },
"scale": { "x": 0.300, "y": 1.500, "z": 5.000 }
},
"REX_TEST_ANIMAL_OBJ_3": {
"modelIdentifier": "Animal_Gorilla",
"position": { "x": 21392.117, "y": 793.000, "z": 21539.743 },
"rotation": { "x": 0.000, "y": 78.000, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANIMAL_OBJ_4": {
"modelIdentifier": "Rex_Chicken",
"position": { "x": 13484.000, "y": 572.280, "z": 10036.000 },
"rotation": { "x": 0.000, "y": 78.000, "z": 1.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_5": {
"modelIdentifier": "Animal_Sheep",
"position": { "x": 19400.000, "y": 668.300, "z": 15383.000 },
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_6": {
"modelIdentifier": "Animal_Sheep",
"position": { "x": 19399.015, "y": 668.300, "z": 15382.826 },
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_7": {
"modelIdentifier": "Animal_Sheep",
"position": { "x": 19397.045, "y": 668.300, "z": 15382.478 },
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_8": {
"modelIdentifier": "Animal_Sheep",
"position": { "x": 19398.030, "y": 668.300, "z": 15382.652 },
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_9": {
"modelIdentifier": "Animal_Sheep",
"position": { "x": 19396.060, "y": 668.300, "z": 15382.304 },
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"MINGOFALLS_CAR_LOOP_1": {
"modelIdentifier": "CLB_Truck01",
"position": { "x": 19400.015, "y": 668.000, "z": 15419.174 },
"rotation": { "x": 0.000, "y": 280.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"MINGOFALLS_CAR_LOOP_2": {
"modelIdentifier": "CLB_Truck01_red",
"position": { "x": 19339.366, "y": 665.800, "z": 15409.366 },
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_10": {
"modelIdentifier": "Rex_Bear",
"position": { "x": 14547.000, "y": 593.300, "z": 10259.000 },
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_11": {
"modelIdentifier": "Rex_Chicken",
"position": { "x": 14497.000, "y": 575.200, "z": 10185.000 },
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_12": {
"modelIdentifier": "Rex_Chicken",
"position": { "x": 14496.308, "y": 575.200, "z": 10185.400 },
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_13": {
"modelIdentifier": "Rex_Chicken",
"position": { "x": 14495.960, "y": 575.200, "z": 10185.600 },
"rotation": { "x": 0.000, "y": 225.000, "z": -3.800 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"REX_TEST_ANINMAL_OBJ_14": {
"modelIdentifier": "Rex_Chicken",
"position": { "x": 14495.253, "y": 575.200, "z": 10186.307 },
"rotation": { "x": 0.000, "y": 225.000, "z": -3.800 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"ELA_DISTILLERY_ADDON_01": {
"modelIdentifier": "CLB_Block01",
"position": { "x": 9323.032, "y": 546.000, "z": 8081.198 },
"rotation": { "x": 0.000, "y": 9.000, "z": 0.000 },
"scale": { "x": 2.000, "y": 2.000, "z": 2.000 }
},
"BIRDTOWN_COCO_ADDON_01": {
"modelIdentifier": "CLB_Block01",
"position": { "x": 13260.374, "y": 570.000, "z": 10031.034 },
"rotation": { "x": 0.000, "y": 20.000, "z": 0.000 },
"scale": { "x": 2.000, "y": 2.000, "z": 2.000 }
},
"ELA_LOCO_WORKS_ADDON_01": {
"modelIdentifier": "CLB_Block01",
"position": { "x": 9389.993, "y": 547.000, "z": 8521.878 },
"rotation": { "x": 0.000, "y": 7.000, "z": 0.000 },
"scale": { "x": 4.000, "y": 1.000, "z": 4.000 }
},
"ELA_LOCO_WORKS_ADDON_02": {
"modelIdentifier": "CLB_Block01",
"position": { "x": 9389.059, "y": 546.700, "z": 8494.895 },
"rotation": { "x": 0.000, "y": 7.000, "z": 0.000 },
"scale": { "x": 4.000, "y": 1.000, "z": 7.000 }
},
"ELA_LOCO_WORKS_ADDON_03": {
"modelIdentifier": "CLB_Block01",
"position": { "x": 9376.000, "y": 546.800, "z": 8418.000 },
"rotation": { "x": 0.000, "y": 8.000, "z": 0.000 },
"scale": { "x": 7.000, "y": 1.000, "z": 7.000 }
},
"ELA_LOCO_WORKS_ADDON_04": {
"modelIdentifier": "Rex_YardHouse",
"position": { "x": 9376.000, "y": 548.100, "z": 8418.000 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"ELA_LOCO_WORKS_ADDON_05": {
"modelIdentifier": "EMB_B525Platform",
"position": { "x": 9374.417, "y": 547.500, "z": 8408.970 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"ELA_LOCO_WORKS_ADDON_06": {
"modelIdentifier": "EMB_B525Platform",
"position": { "x": 9373.722, "y": 547.500, "z": 8404.020 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"ELA_LOCO_WORKS_ADDON_07": {
"modelIdentifier": "EMB_B510Platform",
"position": { "x": 9357.383, "y": 547.500, "z": 8406.318 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
},
"ELA_LOCO_WORKS_ADDON_08": {
"modelIdentifier": "EMB_B510Platform",
"position": { "x": 9358.078, "y": 547.500, "z": 8411.268 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
},
"ELA_LOCO_WORKS_ADDON_09": {
"modelIdentifier": "EMB_B10MPlatform",
"position": { "x": 9390.408, "y": 547.500, "z": 8404.201 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
},
"ELA_LOCO_WORKS_ADDON_10": {
"modelIdentifier": "EMB_B10MPlatform",
"position": { "x": 9398.330, "y": 547.500, "z": 8403.087 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
},
"ELA_LOCO_WORKS_CAR_ADDON_01": {
"modelIdentifier": "CLB_Truck01_blue",
"position": { "x": 9375.119, "y": 548.200, "z": 8411.712 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
},
"ELA_LOCO_WORKS_CAR_ADDON_02": {
"modelIdentifier": "CLB_Truck01_red",
"position": { "x": 9372.149, "y": 548.200, "z": 8412.129 },
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
},
"BIRDTOWN_STATION_BLOCK_20": {
"modelIdentifier": "EMBMidPlatform",
"position": { "x": 12670.523, "y": 568.450, "z": 8710.308 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.010, "z": 1.000 }
},
"BIRDTOWN_STATION_BLOCK_30": {
"modelIdentifier": "EMB_B510Platform",
"position": { "x": 12709.761, "y": 567.900, "z": 8744.825 },
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"BIRDTOWN_STATION_BLOCK_31": {
"modelIdentifier": "EMB_B510Platform",
"position": { "x": 12704.315, "y": 567.900, "z": 8753.211 },
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"BIRDTOWN_STATION_BLOCK_32": {
"modelIdentifier": "EMBPlatformRamp",
"position": { "x": 12695.601, "y": 567.900, "z": 8766.629 },
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_ADDON_01": {
"modelIdentifier": "Rex_water_tower",
"position": { "x": 12644.000, "y": 566.000, "z": 8805.000 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_ADDON_02": {
"modelIdentifier": "Rex_water_tower",
"position": { "x": 12638.554, "y": 566.000, "z": 8813.386 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_ADDON_03": {
"modelIdentifier": "Rex_water_tower",
"position": { "x": 12633.108, "y": 566.000, "z": 8821.772 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_ADDON_04": {
"modelIdentifier": "locust-pin-co",
"position": { "x": 12662.885, "y": 566.000, "z": 8853.029 },
"rotation": { "x": 0.000, "y": 327.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_ADDON_05": {
"modelIdentifier": "roadmaster-office",
"position": { "x": 12638.160, "y": 566.000, "z": 8872.744 },
"rotation": { "x": 0.000, "y": 327.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_WORKER_HOUSE_01": {
"modelIdentifier": "Rex_AM_House_14",
"position": { "x": 12687.028, "y": 566.000, "z": 8826.156 },
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_WORKER_HOUSE_02": {
"modelIdentifier": "Rex_AM_House_15",
"position": { "x": 12697.920, "y": 566.000, "z": 8809.384 },
"rotation": { "x": 0.000, "y": 237.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_WORKER_HOUSE_03": {
"modelIdentifier": "Rex_AM_House_17",
"position": { "x": 12706.089, "y": 566.000, "z": 8796.805 },
"rotation": { "x": 0.000, "y": 237.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_WORKER_HOUSE_04": {
"modelIdentifier": "Rex_AM_House_18",
"position": { "x": 12722.861, "y": 566.000, "z": 8807.697 },
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_WORKER_HOUSE_05": {
"modelIdentifier": "Rex_AM_House_19",
"position": { "x": 12714.692, "y": 566.000, "z": 8820.276 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_WORKER_HOUSE_06": {
"modelIdentifier": "Rex_AM_House_21",
"position": { "x": 12703.800, "y": 566.000, "z": 8837.048 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"NICKBOTTOM_WORKER_HOUSE_07": {
"modelIdentifier": "Rex_AM_House_25",
"position": { "x": 12692.908, "y": 566.100, "z": 8853.820 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
},
"BIRDTOWN_STATION_BLOCK_21": {
"modelIdentifier": "EMBMidPlatform",
"position": { "x": 12692.407, "y": 568.100, "z": 8724.519 },
"rotation": { "x": 1.500, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.000, "z": 1.100 }
},
"BIRDTOWN_STATION_BLOCK_22": {
"modelIdentifier": "EMBMidPlatform",
"position": { "x": 12673.246, "y": 568.450, "z": 8706.115 },
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
"scale": { "x": 1.000, "y": 1.010, "z": 1.000 }
}
},
"splineys": {
"JAMESON_MEATS_01": {
"handler": "StrangeCustoms.FlowyThingBuilder",
"profile": "Railroader Paved Road",
"style": "Road",
"points": [
{
"position": { "x": 12689.000, "y": 567.000, "z": 8777.000 },
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
"width": 10.000
},
{
"position": { "x": 12615.000, "y": 567.000, "z": 8889.000 },
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
"width": 10.000
}
]
}
},
"simpleGraphs": {},
"mandelas": {
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,26 @@
{
"manifestVersion": 1,
"id": "RMROC451.TweaksAndThings",
"name": "RMROC451's Tweaks and Things",
"version": "2.1.8_2025-09-19T02:30:13.3132097Z",
"requires": [
{
"id": "railroader",
"notBefore": "2024.6"
},
{
"id": "railloader",
"notBefore": "1.9.6.14"
},
{
"id": "Zamu.StrangeCustoms",
"notBefore": "1.10.25017.313"
}
],
"assemblies": [ "RMROC451.TweaksAndThings" ],
"mixintos": {
"container:ne-caboose01": "file(mroc-cabeese.json)",
"container:ne-caboose02": "file(mroc-cabeese.json)",
"container:ne-caboose03": "file(mroc-cabeese.json)"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,23 @@
{
"objects": [
{
"$find": [
{
"path": "definition.archetype",
"value": "Caboose"
}
],
"definition": {
"loadSlots": [
{
"$add": {
"maximumCapacity": 8,
"loadUnits": "Quantity",
"requiredLoadIdentifier": "crew-hours"
}
}
]
}
}
]
}

View File

@@ -0,0 +1,13 @@
{
"loads":{
"clb-carSpawner-internal": {
"description": "internalCarSpawner",
"units": "Pounds",
"density": 1,
"unitWeightInPounds": 0.0,
"importable": false,
"payPerQuantity": 0.0,
"costPerUnit": 0.0
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,23 @@
{
"manifestVersion": 5,
"id": "RTM_Objects_Pack",
"name": "RTM Objects Pack",
"version": "5.7",
"Autor": "Rex/Latom/C_L_B/Griz/Alina",
"requires": [
{
"id": "Zamu.StrangeCustoms",
"notBefore": "1.9.0"
}
],
"mixintos": {
"game-graph": [
"file(CLB_LOAD.json)"
]
},
"assemblies": [
"ModularScenery",
"RRCrossing",
"CarSpawner"
]
}

Some files were not shown because too many files have changed in this diff Show More