Jump to content

Drive an cargo train from Sosnowiec Dandowka, via Dąbrowa Górnicza Ząbkowice, to Dąbrowa Górnicza Towarowa, including shunting


Recommended Posts

Posted (edited)
On 12/20/2024 at 11:45 AM, Indiana said:

image.thumb.png.00b93cfe0965ba9f7b71e0d2e282532b.png

I'm ready to go but signal won't change...

The stuff down here won't be of any help completing the scenario, because the bug with departing from DGZ is still prevalent in my test run. I will do more testing soon. I had already typed the whole thing in, so I am sending it anyways.

It seems like, a bunch of shunting routes at Dandowka have disappeared/been removed in the current game version. You could circumvent this issue by changing the signal the players train spawns at, to the SDn_T signal, where the train departs after shunting. You will have to wait for the planned departure time still, and in my trail run the bot 42948 showed up a couple minutes late (15:09) and the signal trigger needed in order to depart, is only created when bot 64948 has reached about halfway the platform. Only then you can call the signaller successfully.

Manipulate the mission.lua file the following way:

Look fore line 20, replace "SDn1_H" with ("TYPO -> SDN_T") CORRECT  -> "SDn_T"

The result should look like this:

 

    PlayerTrainset = SpawnTrainsetOnSignal("Treintje", FindSignal("SDn_T"), 36, false, true, false, true,

 

Please let me know, if this is successful. The trick should work with all three version of the scenario.

 

 

Edited by jeroezie
Corrected a typo
Posted
W dniu 21.12.2024 o 03:49, jeroezie napisał(a):

The stuff down here won't be of any help completing the scenario, because the bug with departing from DGZ is still prevalent in my test run. I will do more testing soon. I had already typed the whole thing in, so I am sending it anyways.

It seems like, a bunch of shunting routes at Dandowka have disappeared/been removed in the current game version. You could circumvent this issue by changing the signal the players train spawns at, to the SDn_T signal, where the train departs after shunting. You will have to wait for the planned departure time still, and in my trail run the bot 42948 showed up a couple minutes late (15:09) and the signal trigger needed in order to depart, is only created when bot 64948 has reached about halfway the platform. Only then you can call the signaller successfully.

Manipulate the mission.lua file the following way:

Look fore line 20, replace "SDn1_H" with "SDN_T".

The result should look like this:

    PlayerTrainset = SpawnTrainsetOnSignal("Treintje", FindSignal("SDn_T"), 36, false, true, false, true,

Please let me know, if this is successful. The trick should work with all three version of the scenario.

It won't work for me... 😞

Posted (edited)
10 hours ago, Indiana said:

It won't work for me... 😞

Could you discribe what happend? And show your missio.lua after the edit please? I also noticed, that I made a typo. The correct signal discription is SDn_T, not SDN_T.

(The whole line of code that I posted was correct, the part where I discribe the instructions was not.)

Edited by jeroezie
Posted
W dniu 22.12.2024 o 23:27, jeroezie napisał(a):

Could you discribe what happend? And show your missio.lua after the edit please? I also noticed, that I made a typo. The correct signal discription is SDn_T, not SDN_T.

(The whole line of code that I posted was correct, the part where I discribe the instructions was not.)

image.thumb.png.289874d8316ebd97615f353a446b151c.png

 

 

-- SimRail - The Railway Simulator
-- LUA Scripting scenario
-- Version: 1.0

require("SimRailCore")

DeveloperMode = function()
    return false
end

StartPosition = { 1142.30, 259.70, 2555.55 }
Sounds = {}
AiTrains = {}
StaticTrains = {}
ScenarioStep = 0
bot_441051_spawned = false

function EarlyScenarioStart()
    StartRecorder()
    PlayerTrainset = SpawnTrainsetOnSignal("Treintje", FindSignal("SDn_T"), 36, false, true, false, true,
        {
            CreateNewSpawnVehicleDescriptor(LocomotiveNames.EU07_096, false),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false,
                "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false,
                "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, true,
                "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, true, FreightLoads_412W_v4.Coal,
                58, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, true, FreightLoads_412W_v4.Coal,
                58, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false,
                FreightLoads_412W.Concrete_slab, 36, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false,
                FreightLoads_412W.Concrete_slab, 36, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3351_5356_394_5, true, FreightLoads_412W_v4.Coal,
                51, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3351_5356_394_5, true, FreightLoads_412W_v4.Coal,
                51, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, true, "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, true, "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, true, "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false,
                "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, true,
                "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false,
                "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false,
                "", 0, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal,
                58, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, true,
                FreightLoads_412W_v4.Coal, 56, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, true,
                FreightLoads_412W_v4.Coal, 56, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, FreightLoads_412W.T_beam,
                32, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, FreightLoads_412W.T_beam,
                32, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal,
                58,
                BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, true, FreightLoads_412W_v4.Coal,
                58, BrakeRegime.P),
            CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, true, FreightLoads_412W_v4.Coal,
                58, BrakeRegime.P),
        })
    PlayerTrainset.SetState(DynamicState.dsStop, TrainsetState.tsDeactivation, true)
    PlayerTrainset.SetPaperTimetable("paper")
    PlayerTrainset.SetTimetable(LoadTimetableFromFile("timetable1.xml"), true)
    PlayerTrainset.SetRadioChannel(5, true)

    SDn_static_scenery_trains()
end

function StartScenario()
    DisplayMessage("StartMission", 32)
    DisplayChatText("StartMission")
end

function OnVirtualDispatcherReady()
    Log("Dispatcher ready!")
    -- Call needed functions
    trdl_SDn_shunting()
    trdl_SDn_departure()
    trdl_SPł()
    trdl_SG()
    trdl_Bn()
    trdl_DG()
    trdl_DGZ_entry()
    trdl_DGZ_shunting()
    trdl_DGHK()
    trdl_Kzl()
end

