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 at 4:43 AM.

  1. forethought

    forethought New Member

    Joined:
    Feb 5, 2023
    Messages:
    13
    Likes Received:
    14
    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 6
    • Helpful Helpful x 3
  2. class71

    class71 Member

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

    Redbus Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    1,521
    Likes Received:
    3,222
  4. OldVern

    OldVern Well-Known Member

    Joined:
    Nov 2, 2020
    Messages:
    20,266
    Likes Received:
    41,120
    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.
     
  5. dbrunner#4864

    dbrunner#4864 Well-Known Member

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

    iamachuchu#8180 Member

    Joined:
    Mar 17, 2025
    Messages:
    43
    Likes Received:
    57
    HUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUGE yhanks dude.

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

    OldVern Well-Known Member

    Joined:
    Nov 2, 2020
    Messages:
    20,266
    Likes Received:
    41,120
    GTX 1650.
     
  8. iamachuchu#8180

    iamachuchu#8180 Member

    Joined:
    Mar 17, 2025
    Messages:
    43
    Likes Received:
    57
    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:
    270
    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 at 1:13 PM
    • Helpful Helpful x 1
  10. Kappi701

    Kappi701 Well-Known Member

    Joined:
    Feb 27, 2021
    Messages:
    270
    Likes Received:
    353
    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:
    234
    Likes Received:
    183
    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,198
    Likes Received:
    2,183
    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,166
    Likes Received:
    11,765
    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 at 10:12 PM
  15. JetWash

    JetWash Well-Known Member

    Joined:
    Mar 6, 2021
    Messages:
    3,166
    Likes Received:
    11,765
    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 at 5:55 AM
    • Like Like x 2

Share This Page