PC Finally Figured Out How To Use Engine.ini To Get Rid Of Tree & Foliage Shadow Pop In

Discussion in 'TSW General Discussion' started by forethought, Sep 26, 2025.

  1. forethought

    forethought Member

    Joined:
    Feb 5, 2023
    Messages:
    15
    Likes Received:
    29
    Turns out that those pesky shadows that won't go away no matter what you do to the foliage LOD or shadow Distance aren't shadows at all, but ambient occlusion. So the magic words were:
    Code:
    r.DistanceFieldAO=1
    r.AOMaxViewDistance=20000
    I also threw in this to improve the distant shadows, but it's hard to tell if it did anything:
    Code:
    r.DistanceFieldShadowing=1
    For engine.ini noobies, you can find the file at
    Code:
    My Documents\My Games\TrainSimWorld6\Saved\Config\WindowsNoEditor\Engine.ini
    Create a new section titled
    Code:
    [SystemSettings]
    and add the config lines you want one at a time

    Peace at last, tree shadows going all the way around the curve:
    upload_2025-9-25_22-40-28.png

    Here's my full system settings, for anyone who wants to copy. My system is a 4080 super, 64 gb RAM, i7-14700k:
    Code:
    [SystemSettings]
    r.Streaming.FramesForFullUpdate=2
    r.Streaming.PoolSize=32000
    r.Streaming.MaxTempMemoryAllowed=16000
    r.Streaming.Boost=2
    r.GTSyncType=1
    r.OneFrameThreadLag=1
    r.Shadow.WholeSceneShadowCacheMb=4000
    gc.TimeBetweenPurgingPendingKillObjects=900
    gc.NumRetriesBeforeForcingGC=5
    gc.MinDesiredObjectsPerSubTask=20
    s.ForceGCAfterLevelStreamedOut=0
    s.ContinuouslyIncrementalGCWhileLevelsPendingPurge=0
    r.ShaderPipelineCache.BatchTime=2
    r.ShaderPipelineCache.BackgroundBatchTime=0
    r.ShaderPipelineCache.PrecompileBatchTime=0
    s.AsyncLoadingTimeLimit=2
    s.PriorityAsyncLoadingExtraTime=1
    s.UnregisterComponentsTimeLimit=2
    s.LevelStreamingActorsUpdateTimeLimit=2
    s.PriorityLevelStreamingActorsUpdateExtraTime=1
    r.ViewDistanceScale=2
    r.DFDistanceScale=5
    foliage.LODDistanceScale=5
    foliage.DitheredLOD=5
    r.StaticMeshLODDistanceScale=0.001
    r.Shadow.DistanceScale=5
    r.Shadow.TransitionScale=5
    r.Shadow.CSM.TransitionScale=5
    # r.Shadow.RadiusThreshold=0
    r.LightMaxDrawDistanceScale=5
    r.PostProcessAAQuality=3
    r.TemporalAASamples=16
    r.DistanceFieldAO=1
    r.DistanceFieldShadowing=1
    r.AOMaxViewDistance=20000
     
    • Like Like x 11
    • Helpful Helpful x 5
  2. class71

    class71 Member

    Joined:
    Dec 12, 2016
    Messages:
    44
    Likes Received:
    64
    Many thanks going to give it a go
     
  3. Redbus

    Redbus Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    1,554
    Likes Received:
    3,309
    • Like Like x 1
  4. OldVern

    OldVern Well-Known Member

    Joined:
    Nov 2, 2020
    Messages:
    21,807
    Likes Received:
    45,327
    TBH I prefer to just tweak the ini a bit rather than mess about putting God mode and the environmental files in. Also, most of the tweaked only works if you’re running DX12 and not DX11 which I’m stuck with on the potato.
     
    • Like Like x 1
  5. dbrunner#4864

    dbrunner#4864 Well-Known Member

    Joined:
    Mar 25, 2021
    Messages:
    520
    Likes Received:
    738
    What video card do you use?
     
  6. iamachuchu#8180

    iamachuchu#8180 Active Member

    Joined:
    Mar 17, 2025
    Messages:
    110
    Likes Received:
    207
    HUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUGE yhanks dude.

    this was the last part that was annoying me.
     
  7. OldVern

    OldVern Well-Known Member

    Joined:
    Nov 2, 2020
    Messages:
    21,807
    Likes Received:
    45,327
    GTX 1650.
     
  8. iamachuchu#8180

    iamachuchu#8180 Active Member

    Joined:
    Mar 17, 2025
    Messages:
    110
    Likes Received:
    207
    Here is my ini file data.

    feel free to copy/steal anything from here



    [SystemSettings]
    r.Streaming.PoolSize=8000
    r.Streaming.MaxTempMemoryAllowed=4000
    r.UseAsyncShaderPrecompilation=1
    r.UseShaderPredraw=1
    r.UseShaderCaching=1
    r.Streaming.FullyLoadUsedTextures=1
    r.RenderTargetPoolMin=1400
    r.Streaming.LimitPoolSizeToVRAM=0
    r.Streaming.FramesForFullUpdate=2
    r.Streaming.Boost=2
    r.Streaming.HLODStrategy=2
    r.GTSyncType=1
    r.OneFrameThreadLag=1
    s.ForceGCAfterLevelStreamedOut=0
    s.ContinuouslyIncrementalGCWhileLevelsPendingPurge=0
    s.LevelStreamingComponentsUnregistrationGranularity=10
    s.LevelStreamingComponentsRegistrationGranularity=30
    r.Streaming.NumStaticComponentsProcessedPerFrame=200
    gc.TimeBetweenPurgingPendingKillObjects=200
    ts2.dbg.JourneyChapterLockOverride=1
    ts2.save.CheckpointsEnabled=0
    ts2.RewardMonitor.ShowLowImpactNotificationsAsFull=0
    r.D3D.ForceDXC=1
    r.Shaders.FastMath=0
    r.StaticMeshLODDistanceScale=0.001
    r.SkeletalMeshLODBias=-1
    r.Streaming.MipBias=-1
    r.LightMaxDrawDistanceScale=5
    r.LightMaxDrawDistanceScale=50.0
    r.MinScreenRadiusForLights=0.02
    r.AllowLandscapeShadows=1
    r.DistanceFieldShadowing=2
    r.DFDistanceScale=10
    r.DistanceFieldAO=1
    r.AOMaxViewDistance=20000
    r.BlurGBuffer=-1
    r.DepthOfFieldQuality=6
    r.SceneColorFringeQuality=1
    r.BloomQuality=5
    r.FastBlurThreshold=0
    r.Tonemapper.GrainQuantization=1
    r.AmbientOcclusionLevels=3
    r.AmbientOcclusionRadiusScale=1.0
    r.Upscale.Quality=5
    r.TemporalAA.Upsampling=1
    r.TemporalAASamples=4
    r.TemporalAACurrentFrameWeight=0.1
    r.PostprocessAAQuality=6
    r.LandscapeLOD0DistributionScale=3
    r.LumenScene.FarField=1
    r.LumenScene.FarField.FarFieldDitherScale=100000
    r.Lumen.ScreenProbeGather.Temporal=1
    ts2.dbg.SteamParticleSpawnMultiplier=2.0
    ts2.dbg.SteamParticleSize=0.7
    TimeOfDaySystem.VolumetricCloud.GroundContribution=1
    TimeOfDaySystem.VolumetricCloudScale.BaseNoise=0.9
    xxxTimeOfDaySystem.SunIntensity=10000
    r.MotionBlurQuality=4
    r.Tonemapper.Quality=5
    r.ToneMapper.Sharpen=0.3
    r.ParticleLightQuality=2
    r.LightFunctionQuality=3
    r.HighQualityLightMaps=1
    ts2.passenger.ObjectPoolSize=200
    ts2.passenger.ObjectPoolUseCount=5
    r.DefaultFeature.LensFlare=1
    r.LensFlareQuality=3
    r.ViewDistanceScale=50
    r.TonemapperGamma=2.4
    r.Color.Max=1.4
    r.Color.Mid=0.6
    r.Color.Min=-0.0001
    MasterSoundVolume=3.500000
    MusicSoundVolume=1.500000
    SFXSoundVolume=3.500000
    AmbienceSoundVolume=2.500000
    DialogueSoundVolume=1.500000
    ExternalAlertVolume=1.500000
    MenuSFXVolume=1.000000
    r.Shadow.DistanceScale=2
    foliage.LODDistanceScale=50
    grass.densityScale=4
    r.SkylightIntensityMultiplier=0.85
    r.Shadow.MaxCSMResolution=5120
     
  9. KTL_Rob Powell

    KTL_Rob Powell Well-Known Member

    Joined:
    Aug 18, 2018
    Messages:
    275
    Likes Received:
    386
    Word to the wise: start small and increase gradually, step by step (lots of restarting involved here). INI edits for PC are great, but be sure not to overexert your hardware. Play around and find settings that suit you.

    Mine, for example, are:
    ts2.save.CheckpointsEnabled=0
    r.ViewDistanceScale=3
    r.StaticMeshLODDistanceScale=0.66
    foliage.LODDistanceScale=4
    r.SkeletalMeshLODBias=-2
    r.MaterialQualityLevel=0
    r.Color.Max=1.4
    r.Color.Mid=0.35
    r.Color.Min=-0.0001
    r.CompileShadersForDevelopment=0
    r.InitialShaderLoadTime=5000
    r.CreateShadersOnLoad=1
    niagara.CreateShadersOnLoad=0
    r.ShaderPipelines=1
    r.ShaderPipelineCache.PreOptimizeEnabled=1
    r.AsyncPipelineCompile=0
    fx.Niagara.SystemSimulation.BatchGPUTickSubmit=0
    fx.Niagara.SystemSimulation.ConcurrentGPUTickInit=1
    Engine.DoAsyncLoadingWhileWaitingForVSync=1
    net.ProcessQueuedBunchesMillisecondLimit=5
    r.RenderThread.IsParallel=1
    r.MeshDrawCommands.ParallelPassSetup=1
    r.BloomQuality=4
    gm.AutumnTreeMuliplier=0.7
    r.SkylightIntensityMultiplier=1.2
    r.SkyLight.RealTimeReflectionCapture.DepthBuffer=1
    TimeOfDaySystem.SkyLightPollutionLuminance=0.7
    TimeOfDaySystem.BloomIntensity=0.1
    TimeOfDaySystem.GlobalEmissiveStrength=2.2
    TimeOfDaySystem.SunIntensity=50000
    TimeOfDaySystem.StarIntensity=70
    TimeOfDaySystem.MoonIntensity=8
    TimeOfDaySystem.AutoExposure.ExposureBias=-0.6
    TimeOfDaySystem.AutoExposure.MinBrightness=3.6
    TimeOfDaySystem.AutoExposure.SpeedUp=10
    TimeOfDaySystem.AutoExposure.SpeedDown=5
    TimeofDaySystem.LegacyEmissiveAdjustments.EmissiveMultNonLamp=1700


    For completeness' sake, PC Specs:
    AMD Ryzen 9 5900X 12-Core Processor (3.70 GHz)
    64GB DDDR4 ram @ 3600
    4070 Ti (12GB Vram)

    I run at 1080p at 125% screen percentage for the sake of my sanity and stream quality.

    (Edited for updated settings)
     
    Last edited: Sep 27, 2025
    • Helpful Helpful x 2
  10. Kappi701

    Kappi701 Well-Known Member

    Joined:
    Feb 27, 2021
    Messages:
    287
    Likes Received:
    399
    Sorry, maybe stupid question, but are those .ini changes for a specific TSW version, or may they be used for 5 as well as 6? As we are currently in a change of the version
     
  11. class2ldn2801

    class2ldn2801 Active Member

    Joined:
    Dec 23, 2019
    Messages:
    276
    Likes Received:
    206
    Im still on tsw5 and they are working well so far
     
  12. bsrdj

    bsrdj Active Member

    Joined:
    Mar 5, 2018
    Messages:
    102
    Likes Received:
    57
    still get the pop ins after doing this change. never had any problems with tsw2
     
  13. Sharon E

    Sharon E Well-Known Member

    Joined:
    Dec 9, 2016
    Messages:
    2,326
    Likes Received:
    2,312
    As I am looking at these system additions to the eng.ini file, wonder if they include JetWash's additions for use with GodMode? I have these in my ini file, though I cannot get GodMode to work even though I have copied the pak file over to TSW6.
     
  14. JetWash

    JetWash Well-Known Member

    Joined:
    Mar 6, 2021
    Messages:
    3,226
    Likes Received:
    12,242
    GodMode works fine, but only on existing routes (until it’s updated).

    My mod already activates Distance Field AO so it’s likely this won’t do anything beyond what is already there. The draw distance of this stuff is hard coded into DTGs TOD system so Kat’s Better shadows mod is the only reliable way to have shadows render properly to the horizon. The downside of that mod is well documented so it’s a personal choice.

    Edited to add, I can confirm that I’m not seeing any difference to my mod with the extra line added relating to distance
     
    Last edited: Sep 27, 2025
    • Like Like x 3
    • Helpful Helpful x 1
  15. JetWash

    JetWash Well-Known Member

    Joined:
    Mar 6, 2021
    Messages:
    3,226
    Likes Received:
    12,242
    I’m not sure you fully understand the mod if you view GodMode as ‘messing around’. The mod requires you to drag and drop 2 single files and copy/paste a single block of text to the main ini file, that’s it. It takes less than 30 seconds so hardly a chore! FWIW it works with DX11 as I’ve mentioned previously and the low preset (which again, contains the lighting changes only) is performance neutral and specifically designed for just that purpose.
     
    Last edited: Sep 28, 2025
    • Like Like x 2
  16. tof70110

    tof70110 Active Member

    Joined:
    Dec 13, 2016
    Messages:
    130
    Likes Received:
    66
    Hi JetWash, will TSW6 also benefit your mod [Lighting & Visual Quality Enhancement as well as foobian's godmod as well as Train Lighting & LOD Fixes and others...] as you did for the previous versions or do you think that for now it's better to wait for its official release on 09/30/2025. Thank you for all the work you do for TSC and TSW and see you soon in your future projects!!!
    Kind regards, tof
     
    • Like Like x 2
  17. JetWash

    JetWash Well-Known Member

    Joined:
    Mar 6, 2021
    Messages:
    3,226
    Likes Received:
    12,242
    Hey there. I answered the same question on the dedicated thread so hope you don’t mind me linking to that;

    https://forums.dovetailgames.com/th...-graphic-ep-v2-3-0.84738/page-19#post-1043851
     
  18. class2ldn2801

    class2ldn2801 Active Member

    Joined:
    Dec 23, 2019
    Messages:
    276
    Likes Received:
    206
    The one thing I cant seem to get rid of is the shimmering, drives me nuts, tried every ini mod and option going and even at 2k its awful.
    Any ideas how to improve it?
     
  19. JetWash

    JetWash Well-Known Member

    Joined:
    Mar 6, 2021
    Messages:
    3,226
    Likes Received:
    12,242
    Because the game still doesn’t use DLSS/DLAA the only AA solution we’re left with is TAA or FXAA, both of which suffer from shimmering. I get it still at 150% percentage at 4K base resolution although it is vastly reduced.

    My lighting / graphics mod helps as far as is possible, but 1440p isn’t that high a resolution really, so if you have the headroom on your GPU I’d suggest increasing your screen percentage as it will help
     
    • Like Like x 2
  20. class2ldn2801

    class2ldn2801 Active Member

    Joined:
    Dec 23, 2019
    Messages:
    276
    Likes Received:
    206
    Yeah ive tried at 135 and it is better but obviously drops the fps a bit so il have a play around, see whats best for my system.
     
  21. tof70110

    tof70110 Active Member

    Joined:
    Dec 13, 2016
    Messages:
    130
    Likes Received:
    66
    Hello and thank you, JetWash. Sorry, I hadn't noticed in my haste that a post on this topic was open for TSW6. Thank you and good luck.
    Have a good trip everyone with these three new routes while waiting for the next one... Lol
    Sincerely, tof
     
    • Like Like x 1
  22. f__s_cw

    f__s_cw Well-Known Member

    Joined:
    Mar 21, 2025
    Messages:
    340
    Likes Received:
    757
    If only dtg cared about consoles enough to fix it for them too
     
  23. focalpro1

    focalpro1 Member

    Joined:
    Nov 11, 2020
    Messages:
    38
    Likes Received:
    64
    You should put those lines in alphabetical order in engine-ini so it's easrier to find what you need to find. And for others so they can see what they got and what they can try. Those text lines are quite mess now.
     
    • Like Like x 2
  24. martschuffing

    martschuffing Well-Known Member

    Joined:
    Aug 8, 2020
    Messages:
    1,062
    Likes Received:
    811
    Awesome sauce that has knocked those annoying trees and foliage from Popping in completely!
    Noice.
     
    • Like Like x 1
  25. martschuffing

    martschuffing Well-Known Member

    Joined:
    Aug 8, 2020
    Messages:
    1,062
    Likes Received:
    811
    A question regarding audio, can one adjust the sounds through the engine.ini settings to maximise bridge reverb?
     
  26. focalpro1

    focalpro1 Member

    Joined:
    Nov 11, 2020
    Messages:
    38
    Likes Received:
    64
    How to get Time of day- settings in game?

    I have that God mode and I have managed to add setting from there to engine.ini but all those "TimeOfDay" settings not working via engine.ini. I've tried add r. in front etc but no use. Passenger count work, track amd sleeper shadows work, so all "ts2." works, but all in "TimeOfDay"- section commands isn't. For example line TimeOfDaySystem.BloomIntensity=0 doesn't give anything. It's still 0.13 when I check it via god mode settings during a game.

    ts2.platform.MaxSpawnInterval=5
    ts2.platform.MinSpawnInterval=0.1
    ts2.platform.MaxSpawnRequirement=10
    ts2.passenger.SpawnLimitScaleFactor=1
    ts2.platform.MaxPlatformPassengerSpawnDistance=15000
    ts2.platform.MaxStationPassengerSpawnDistance=35000
    ts2.passengers.ForceStationSpawningOverride=1
    ts2.passenger.HotSpawningDistancePadding=0
    ts2.passenger.AdjacentStationsSearchDistance=0
    ts2.passenger.MaxPlatformPassengers=600
    ts2.passenger.DensityScale=5
    ts2.passenger.DensityScaleNew=3
    ts2.passenger.DensityScaleForceNew=0
    ts2.passenger.ObjectPoolSize=200
    ts2.passenger.ObjectPoolUseCount=5
    ts2.dbg.Track.RailShadows.Enabled=1
    ts2.dbg.Track.RailShadows.StartDistance=0.0
    ts2.dbg.Track.SleeperViewDistanceScale=2.5
    ts2.dbg.Track.SleeperViewDistanceScaleMax=1000
    TimeOfDaySystem.BloomIntensity=0.1

    All ts.2- lines works but that last doesn't.
     
  27. DJsnapattack

    DJsnapattack Well-Known Member

    Joined:
    Nov 12, 2020
    Messages:
    1,064
    Likes Received:
    1,984
    r.DFDistanceScale=5
    foliage.LODDistanceScale=5

    Those numbers are going to stress the hell out of your gpu and are pure overkill.
    A starting point of =2 would be good, maxing on =3 if you have a PC with top end hardware.
     
    • Like Like x 2
  28. iamachuchu#8180

    iamachuchu#8180 Active Member

    Joined:
    Mar 17, 2025
    Messages:
    110
    Likes Received:
    207

    hi.
    I think God Mod has its own settings in a save file, that overides a lot of the ini.
     
  29. iamachuchu#8180

    iamachuchu#8180 Active Member

    Joined:
    Mar 17, 2025
    Messages:
    110
    Likes Received:
    207
    Just a revisit of this thread.
    yesterday i accidently saved over my ini file and it died. gone. zapped.

    So i had to rebuild it all again.

    it works fine except, it seems to have killed every passenger. Platforms are utter vacant.

    Ive posted a picture of what they used to be like yesterday - nice and busy and active. Very alive. 20260104080553_1.jpg

    I use the code for passengers already shared on this thread (with thanks) but sadly its stopped working now.

    Here is my full ini file.

    Is there an obvious error Im making here, like a duplicate on/off toggle, or missing a necessary line?

    huge thanks


    _______________________________________________


    [SystemSettings]
    r.Streaming.PoolSize=16000
    r.Streaming.MaxTempMemoryAllowed=8000
    r.UseAsyncShaderPrecompilation=1
    r.UseShaderPredraw=1
    r.UseShaderCaching=1
    r.Streaming.FullyLoadUsedTextures=1
    r.RenderTargetPoolMin=1400
    r.Streaming.LimitPoolSizeToVRAM=0
    r.Streaming.FramesForFullUpdate=2
    r.Streaming.Boost=2
    r.Streaming.HLODStrategy=2
    r.GTSyncType=1
    r.OneFrameThreadLag=1
    s.ForceGCAfterLevelStreamedOut=0
    s.ContinuouslyIncrementalGCWhileLevelsPendingPurge=0
    s.LevelStreamingComponentsUnregistrationGranularity=10
    s.LevelStreamingComponentsRegistrationGranularity=30
    r.Streaming.NumStaticComponentsProcessedPerFrame=200
    gc.TimeBetweenPurgingPendingKillObjects=200
    ts2.dbg.JourneyChapterLockOverride=1
    ts2.save.CheckpointsEnabled=0
    ts2.RewardMonitor.ShowLowImpactNotificationsAsFull=0
    r.D3D.ForceDXC=1
    r.Shaders.FastMath=0
    r.StaticMeshLODDistanceScale=0.001
    r.SkeletalMeshLODBias=-2
    r.Streaming.MipBias=0
    r.LightMaxDrawDistanceScale=5
    r.LightMaxDrawDistanceScale=5.0
    r.MinScreenRadiusForLights=0.02
    r.AllowLandscapeShadows=1
    r.DFDistanceScale=15
    r.BlurGBuffer=-1
    r.DepthOfFieldQuality=6
    r.SceneColorFringeQuality=1
    r.BloomQuality=5
    r.FastBlurThreshold=7
    r.Tonemapper.GrainQuantization=1
    r.Shadow.Virtual.ResolutionLodBiasLocal=1
    r.Shadow.DistanceScale=10
    r.ShadowQuality=5
    r.Shadow.RadiusThreshold=0.01
    r.Shadow.CSM.TransitionScale=2.0
    r.shadow.CSMDepthBias=4
    r.Shadow.PreShadowResolutionFactor=2.0
    r.CapsuleShadows=1
    r.CreateShadersOnLoad=1
    niagara.CreateShadersOnLoad=1
    r.AmbientOcclusionLevels=3
    r.AmbientOcclusionRadiusScale=1.0
    r.Upscale.Quality=5
    r.TemporalAA.Upsampling=1
    r.TemporalAASamples=4
    r.TemporalAACurrentFrameWeight=0.1
    r.PostprocessAAQuality=6
    r.LandscapeLOD0DistributionScale=3
    r.LumenScene.FarField=1
    r.LumenScene.FarField.FarFieldDitherScale=100000
    r.Lumen.ScreenProbeGather.Temporal=1
    ts2.dbg.SteamParticleSpawnMultiplier=2.0
    ts2.dbg.SteamParticleSize=0.7
    TimeOfDaySystem.VolumetricCloud.GroundContribution=1
    TimeOfDaySystem.VolumetricCloud.GroundContribution=1
    TimeOfDaySystem.VolumetricCloudScale.BaseNoise=0.9
    r.MotionBlurQuality=4
    r.DefaultFeature.LensFlare=1
    r.Tonemapper.Quality=4
    r.Color.Max=0.85
    r.Color.Mid=0.4
    r.Color.Min=0.0001
    r.ToneMapper.Sharpen=0.3
    r.ParticleLightQuality=2
    r.LightFunctionQuality=3
    r.HighQualityLightMaps=1
    masterSoundVolume=3.500000
    foliage.LODDistanceScale=10
    r.foliage.DistanceScale=10
    foliage.DitheredLOD=20
    r.FoliageCullDistanceScale=4.0
    r.ViewDistanceScale=5
    grass.densityScale=4
    r.Shadow.CSM.MaxCascades=8
    r.Shadow.MaxCSMResolution=4096
    r.Shadow.MinResolution=2048
    r.DistanceFieldShadowing=1
    r.DistanceFieldAO=1
    r.AOMaxViewDistance=20000
    ts2.dbg.Track.RailShadows.Enabled=1
    ts2.dbg.Track.RailShadows.StartDistance=0.0
    ts2.dbg.Track.SleeperViewDistanceScale=2.5
    ts2.dbg.Track.SleeperViewDistanceScaleMax=5000
    ts2.platform.MaxSpawnInterval=5
    ts2.platform.MinSpawnInterval=0.1
    ts2.platform.MaxSpawnRequirement=10
    ts2.passenger.SpawnLimitScaleFactor=1
    ts2.platform.MaxPlatformPassengerSpawnDistance=20000
    ts2.platform.MaxStationPassengerSpawnDistance=35000
    ts2.passengers.ForceStationSpawningOverride=1
    ts2.passenger.HotSpawningDistancePadding=0
    ts2.passenger.AdjacentStationsSearchDistance=0
    ts2.passenger.MaxPlatformPassengers=600
    ts2.passenger.DensityScale=5
    ts2.passenger.DensityScaleNew=3
    ts2.passenger.DensityScaleForceNew=0
    ts2.passenger.ObjectPoolSize=200
    ts2.passenger.ObjectPoolUseCount=5
     
  30. DJsnapattack

    DJsnapattack Well-Known Member

    Joined:
    Nov 12, 2020
    Messages:
    1,064
    Likes Received:
    1,984
    Primary cause (this will stop passengers)

    ts2.passenger.ObjectPoolSize=200
    ts2.passenger.ObjectPoolUseCount=5
    ts2.passenger.MaxPlatformPassengers=600

    Why this breaks it

    • The game can only ever create 200 passenger objects total
    • But you allow up to 600 per platform
    • TSW fails safely → spawns none

    Secondary hard stop


    ts2.passengers.ForceStationSpawningOverride=1
    ts2.passenger.AdjacentStationsSearchDistance=0
    ts2.passenger.HotSpawningDistancePadding=0

    Why this breaks it


    • You force station-only spawning
    • You disable searching for adjacent stations
    • You allow zero distance padding
    • Result: the game finds no valid spawn locations
     
    Last edited: Jan 5, 2026 at 1:59 PM
    • Like Like x 2
  31. iamachuchu#8180

    iamachuchu#8180 Active Member

    Joined:
    Mar 17, 2025
    Messages:
    110
    Likes Received:
    207

    Brill! thank you, lets give that a go.
     
  32. DJsnapattack

    DJsnapattack Well-Known Member

    Joined:
    Nov 12, 2020
    Messages:
    1,064
    Likes Received:
    1,984
    i would replace the offending lines in your .ini as follows:

    ts2.platform.MaxSpawnInterval=4
    ts2.platform.MinSpawnInterval=0.3
    ts2.platform.MaxSpawnRequirement=10

    ts2.platform.MaxPlatformPassengerSpawnDistance=12000
    ts2.platform.MaxStationPassengerSpawnDistance=20000

    ts2.passengers.ForceStationSpawningOverride=0

    ts2.passenger.AdjacentStationsSearchDistance=6000
    ts2.passenger.HotSpawningDistancePadding=600

    ts2.passenger.MaxPlatformPassengers=450

    ts2.passenger.DensityScale=4
    ts2.passenger.DensityScaleNew=3
    ts2.passenger.DensityScaleForceNew=0

    ts2.passenger.ObjectPoolSize=1400
    ts2.passenger.ObjectPoolUseCount=30
     
    • Like Like x 1
  33. iamachuchu#8180

    iamachuchu#8180 Active Member

    Joined:
    Mar 17, 2025
    Messages:
    110
    Likes Received:
    207
    hi.
    I used your suggestions, huge thanks, but sadly I'm still getting zero passengers 20260105173041_1.jpg
     
  34. iamachuchu#8180

    iamachuchu#8180 Active Member

    Joined:
    Mar 17, 2025
    Messages:
    110
    Likes Received:
    207
    I fixed it!!
    It was such a rookie error, combined with tired eyes.

    it was this line:
    ts2.platform.MaxPlatformPassengerSpawnDistance=20000
    But I had actually used this:
    ts2.platform.MaxPlatformPassengerSpawnDistance=2000


    It means they were only just spawning as I arrived, and by the time they were visible it was time for me to leave and this never see them.
    doh!
     
  35. KTL_Rob Powell

    KTL_Rob Powell Well-Known Member

    Joined:
    Aug 18, 2018
    Messages:
    275
    Likes Received:
    386
    Right, having played around a bit recently and seen some game-breaking ini files on a few websites, I thought I'd get this guide in here for people regarding engine ini tweaks that take into account the limitations of TSW6 and UE 4.26:


    ⚠️ TSW6 Engine.ini Editing – What You Should and Shouldn’t Touch
    Introduction
    Editing Engine.ini in Train Sim World 6 can improve visuals, lighting, and smoothness — but it can also silently break gameplay if done incorrectly.

    TSW6 runs on Unreal Engine 4.26, which has hard engine limitations around:

    • Streaming

    • Actor loading

    • Level of Detail (LOD)

    • Gameplay logic (junctions, signals, AI)
    These limits do not scale with hardware. Even the fastest GPU or CPU cannot bypass them.

    This guide explains:

    • Which settings are safe

    • Which settings cause common breakages

    • Why “bigger numbers” often make things worse

    • How to tune visuals without breaking gameplay

      The #1 Rule of Engine.ini Editing
      If a setting affects loading distance, LODs, or streaming, it can break gameplay.

      Visuals and gameplay are not cleanly separated in UE 4.26.

      ❌ Common Mistakes That Break TSW6
      1️⃣ Disabling Texture Streaming
      Code:
      r.TextureStreaming=0




      • Why do people do it?
        “More VRAM = sharper textures”

        What actually happens:
        • Streaming logic breaks

        • Gameplay actors don’t load correctly

        • Manual junctions and signals fail silently
        ✅ Always keep this ON
        Code:
        r.TextureStreaming=1
    2️⃣ Extreme View Distance Values

    Code:
    [/B]
    [B]r.ViewDistanceScale=10
    r.ViewDistanceScale=50
    r.ViewDistanceScale=75
    


    Why do people do it?
    “To see everything far away”

    Why this breaks things:




      • UE loads visuals beyond where gameplay logic is initialised

      • Switches and signals exist visually but not logically

      • Causes “ghost infrastructure”
    Safe practical range
    Code:
    r.ViewDistanceScale = 2.0 – 3.0

    Anything beyond that is engine-unsafe, not hardware-limited.

    3️⃣ Over-aggressive LOD Reduction
    Code:
    r.StaticMeshLODDistanceScale=0.01


    Why do people do it?
    “To force the highest LOD everywhere”

    What happens:




      • Gameplay meshes never downshift properly
      • Interaction logic fails
      • Junctions and signals stop responding
    Absolute minimum
    Code:
    r.StaticMeshLODDistanceScale >= 0.75


    Below this is one of the most common causes of broken junctions.

    4️⃣ Negative LOD Bias Everywhere
    Code:
    r.LODBias=-4
    r.MipMapLODBias=-4
    r.SkeletalMeshLODBias=-4
    

    Why do people do it?
    “Sharper textures and models”

    Why it’s dangerous:




      • Overloads streaming pool

      • Causes stutters, pop-in, or partial loads

      • Breaks actor initialisation under load
    Safe guidance




      • Skeletal meshes: no lower than -2

      • Global LOD bias: no lower than -1

      • Mip bias: moderate negatives only
    ⚠️ Settings That Look Visual but Aren’t
    These settings affect gameplay indirectly:




      • r.HLOD.*
        → Can collapse gameplay actors into non-interactive meshes

      • foliage.*DistanceScale
        → Heavy CPU cost, can starve streaming

      • r.Streaming.*
        → Misconfigured pools cause logic delays
    Rule of thumb:
    If it affects what loads when, treat it as gameplay-critical.

    ✅ Generally Safe Areas to Tweak
    These settings are mostly visual and safe when used sensibly:

    Color & Tonemapping



      • r.Color.Mid

      • r.Color.Max

      • r.Tonemapper.Contrast

      • r.Tonemapper.Sharpen
    Pitfall:
    Raising mid-tones too far washes out clouds and terrain.

    Guidance:




      • Mid-tones around 0.40–0.42 are realistic

      • Avoid pushing brightness through color alone
    Lighting



      • r.SkylightIntensityMultiplier

      • Bloom settings

      • Ambient Occlusion strength
    Better than raising exposure:
    Use skylight to brighten scenes naturally.

    ☁️ Clouds, Fog, Atmosphere



      • Volumetric fog quality

      • AO scale (within reason)

      • Cloud shadows
    These improve depth without affecting gameplay logic

    ️ Post-Processing



      • Anti-aliasing (TAA)

      • Motion blur (optional)

      • Depth of field (light use)
    Safe as long as they don’t touch streaming or LODs.

    Why Hardware Doesn’t Change These Limits

    A common misconception:

    “I have a 4090 / 5090, so I can push higher.”

    Unfortunately:





      • UE 4.26 streaming logic is single-thread constrained

      • Actor initialisation happens in fixed ranges

      • Visuals can outpace gameplay logic
    This is why, even on top-end hardware, it (the game) still breaks when unsafe ini values are used.

    ✅ Best Practices for Safe ini Editing




      • Change one category at a time

      • Avoid “mega presets” from unknown sources

      • Be suspicious of:
        • Huge view distance numbers

        • Extreme negative LOD values

        • Disabled streaming

      • If junctions stop working:
        • Check LOD and streaming settings first
        Conclusion
        Engine.ini editing in TSW6 is powerful but unforgiving.
        You will find various issues caused by:
        • Over-aggressive LOD tweaks

        • Excessive view distance values

        • Broken streaming logic
        By respecting Unreal Engine 4.26’s limits, you can:
        • Improve visuals dramatically

        • Keep AI, signals, and junctions working

        • Avoid silent gameplay breakage
        Smarter values beat bigger numbers.

        Now, as an example, here is the [systemsettings] section of my engine.ini for my 4070ti, 5800x, and 64GB of ram, giving me 60fps on the majority of routes I play:

        Code:
        [SystemSettings]
        ts2.save.CheckpointsEnabled=0
        r.ViewDistanceScale=2.3
        r.StaticMeshLODDistanceScale=0.80
        r.LODDistanceFactor=1.15
        foliage.LODDistanceScale=1.9
        foliage.DensityScale=1.0
        foliage.MinLOD=0
        r.HLOD.DistanceOverride=0
        r.HLOD.MaximumLevel=0
        r.LODFadeTime=2
        r.SkeletalMeshLODBias=-2
        r.LODBias=-1
        r.DetailMode=3
        r.TextureStreaming=1
        r.MipMapLODBias=-1
        r.Streaming.Boost=1.15
        r.Streaming.MaxTempMemoryAllowed=384
        s.AsyncLoadingThreadEnabled=1
        s.EventDrivenLoaderEnabled=1
        r.Color.Max=1.50
        r.Color.Mid=0.41
        r.Color.Min=-0.0001
        r.ToneMapper.Sharpen=0.2
        r.Tonemapper.Contrast=1.05
        r.FilmicTonemapper=1
        r.BloomThreshold=0.9
        r.SceneColorFringe.Max=1.0
        r.DefaultFeature.AntiAliasing=3
        r.TemporalAACurrentFrameWeight=0.18
        r.TemporalAASamples=16
        r.BloomQuality=1
        r.BloomIntensity=0.95
        r.LightFunctionQuality=1
        r.SkylightIntensityMultiplier=1.08
        r.DistanceFieldAO=1
        r.DistanceFieldAOScale=1.1
        r.EyeAdaptationQuality=2
        r.ShadowQuality=5
        r.Shadow.MaxResolution=2048
        r.Shadow.DistanceScale=1.1
        r.Shadow.CSM.MaxCascades=4
        r.VolumetricFog=1
        r.VolumetricFog.GridPixelSize=6
        r.VolumetricFog.HightQualityLighting=1
        r.CloudQuality=3
        r.CloudShadows=1
        r.Reflections.Quality=2
        r.SSR.Quality=2
        r.SSR.MaxRoughness=0.9
        r.MotionBlurQuality=1
        r.DepthOfFieldQuality=2
        TimeOfDaySystem.SunIntensity=74000
        TimeOfDaySystem.MoonIntensity=900
        TimeOfDaySystem.StarIntensity=35
        r.OneFrameThreadLag=0
        r.HZBOcclusion=1
        
     
    • Helpful Helpful x 2
  36. class71

    class71 Member

    Joined:
    Dec 12, 2016
    Messages:
    44
    Likes Received:
    64
    Many thanks for this will give it a go.
     
  37. DJsnapattack

    DJsnapattack Well-Known Member

    Joined:
    Nov 12, 2020
    Messages:
    1,064
    Likes Received:
    1,984
    r.ViewDistanceScale=2.3 seems rather aggressive?
     
  38. KTL_Rob Powell

    KTL_Rob Powell Well-Known Member

    Joined:
    Aug 18, 2018
    Messages:
    275
    Likes Received:
    386
    It's aggressive, yes, but within Engine bounds and still provides 60fps on most routes in my trial runs. You can run it lower, say maybe 2 or even below 2 at 1.5. Anything above 1 will improve visuals up to the maximum. I've actually just compiled a more wordy version of the guide that explains things in a more professional tone.
     

    Attached Files:

Share This Page