function trdl_SDn_shunting()
    ScenarioStep = 1
    CreateSignalTrigger(FindSignal("SDn1_Tm2"), 84,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                CreateCoroutine(function()
                    coroutine.yield(CoroutineYields.WaitForVehicleStop, RailstockGetPlayerVehicle())
                    Log("Vehicle has stoppped")
                    CreateCoroutine(function()
                        coroutine.yield(CoroutineYields.WaitForSeconds, 4)
                        Log("Waited 10 seconds")
                        AllowPassingStopSignal("SDn1_Tm2", AllowPassSignal)
                        DisplayChatText(
                            "PermissionPassSignalSDnTm2")
                    end)
                end)
            end
        })

    CreateSignalTrigger(FindSignal("SDn1_Tm1"), 80,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetSwitchPosition("z_sdn_32", false)
                VDSetSwitchPosition("z_sdn_37", false)
                VDSetRoute("SDn1_Tm1", "t1889k", VDOrderType.ManeuverRoute)
                VDSetManualSignalLightsState("SDn_Tm3", SignalLightType.White1, LuaSignalLightState.AlwaysOn)
                VDSetManualSignalLightsState("SDn_Tm3", SignalLightType.Blue, LuaSignalLightState.AlwaysOff)
                AllowPassingStopSignal("SDn_Tm3", AllowPassSignal)
            end
        })

    CreateSignalTrigger(FindSignal("SDn_Tm6"), 48,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetManualSignalLightsState("SDn_Tm3", SignalLightType.White1, LuaSignalLightState.AlwaysOff)
                VDSetManualSignalLightsState("SDn_Tm3", SignalLightType.Blue, LuaSignalLightState.AlwaysOn)
                VDSetRouteWithVariant("SDn_Tm6", "SDn1_H", VDOrderType.ManeuverRoute, {
                    GetMidPointVariant("z_sdn_42", true),
                    GetMidPointVariant("z_SDn_41cd", false),
                    GetMidPointVariant("z_SDn_41ab", true),
                    GetMidPointVariant("z_SDn_38cd", true),
                    GetMidPointVariant("z_SDn_38ab", false)
                })
            end
        })


    -- Spawn bot_24175 and set up its signals
    CreateCoroutine(function()
        coroutine.yield(CoroutineYields.WaitForIngameDateTime, DateTimeCreate(2024, 7, 29, 14, 42, 0))
        Log("Spawning bot 24175")
        SpawnTrainsetOnSignalAsync("bot_24175", FindSignal("SDn_A"), 1000, false, false, true, {
            CreateNewSpawnVehicleDescriptor(LocomotiveNames.EU07_241, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11bmnouz_6151_2170_098_8, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11bmnouz_6151_2170_064_0, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11gmnouz_6151_2170_107_7, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10bmnouz_6151_2071_105_1, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.A9mnouz_6151_1970_214_5, false)
        }, function(trainset)
            AiTrains[1] = trainset
            trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
            trainset.SetTimetable(LoadTimetableFromFile("bot_24175.xml"), false)
        end)

        VDSetRoute("SDn_A", "SDn_N", VDOrderType.TrainRoute)
        VDSetRoute("SDn_N", "SDn_Wkps", VDOrderType.TrainRoute)
    end)

    CreateTrackTrigger(FindTrack("t1868"), 8, -1,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                Log("The player has passed D1 STOP line closed sign and the scenaio will be terminated")
                FinishMission(MissionResultEnum.Failed_NoStopAtStopSignalTransgression)
            end
        })
end

function trdl_SDn_departure()
    bool_bot_42948_arrived_SDn = false

    CreateSignalTrigger(FindSignal("SDn_T"), 300,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                ScenarioStep = 3
                Log("Train is ready for departure")
                SetWeather(WeatherConditionCode.FewClouds, 23, 1000, 35, 10000, 180, 30, 10, false)
            end
        })

    CreateCoroutine(function()
        coroutine.yield(CoroutineYields.WaitForIngameDateTime, DateTimeCreate(2024, 7, 29, 14, 59, 0))
        Log("The time is almost 14:59, spawning bot_42948")
        SpawnTrainsetOnSignalAsync("bot_42948", FindSignal("SPł1_T"), 10, false, false, true, {
            CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN57_009, false)
        }, function(trainset)
            AiTrains[2] = trainset
            trainset.SetState(DynamicState.dsStop, TrainsetState.tsTrain, true)
            trainset.SetTimetable(LoadTimetableFromFile("bot_42948.xml"), false)
        end)

        VDSetRoute("SPł1_T", "SPł1_C", VDOrderType.TrainRoute)

        -- Create signal trigger so the players train can depart only afther arrival of bot_42948
        CreateSignalTrigger(FindSignal("SDn1_D"), 670,
            {
                check = function(trainset)
                    return true
                end,
                result = function(trainset)
                    bool_bot_42948_arrived_SDn = true
                    -- Set this signal clear at the start so it can not case issues later
                    VDSetRoute("SPł1_K", "SPł1_Wkps", VDOrderType.TrainRoute)
                    DisplayChatText("SDnReadyForDepartureConformationRequest")
                end
            })
    end)
end

function trdl_SPł()
    CreateSignalTrigger(FindSignal("SPł1_K"), 200,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DespawnTrainset(AiTrains[1])                              -- Get rid of bot 24175 when at reaches the entry signal of Sosnowiec Południowy
                RemoveSignalTrigger(FindSignal("SPł1_K"), 200)            -- This signal trigger is no longer needed
                VDSetRoute("SPł1_C", "SPł1_Akps", VDOrderType.TrainRoute) -- set signals for bot 42948
                CreateSignalTrigger(FindSignal("SDn_W"), 1800,
                    {
                        check = function(trainset)
                            return true
                        end,
                        result = function(trainset)
                            VDSetRoute("SDn_W", "SDn1_D", VDOrderType.TrainRoute) -- Set entry signal at SDn to clear for train bot 42948 afther it has departed from SPł
                        end
                    })
            end
        })

    CreateSignalTrigger(FindSignal("SPł1_A"), 1500,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                Log("Signal trigger SPł1_A: Clearing signal SPł1_A")
                VDSetRoute("SPł1_A", "SPł1_K", VDOrderType.TrainRoute)
                RemoveSignalTrigger(FindSignal("SPł1_A"), 1500) -- This signal trigger is no longer needed
            end
        })
end

function trdl_SG()
    -- Spawn bot_41126 and set up its signals
    CreateCoroutine(function()
        coroutine.yield(CoroutineYields.WaitForIngameDateTime, DateTimeCreate(2024, 7, 29, 15, 12, 0))
        SpawnTrainsetOnSignalAsync("bot_41126", FindSignal("SG_Y"), 600, false, false, true, {
            CreateNewSpawnVehicleDescriptor(LocomotiveNames.E186_134, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11bmnouz_6151_2170_064_0, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.WRmnouz_6151_8870_191_1, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.A9mnouz_6151_1970_214_5, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.A9mnouz_6151_1970_234_3, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11bmnouz_6151_2170_064_0, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11bmnouz_6151_2170_098_8, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10bmnouz_6151_2071_105_1, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10bmnouz_6151_2071_105_1, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11gmnouz_6151_2170_107_7, false)
        }, function(trainset)
            AiTrains[3] = trainset
            trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
            trainset.SetTimetable(LoadTimetableFromFile("bot_41126.xml"), false)
        end)
        VDSetRoute("SG_R2", "SG_H2", VDOrderType.TrainRoute)
        VDSetRouteWithVariant("SG_Y", "SG_R2", VDOrderType.TrainRoute, {
            GetMidPointVariant("z_SG_52cd", false),
            GetMidPointVariant("z_SG_52ab", false)
        })
        VDSetRoute("SG_H2", "SG_Akps", VDOrderType.TrainRoute)
        Log("Bot 41126 is on its way")
    end)

    -- Create signal trigger that lets the players train enter the station afther the arrival of bot 41126
    CreateSignalTrigger(FindSignal("SG_H2"), 708,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("SG_P", "SG_H5", VDOrderType.TrainRoute)
            end
        })

    -- Delete bot 41126 when before it reaches Będzin
    CreateSignalTrigger(FindSignal("L1_3076"), 500,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DespawnTrainset(AiTrains[3])
                RemoveSignalTrigger(FindSignal("L1_3076"), 500)
            end
        })

    -- Spawn bot_40129 when the time is 15:18
    CreateCoroutine(function()
        coroutine.yield(CoroutineYields.WaitForIngameDateTime, DateTimeCreate(2024, 7, 29, 15, 18, 40))
        Log("Spawning bot_40129")
        SpawnTrainsetOnSignalAsync("bot_40129", FindSignal("L1_3071"), 300, false, false, true, {
            CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN76_006, false)
        }, function(trainset)
            AiTrains[4] = trainset
            trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
            trainset.SetTimetable(LoadTimetableFromFile("bot_40129.xml"), false)
        end)

        CreateSignalTrigger(FindSignal("SG_H5"), 75,
            {
                check = function(trainset)
                    return true
                end,
                result = function(trainset)
                    VDSetRoute("SG_U1", "SG_Xkps", VDOrderType.TrainRoute)
                    VDSetRouteWithVariant("SG_N1", "SG_U1", VDOrderType.TrainRoute, { -- Departure for bot_40129
                        GetMidPointVariant("z_SG_40ab", false),
                        GetMidPointVariant("z_SG_40cd", false),
                        GetMidPointVariant("z_SG_45", false)
                    })
                end
            })
    end)

    CreateSignalTrigger(FindSignal("L1_3071"), 300, {
        check = function(trainset)
            return true
        end,
        result = function(trainset)
            VDSetRoute("SG_B", "SG_N1", VDOrderType.TrainRoute) -- Entry to SG station for any train
        end
    })


    -- Let the player depart from SG afther arrival of bot 40129
    CreateSignalTrigger(FindSignal("SG_N1"), 180, {
        check = function(trainset)
            return true
        end,
        result = function(trainset)
            VDSetRoute("SG_H5", "SG_Akps", VDOrderType.TrainRoute)
        end
    })
end

function trdl_Bn()
    CreateSignalTrigger(FindSignal("L1_3076"), 480,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DespawnTrainset(AiTrains[4]) -- remove bot 40129

                -- set route for player
                VDSetRoute("B_D", "B_Akps", VDOrderType.TrainRoute)
                VDSetRouteWithVariant("B_E2", "B_D", VDOrderType.TrainRoute, {
                    GetMidPointVariant("z_B_12cd", false),
                    GetMidPointVariant("z_B_12ab", false),
                    GetMidPointVariant("z_B_9", false)
                })
                VDSetRoute("B_S", "B_E2", VDOrderType.TrainRoute)

                SetWeather(WeatherConditionCode.OvercastClouds, 20, 1024, 49, 5709, 180, 30.32821, 10, false)

                --Spawn bot_146035 and then clear signals for it
                SpawnTrainsetOnSignalAsync("bot_146035", FindSignal("B_B"), 300, false, false, true, {
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN76_022, false)
                }, function(trainset)
                    AiTrains[5] = trainset
                    trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
                end)

                VDSetRoute("B_B", "B_K1", VDOrderType.TrainRoute)
                VDSetRoute("B_K1", "B_Rkps", VDOrderType.TrainRoute)
            end
        })
end

function trdl_DG()
    CreateSignalTrigger(FindSignal("L1_3036"), 550,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                ScenarioStep = 15
                VDSetRouteWithVariant("DG_D", "DG_C2", VDOrderType.TrainRoute, {
                })
                VDSetRouteWithVariant("DG_P", "DG_D", VDOrderType.TrainRoute, {
                    GetMidPointVariant("z438", false),
                    GetMidPointVariant("z439", false)
                })

                DespawnTrainset(AiTrains[5]) -- Remove bot 146035

                -- Spawn bot 40629 and make signal triggers for it
                SpawnTrainsetOnSignalAsync("bot_40629", FindSignal("L1_2981"), 840, false, false, true, {
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN57_1316, false),
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN57_1219, false)
                }, function(trainset)
                    AiTrains[6] = trainset
                    trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
                    trainset.SetTimetable(LoadTimetableFromFile("bot_40629.xml"), false)
                end)

                CreateSignalTrigger(FindSignal("L1_2983"), 300,
                    {
                        check = function(trainset)
                            return true
                        end,
                        result = function(trainset)
                            VDSetRoute("DG_A", "DG_N1", VDOrderType.TrainRoute)
                            VDSetRoute("DG_N1", "DG_O_12kps", VDOrderType.TrainRoute)
                        end
                    })
            end
        })

    CreateSignalTrigger(FindSignal("DG_P"), 600,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DG_C2", "DG_Bkps", VDOrderType.TrainRoute)
                SetWeather(WeatherConditionCode.ModerateRain, 20, 1000, 50, 7846, 180, 30, 10, false)
            end
        })
end

function trdl_DGZ_entry()
    CreateSignalTrigger(FindSignal("L1_2952"), 1088,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DZ_J", "DZ_C13", VDOrderType.TrainRoute)
                VDSetRoute("DZ_X", "DZ_J", VDOrderType.TrainRoute)
                DespawnTrainsets(false)                                -- Remove old bots but keep the players train

                VDSetRoute("DZ_S102", "DZ_L1", VDOrderType.TrainRoute) -- Clear first 2 signal for bot_42128 already
                VDSetRoute("DZ_L1", "DZ_D", VDOrderType.TrainRoute)

                Log("Spawning_shunting_locomotive_DGZ")
                SpawnTrainsetOnSignalAsync("bot_shunting_locomotive_DGZ", FindSignal("DZ_Tm4"), 200, true, false, true, {
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.Ty2_540, false), --E6ACTadb_027 --Ty2_540
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635283_3, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635283_3, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635283_3, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Ballast, 58, BrakeRegime.P),
                }, function(trainset)
                    AiTrains[9] = trainset
                    trainset.SetState(DynamicState.dsStop, TrainsetState.tsShunting, true)
                end)

                RemoveSignalTrigger(FindSignal("L1_2952"), 1088)
            end
        })

    -- Spawn bot_14127 when approching DGZ
    CreateSignalTrigger(FindSignal("DZ_X"), 320,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                CreateCoroutine(function()
                    coroutine.yield(CoroutineYields.WaitForIngameDateTime,
                        DateTimeCreate(2024, 7, 29, 15, 36, 0))
                    SpawnTrainsetOnSignalAsync("bot_14127", FindSignal("DZ_B"), 1040, false, false, true, {
                        CreateNewSpawnVehicleDescriptor(LocomotiveNames.EP08_013, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11bmnouz_6151_2170_098_8, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11bmnouz_6151_2170_064_0, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B11gmnouz_6151_2170_107_7, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.WRmnouz_6151_8870_191_1, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.A9mnouz_6151_1970_234_3, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.A9mnouz_6151_1970_214_5, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10bmnouz_6151_2071_105_1, false)
                    }, function(trainset)
                        AiTrains[8] = trainset
                        trainset.SetState(DynamicState.dsAccCoast, TrainsetState.tsTrain, true)
                        trainset.SetTimetable(LoadTimetableFromFile("bot_14127.xml"), false)
                    end)

                    VDSetRoute("DZ_G11", "DZ_O", VDOrderType.TrainRoute)
                    VDSetRoute("DZ_B", "DZ_G11", VDOrderType.TrainRoute)
                    Log("Spawned bot 14127")
                    RemoveSignalTrigger(FindSignal("DZ_X"), 1088)

                    CreateSignalTrigger(FindSignal("L1_2941"), 12,
                        {
                            check = function(trainset)
                                return true
                            end,
                            result = function(trainset)
                                DespawnTrainset(AiTrains[8])
                                RemoveSignalTrigger(FindSignal("L1_2941"), 12)
                                Log("Despawned bot 14127")
                            end
                        })
                end)
            end
        })


    CreateSignalTrigger(FindSignal("DZ_J"), 150,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                CreateCoroutine(function()
                    coroutine.yield(CoroutineYields.WaitForIngameDateTime, DateTimeCreate(2024, 7, 29, 15, 40, 0))
                    Log("Spawn bot_42128")
                    SpawnTrainsetOnSignalAsync("bot_42128", FindSignal("DZ_S102"), 600, false, false, true, {
                        CreateNewSpawnVehicleDescriptor(LocomotiveNames.EP07_174, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nou_5051_2008_607_7, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.Adnu_5051_1900_189_7, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.Adnu_5051_1908_095_8_, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nou_5051_2008_607_7, false),
                        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nou_5051_2008_607_7, false)
                    }, function(trainset)
                        AiTrains[7] = trainset
                        trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
                    end)
                    VDSetRoute("DZ_D", "DZ_E2kps", VDOrderType.TrainRoute)
                end)

                ScenarioStep = 20
                RemoveSignalTrigger(FindSignal("DZ_J"), 150)
                Log("ScenarioStep: " .. ScenarioStep .. ".")
            end
        })

    -- Release train bot_14127 when the players train is out of the way
    CreateSignalTrigger(FindSignal("DZ_C13"), 600,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DZ_O", "DZ_Wkps", VDOrderType.TrainRoute)
                Log("Exit signal for 14127 cleared")
                RemoveSignalTrigger(FindSignal("DZ_C13"), 600)
            end
        })
end

function trdl_DGZ_shunting()
    bot_42128_departed_DGZ_DGZ = false

    CreateSignalTrigger(FindSignal("DZ_C13"), 100, -- Detect the arrival of the players train inside DGZ DZA
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DisplayMessage("DGZrun_locomotive_around", 32)
                DisplayChatText("DGZrun_locomotive_around")
                ScenarioStep = 21
                Log("ScenarioStep changed to:" .. ScenarioStep)
                spawn_bot_40178()
                PlayerTrainset.SetTimetable(LoadTimetableFromFile("timetable2.xml"), false)
            end
        })

    CreateSignalTrigger(FindSignal("L1_2900D"), 1150, -- Waith for bot_42128 to clear the shuting track DZ_E2kps
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                bot_42128_departed_DGZ_DGZ = true

                if (ScenarioStep == 22) then
                    VDSetRoute("DZ_C13", "DZ_E2kps", VDOrderType.ManeuverRoute) -- Only set shunting signal for the players locomotive when he/she has called the dispatcher
                end

                DespawnTrainset(AiTrains[7]) --bot_42128
                RemoveSignalTrigger(FindSignal("L1_2900D"), 1150)

                --Get rid of 40178 when it has departed DGZ DZA and then call spawn function for 4130
                CreateSignalTrigger(FindSignal("L1_2900D"), 1150,
                    {
                        check = function(trainset)
                            return true
                        end,
                        result = function(trainset)
                            DespawnTrainset(AiTrains[10])
                            Log("Despawned bot 40178, calling function spawn_bot_4130().")
                            RemoveSignalTrigger(FindSignal("L1_2900D"), 1150)
                            spawn_bot_4130()
                        end
                    })
            end
        })

    CreateTrackTrigger(FindTrack("t10827"), 64, 1,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                ScenarioStep = 23 -- Prevent the signal C13 from being clearad again by the player calling the dispatcher via the radio
            end
        })


    CreateSignalTrigger(FindSignal("DZ_G13"), 300, {
        check = function(trainset)
            return true
        end,
        result = function(trainset)
            spawn_bot_441051()
        end
    })
end

function DGZ_departure()
    CreateSignalTrigger(FindSignal("DZ_K"), 20, -- Waith for arrival of bot_4130
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                ScenarioStep = 24
                DisplayChatText(
                    "DGZReadyForDepartureConformationRequest")
            end
        })

    CreateSignalTrigger(FindSignal("L1_2900D"), 400,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DespawnTrainset(AiTrains[12]) -- Get rid of bot_4130
            end
        })
end

function trdl_DGHK()
    CreateSignalTrigger(FindSignal("DGHK_G"), 1700,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DGHK_G", "DGHK_Nkps", VDOrderType.TrainRoute)
                DespawnTrainset(AiTrains[11]) --Despawn 244049
                spawn_bot_223412()
            end
        })

    CreateSignalTrigger(FindSignal("DS_Z"), 1700,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DespawnTrainsets(false)
                SetWeather(WeatherConditionCode.OvercastClouds, 19, 1000, 31, 9556, 180, 31.09402, 10, false)
            end
        })


    CreateSignalTrigger(FindSignal("DS_Z"), 1300,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                trdl_DS_and_DW()
            end
        })
end

function trdl_DS_and_DW()
    SetWeather(WeatherConditionCode.BrokenClouds, 25, 1000, 30, 10000, 180, 30, 10, false)

    --Provide entry to DS station for the players train
    VDSetRouteWithVariant("DS_Z", "DS_E", VDOrderType.TrainRoute, {
        GetMidPointVariant("z_DS_77", true),
        GetMidPointVariant("z_DS_71", false),
        GetMidPointVariant("z_DS_67", false)
    })

    --Spawn bot_42950
    VDSetCrossingState("L62_70.398_C", false)
    SpawnTrainsetOnSignalAsync("bot_42950", FindSignal("DS_W"), 500, true, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.ET22_836, false),
        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10ou_5051_2000_608_3, false),
        CreateNewSpawnVehicleDescriptor(PassengerWagonNames.Adnu_5051_1908_095_8_, false)
    }, function(trainset)
        AiTrains[16] = trainset
        trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
        trainset.SetTimetable(LoadTimetableFromFile("bot_42950.xml"), false)
    end)
    VDSetRoute("DS_W", "DS_F", VDOrderType.TrainRoute)

    --Spawn bot_24947
    SpawnTrainsetOnSignalAsync("bot_24947", FindSignal("DS_A"), 200, true, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN57_1051, false),
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN57_009, false)
    }, function(trainset)
        AiTrains[17] = trainset
        trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
        trainset.SetTimetable(LoadTimetableFromFile("bot_24947.xml"), false)
    end)
    VDSetRoute("DS_A", "DS_Q", VDOrderType.TrainRoute)

    --Afther arrival of 42950, let 24947 depart
    CreateSignalTrigger(FindSignal("DS_F"), 450,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DS_Q", "DS_Wkps", VDOrderType.TrainRoute)
            end
        })


    --Whan 24947 has arrived at DS, let 42950 depart from DS and 443945 depart from DGW
    CreateSignalTrigger(FindSignal("DS_Q"), 520,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                CreateCoroutine(function()
                    coroutine.yield(CoroutineYields.WaitForIngameDateTime, DateTimeCreate(2024, 7, 29, 16, 17, 30))
                    VDSetSwitchPosition("z_DS_42", true)
                    VDSetSwitchPosition("z_DS_41", true)
                    VDSetSwitchPosition("z_DS_44a", false)
                    VDSetSwitchPosition("z_DS_44d", true)
                    VDSetSwitchPosition("z_DS_45b", true)
                    VDSetSwitchPosition("z_DS_45d", false)
                    VDSetSwitchPosition("z_DS_47c", true)
                    VDSetSubstituteSignal("DS_F", true)

                    DisplayChatText("DS42950Sz")
                    DisplayChatText("Driver42950Sz")

                    RemoveSignalTrigger(FindSignal("DS_Q"), 520)

                    CreateTrackTrigger(FindTrack("t1662"), 5, -1,
                        {
                            check = function(trainset)
                                return true
                            end,
                            result = function(trainset)
                                VDCancelSubstituteSignal("DS_F")
                            end
                        })

                    CreateCoroutine(function()
                        coroutine.yield(CoroutineYields.WaitForIngameDateTime,
                            DateTimeCreate(2024, 7, 29, 16, 18, 0))
                        spawn_bot_443945()
                    end)
                end)
            end
        })

    --When 42950 has arrived at DW, clear the players train
    CreateSignalTrigger(FindSignal("DW_P"), 970,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                -- Departure from DS
                VDSetSwitchPosition("z_DS_42", true)
                VDSetSwitchPosition("z_DS_41", true)
                VDSetSwitchPosition("z_DS_44a", true)
                VDSetSwitchPosition("z_DS_44c", true)
                VDSetSwitchPosition("z_DS_46", true)
                VDSetSubstituteSignal("DS_E", true)
                DisplayChatText("DSplayerSz")
                -- Arrival at DGW
                VDSetRoute("DW_N", "DW_Xkps", VDOrderType.TrainRoute)
                VDSetRoute("DW_A", "DW_N", VDOrderType.TrainRoute)
                -- Delete 42950
                DespawnTrainset(AiTrains[16])
            end
        })

    --Afther departure of 42950, let 443945 enter DS
    CreateSignalTrigger(FindSignal("DW_A"), 712,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRouteWithVariant("DS_B", "DS_U", VDOrderType.TrainRoute, {
                    GetMidPointVariant("z_DS_41", false),
                    GetMidPointVariant("z_DS_45ab", false),
                    GetMidPointVariant("z_DS_45cd", false)
                })
                RemoveSignalTrigger(FindSignal("DW_A"), 712)
            end
        })

    --Provide trainroute for 42950 when 443945 has cleared the switches
    CreateSignalTrigger(FindSignal("DS_B"), 580,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DW_A", "DW_P", VDOrderType.TrainRoute)
            end
        })

    --When 24947 has deaprted from DS, clear 443945
    CreateSignalTrigger(FindSignal("SKz_A"), 2730,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DS_U", "DS_Zkps", VDOrderType.TrainRoute)
            end
        })

    CreateSignalTrigger(FindSignal("DW_N"), 700,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DespawnTrainset(AiTrains[17])
                Log("Spawning_shunting_locomotive_DW")
                SpawnTrainsetOnSignalAsync("bot_shunting_locomotive_DW", FindSignal("DW_Tm26"), 500, true, false, true, {
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.Ty2_540, false), --E6ACTadb_027 --Ty2_540
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635283_3, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635283_3, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635283_3, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                    CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false,
                        FreightLoads_412W_v4.Coal, 1, BrakeRegime.P),
                }, function(trainset)
                    AiTrains[20] = trainset
                    trainset.SetState(DynamicState.dsStop, TrainsetState.tsShunting, true)
                end)
                VDSetRoute("DW_Tm26", "DW_Tm9", VDOrderType.ManeuverRoute)
                VDSetRoute("DW_Tm9", "t1936k", VDOrderType.ManeuverRoute)

                --Spawn bot_24179
                SpawnTrainsetOnSignalAsync("bot_24179", FindSignal("Sl_H1"), 50, true, false, true, {
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.EU07_005, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.A9ou_5051_1908_136_0, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.A9ou_5151_1970_003_4, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10ou_5151_2070_829_9, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nouz_5151_2071_102_0, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10ou_5151_2070_829_9, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nouz_5151_2071_102_0, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10ou_5151_2070_829_9, false),
                    CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nouz_5151_2071_102_0, false)
                }, function(trainset)
                    AiTrains[18] = trainset
                    trainset.SetState(DynamicState.dsAccSlow, TrainsetState.tsTrain, true)
                end)
                VDSetRoute("Sl_H1", "Sl_Jkps", VDOrderType.TrainRoute)
                VDSetRoute("DW_T", "DW_F", VDOrderType.TrainRoute)

                VDSetRoute("Sl_K", "Sl_E2", VDOrderType.TrainRoute) --bot_42950
                VDSetRoute("Sl_E2", "Sl_Bkps", VDOrderType.TrainRoute)
            end
        })
end

function trdl_Kzl()
    CreateSignalTrigger(FindSignal("Kzl_C"), 550,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                DespawnTrainsets(false)

                -- Use some cheats to let the player pass signal Kzl_C because setting up train route here is not (yet) possible
                VDSetSwitchPosition("z_Kzl_8", true)
                VDSetSwitchPosition("z_Kzl_10", true)
                VDSetSwitchPosition("z_Kzl_11", true)
                VDSetSwitchPosition("z_Kzl_12", false)
                VDSetSwitchPosition("z_Kzl_13", true)
                AllowPassingStopSignal("Kzl_C", AllowPassSignal)
                VDSetManualSignalLightsState("Kzl_C", SignalLightType.Orange1, LuaSignalLightState.AlwaysOn)
                VDSetManualSignalLightsState("Kzl_C", SignalLightType.Red1, LuaSignalLightState.AlwaysOff)
                VDSetManualSignalLightsState("Kzl_C", SignalLightType.Green1, LuaSignalLightState.AlwaysOn)
                VDSetManualSignalLightsState("Kzl_C", SignalLightType.OrangeStripe, LuaSignalLightState.AlwaysOn)
                VDSetManualSignalLightsState("Kzl_ToC", SignalLightType.Orange1, LuaSignalLightState.Flashing)

                --Spawn scenery train
                Log("Calling function spawn_scenery_train_Kzl()")
                spawn_scenery_train_Kzl()

                --Clear signal for scenery train when players train is out of the way
                CreateTrackTrigger(FindTrack("t23916"), 88, 1,
                    {
                        check = function(trainset)
                            return true
                        end,
                        result = function(trainset)
                            VDSetRoute("Kzl_J", "Kzl_Bkps", VDOrderType.TrainRoute)
                        end
                    })
            end
        })

    CreateTrackTrigger(FindTrack("t23917"), 205, 1,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                Log("Setting signal for scenery train Kzl")
                VDSetRoute("Kzl_J", "Kzl_Bkps", VDOrderType.TrainRoute)
            end
        })


    CreateSignalTrigger(FindSignal("DTA_E2"), 1800,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                Log("spawn_bot_414062")
                spawn_bot_414062()
            end
        })

    CreateSignalTrigger(FindSignal("DTA_E2"), 950,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                Log("Finish line")
                FinishMission(MissionResultEnum.Success)
            end
        })
end

function OnPlayerRadioCall(trainsetInfo, radio_SelectionCall)
    Log("Call pressed in " ..
        trainsetInfo.name ..
        "; Call type: " ..
        tostring(radio_SelectionCall) ..
        "; Channel: " ..
        RailstockGetPlayerTrainset().GetCurrentlyUsedChannel() .. "; Scenario step: " .. ScenarioStep .. ".")

    if (ScenarioStep == 1) then
        Log("Setting up shunting route")
        VDSetManualSignalLightsState("SDn1_Tm2", SignalLightType.Blue, LuaSignalLightState.AlwaysOff)
        VDSetRoute("SDn1_H", "SDn1_Tm2", VDOrderType.ManeuverRoute)
        DisplayChatText("SDnShuntRequestRecieved")
        ScenarioStep = 2
    end


    if (ScenarioStep == 3 and bool_bot_42948_arrived_SDn == true) then
        VDSetRoute("SDn_T", "SDn_Wkps", VDOrderType.TrainRoute)  -- Player train departure
        VDSetRoute("SDn1_D", "SDn_Akps", VDOrderType.TrainRoute) -- bot_42948 departure
        Log("Prepered signal triggers for players train from SDn towards SPł")

        CreateSignalTrigger(FindSignal("SPł1_A"), 1500,
            {
                check = function(trainset)
                    return true
                end,
                result = function(trainset)
                    Log("Signal trigger SPł1_A: Clearing signal SPł1_A")
                    VDSetRoute("SPł1_A", "SPł1_K", VDOrderType.TrainRoute)
                    SetWeather(WeatherConditionCode.BrokenClouds, 21, 1000, 35, 8923, 180, 30, 10,
                        false)
                    DespawnTrainset(AiTrains[2])
                    DespawnTrainset(StaticTrains[1])
                    DespawnTrainset(StaticTrains[2])
                    VDSetRoute("SDn_Z", "SDn1_H", VDOrderType.TrainRoute)
                    RemoveSignalTrigger(FindSignal("SPł1_A"), 1500) -- This signal trigger is no longer needed
                    Log("Signal trigger SPł1_A: Despawed bots at SDn and changed weather")
                end
            })

        ScenarioStep = 4
        DisplayChatText("SDnReadyForDepartureConformationRecieved")
    end

    if (ScenarioStep == 21 or ScenarioStep == 22) then
        if (bot_42128_departed_DGZ_DGZ == true) then
            VDSetRoute("DZ_C13", "DZ_E2kps", VDOrderType.ManeuverRoute)
            DisplayChatText("DGZShuntRequestRecievedNow")
        else
            ScenarioStep = 22 -- Setting scenario step to 22 will tell the signal trigger for signal L1_2900D to set up shunting route for the players locomotive
            DisplayChatText("DGZShuntRequestRecievedWaith")
        end

        CreateSignalTrigger(FindSignal("DZ_Tm1"), 100, {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DZ_Tm12", "DZ_P", VDOrderType.ManeuverRoute)
                VDSetRoute("DZ_Tm1", "DZ_Tm12", VDOrderType.ManeuverRoute)
            end
        })

        CreateSignalTrigger(FindSignal("DZ_Tm12"), 600,
            {
                check = function(trainset)
                    return true
                end,
                result = function(trainset)
                    Log("Waiting until 15:52 to spawn bot 244049")
                    CreateCoroutine(function()
                        coroutine.yield(CoroutineYields.WaitForIngameDateTime,
                            DateTimeCreate(2024, 7, 29, 15, 52, 0))
                        spawn_bot_244049_40131()
                    end)
                end
            })


        CreateSignalTrigger(FindSignal("DZ_J"), 200,
            { -- Send the players locomotive back to the platform
                check = function(trainset)
                    return true
                end,
                result = function(trainset)
                    VDSetRoute("DZ_J", "DZ_C13", VDOrderType.ManeuverRoute)
                    SetWeather(WeatherConditionCode.LightRain, 21, 1000, 45, 8171, 180, 30, 10, false)

                    CreateCoroutine(function()
                        coroutine.yield(CoroutineYields.WaitForIngameDateTime,
                            DateTimeCreate(2024, 7, 29, 15, 58, 0))
                        VDSetRoute("DZ_O", "DZ_Wkps", VDOrderType.TrainRoute) -- Exit signal for bot 40131, clear 1 minute before planned arrival time
                    end)

                    -- Actions for bot_shunting_locomotive_DGZ
                    VDSetRouteWithVariant("DZ_Tm5", "DZ_Tm13", VDOrderType.ManeuverRoute, {
                        GetMidPointVariant("z_DZ_13ab", true),
                        GetMidPointVariant("z_DZ_13cd", false),
                        GetMidPointVariant("z_DZ_14", true),
                        GetMidPointVariant("z_DZ_15", true),
                        GetMidPointVariant("z_DZ_16", true),
                        GetMidPointVariant("z_DZ_21", true),
                        GetMidPointVariant("z_DZ_24", false)
                    })
                    VDSetRoute("DZ_Tm4", "DZ_Tm5", VDOrderType.ManeuverRoute)
                end
            })
    end

    if (ScenarioStep == 24) then
        VDSetRoute("DZ_P", "DZ_U105", VDOrderType.TrainRoute)
        VDSetRoute("DZ_G13", "DZ_P", VDOrderType.TrainRoute)
        VDSetRouteWithVariant("DZ_U105", "DZ_Ykps", VDOrderType.TrainRoute, {
            GetMidPointVariant("z_DZ_117ab", true),
            GetMidPointVariant("z_DZ_117cd", true),
            GetMidPointVariant("z_DZ_118", true),
            GetMidPointVariant("z_DZ_119", false),
            GetMidPointVariant("z_DZ_252", false)
        })
        DisplayChatText("DGZgoodJourney")
    end
end --End of function OnPlayerRadioCall()

function spawn_bot_40178()
    Log("Spawning bot 40178")
    CreateCoroutine(function()
        coroutine.yield(CoroutineYields.WaitForIngameDateTime, DateTimeCreate(2024, 7, 29, 15, 50, 20))
        Log("Waited until 15:51 to spawn bot_40178")
        SpawnTrainsetOnSignalAsync("bot_40178", FindSignal("L1_2966"), 600, false, false, true, {
            CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN76_006, false)
        }, function(trainset)
            AiTrains[10] = trainset
            trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
            trainset.SetTimetable(LoadTimetableFromFile("bot_40178.xml"), false)
        end)
        VDSetRoute("DZ_X", "DZ_K", VDOrderType.TrainRoute)
        VDSetRoute("DZ_K", "DZ_C12", VDOrderType.TrainRoute)
        VDSetCrossingState("L1_296,589_A", false)
    end)
end

function spawn_bot_244049_40131()
    Log("Spawning bot_244049")
    SpawnTrainsetOnSignalAsync("bot_244049", FindSignal("DZ_A"), 650, false, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.E6ACTadb_027, false),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.UACS_3351_9307_587_6, false, "", 50, BrakeRegime.P),
    }, function(trainset)
        AiTrains[11] = trainset
        trainset.SetState(DynamicState.dsDecSlow, TrainsetState.tsTrain, true)
    end)

    VDSetRoute("DZ_A", "DZ_G9", VDOrderType.TrainRoute)

    CreateSignalTrigger(FindSignal("DZ_G9"), 40, -- Spawn and set entry signal for bot_40131 when bot 244049 has arrived at DGZ DZA
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DZ_B", "DZ_G11", VDOrderType.TrainRoute)     -- Entry for bot_40131
                VDSetRoute("DZ_G11", "DZ_O", VDOrderType.TrainRoute)     -- Clear bot 40131 to the platform
                VDSetRoute("DZ_C12", "DZ_E2kps", VDOrderType.TrainRoute) -- Exit for bot_40178

                SpawnTrainsetOnSignalAsync("bot_40131", FindSignal("DZ_B"), 800, false, false, true, {
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN76_006, false),
                    CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN76_006, false)
                }, function(trainset)
                    AiTrains[14] = trainset
                    trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
                    trainset.SetTimetable(LoadTimetableFromFile("bot_40131.xml"), false)
                end)

                --Trigger for deletion of bot 40131
                CreateSignalTrigger(FindSignal("L1_2955"), 362,
                    {
                        check = function(trainset)
                            return true
                        end,
                        result = function(trainset)
                            DespawnTrainset(AiTrains[14])
                        end
                    })
            end
        })
end

function spawn_bot_441051()
    if (bot_441051_spawned == false) then
        bot_441051_spawned = true -- Prevent this function from executing more then once
        Log("Called: function spawn_bot_441051()")
        CreateCoroutine(function()
            coroutine.yield(CoroutineYields.WaitForIngameDateTime,
                DateTimeCreate(2024, 7, 29, 16, 2, 55))
            Log("Spawing bot 441051")
            SpawnTrainsetOnSignalAsync("bot_441051", FindSignal("DZ_A"), 1340, false, false, true, {
                CreateNewSpawnVehicleDescriptor(LocomotiveNames.ET22_243, false),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    40,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainer1x20",
                    40,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    40,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    40,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    40,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainer1x20",
                    40,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    50,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    50,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    50,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainer1x40",
                    50,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    50,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    50,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    60,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    60,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    60,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    60,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    60,
                    BrakeRegime.P),
                CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "RandomContainerAll",
                    60,
                    BrakeRegime.P)
            }, function(trainset)
                AiTrains[13] = trainset
                trainset.SetState(DynamicState.dsDecSlow, TrainsetState.tsTrain, true)
            end)

            VDSetRouteWithVariant("DZ_N6", "DZ_U202", VDOrderType.TrainRoute, {
                GetMidPointVariant("z_DZ_55", true),
                GetMidPointVariant("z_DZ_56", true),
                GetMidPointVariant("z_DZ_102", false),
                GetMidPointVariant("z_DZ_104", false),
                GetMidPointVariant("z_DZ_105", true),
                GetMidPointVariant("z_DZ_106", true),
                GetMidPointVariant("z_DZ_201ab", true),
                GetMidPointVariant("z_DZ_201cd", true),
                GetMidPointVariant("z_DZ_202", false),
                GetMidPointVariant("z_DZ_204", false),
                GetMidPointVariant("z_DZ_205", false)
            })
            VDSetRoute("DZ_F", "DZ_N6", VDOrderType.TrainRoute)
            VDSetRoute("DZ_A", "DZ_F", VDOrderType.TrainRoute)
            DisplayChatText("DGZtrain441051Siding")
            DisplayChatText("Driver441051Siding")

            CreateSignalTrigger(FindSignal("DZ_U202"), 100,
                {
                    check = function(trainset)
                        return true
                    end,
                    result = function(trainset)
                        CreateSignalTrigger(FindSignal("DZ_Z"), 800,
                            {
                                check = function(trainset)
                                    return true
                                end,
                                result = function(trainset)
                                    VDSetRoute("DZ_S102", "DZ_K", VDOrderType.TrainRoute) -- routing for bot_223412 when bot_441051 is out of the way
                                    VDSetRoute("DZ_K", "DZ_C10", VDOrderType.TrainRoute)
                                end
                            })
                    end
                })
        end)
    else
        Log("441051 has already spawned, not doing it again.")
    end
end

function spawn_bot_4130()
    Log("Waiting until 16:04 to spawn bot 4130")
    CreateCoroutine(function()
        coroutine.yield(CoroutineYields.WaitForIngameDateTime,
            DateTimeCreate(2024, 7, 29, 16, 3, 32))
        SpawnTrainsetOnSignalAsync("bot_4130", FindSignal("DZ_X"), 500, false, false,
            true,
            {
                CreateNewSpawnVehicleDescriptor(LocomotiveNames.ED250_018, false)
            }, function(trainset)
                AiTrains[12] = trainset
                trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
            end)
        VDSetRoute("DZ_C12", "DZ_E2kps", VDOrderType.TrainRoute)
        VDSetRoute("DZ_K", "DZ_C12", VDOrderType.TrainRoute)
        VDSetRoute("DZ_X", "DZ_K", VDOrderType.TrainRoute)
        Log("Spawned bot 4130")

        DGZ_departure() --Call departure function, the signal trigger activated when bot 4130 reaches signal DZ_K
    end)
end

function spawn_bot_223412()
    VDSetRoute("DGHK_L", "DGHK_Hkps", VDOrderType.TrainRoute)
    Log("Spawning bot 223412")
    SpawnTrainsetOnSignalAsync("bot_223412", FindSignal("DGHK_L"), 250, false, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.EU07_068, false),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5351_989_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3151_5349_475_9, false, FreightLoads_412W_v4.Coal, 23,
            BrakeRegime.G)
    }, function(trainset)
        AiTrains[15] = trainset
        trainset.SetState(DynamicState.dsAccFast, TrainsetState.tsTrain, true)
    end)


    CreateTrackTrigger(FindTrack("t25653"), 120, 1,
        {
            check = function(trainset)
                return true
            end,
            result = function(trainset)
                VDSetRoute("DZ_Z", "DZ_S102", VDOrderType.TrainRoute)
            end
        })
end

function spawn_bot_443945()
    SpawnTrainsetOnSignalAsync("bot_443945", FindSignal("DW_H"), 12, false, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.ET22_911, false),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3947_512_5, false, "T_beam", 60,
            BrakeRegime.P)
    }, function(trainset)
        StaticTrains[17] = trainset
        trainset.SetState(DynamicState.dsAccSlow, TrainsetState.tsTrain, true)
    end)
    Log("Clearing 443945")
    VDSetRoute("DW_H", "DW_Bkps", VDOrderType.TrainRoute)
    DisplayChatText("DGW443945lefttrack")
end

function spawn_scenery_train_Kzl()
    SpawnTrainsetOnSignalAsync("scenery_train_Kzl", FindSignal("Kzl_J"), 2400, false, false, true, {
            CreateNewSpawnVehicleDescriptor(LocomotiveNames.Ty2_540, false), --EU07_085 --Ty2_540
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10ou_5051_2000_608_3, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nou_5051_2008_607_7, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.Adnu_5051_1900_189_7, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.Adnu_5051_1908_095_8_, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10ou_5051_2000_608_3, false),
            CreateNewSpawnVehicleDescriptor(PassengerWagonNames.B10nou_5051_2008_607_7, false)
        },
        function(trainset)
            AiTrains[21] = trainset
            trainset.SetState(DynamicState.dsDecSlow, TrainsetState.tsTrain, true)
        end)
    Log("scenery_train_Kzl spawned")
end

function spawn_bot_414062()
    SpawnTrainsetOnSignalAsync("bot_441051", FindSignal("DTA_C2"), 1200, false, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.ET25_002, false),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Pipeline", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Pipeline", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Sheet_metal", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Sheet_metal", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Sheet_metal", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Sheet_metal", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Sheet_metal", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Pipeline", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Pipeline", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Pipeline", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Pipeline", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Sheet_metal", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "T_beam", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.SGS_3151_3944_773_6, false, "Steel_circle", 60,
            BrakeRegime.P)
    }, function(trainset)
        StaticTrains[22] = trainset
        trainset.SetState(DynamicState.dsAccSlow, TrainsetState.tsTrain, true)
    end)
    VDSetRouteWithVariant("DTA_C2", "DTA_Akps", VDOrderType.TrainRoute, {
        GetMidPointVariant("z_DTA_5", false),
        GetMidPointVariant("z_DTA_4", false),
        GetMidPointVariant("z_DTA_1", false)
    })
    Log("Bot 414062 spawned")
end

function SDn_static_scenery_trains()
    -- Spawn static scenery train at Dandowka
    SpawnTrainsetOnSignalAsync("static_train_424046", FindSignal("SDn1_J"), 20, false, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.ET22_644, false),
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.ET22_256, false),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, true, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames._441V_31516635512_5, false, FreightLoads_412W_v4.Coal, 63,
            BrakeRegime.G),
    }, function(trainset)
        StaticTrains[1] = trainset
        trainset.SetState(DynamicState.dsStop, TrainsetState.tsTrain, true)
    end)

    SpawnTrainsetOnSignalAsync("static_train_464026", FindSignal("SDN1_F"), 32, false, false, true, {
        CreateNewSpawnVehicleDescriptor(LocomotiveNames.E6ACTa_016, false),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_177_6, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
        CreateNewSpawnFullVehicleDescriptor(FreightWagonNames.EAOS_3356_5300_118_0, false, FreightLoads_412W_v4.Coal, 60,
            BrakeRegime.G),
    }, function(trainset)
        StaticTrains[2] = trainset
        trainset.SetState(DynamicState.dsStop, TrainsetState.tsTrain, true)
    end)
end

function AllowPassSignal()
    return true
end

 

 

 

First I uncouple wagons and then I do all things following instruction:

 

Posted (edited)

Now it works, but anyway is needed to wait for signal till 15:06 even if loco is ready.

Edited by Indiana
Posted
9 hours ago, Indiana said:

Now it works, but anyway is needed to wait for signal till 15:06 even if loco is ready.

I know, but tbe ai trains run on a schedule, als all schedules are timed using seconds since start time of the scenario. I  can not simply change the start time of the scenario, that would be way to much work. I hope the bug with the shunting route gets fixed.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy