Recommended Palworld Tweaks and Optimizations

Optimized settings and tweaks to help you run Palworld smoothly and achieve a better looking game.

Optimized Settings

Optimized Quality Settings

  • Motion Blur: Subjective
  • Anti-Aliasing: TSR or FXAA (Subjective. FXAA has better clarity but vegetation flickers. Both these AA solutions can be improved further in the Optimization Tips section)
  • View Distance: High
  • Grass Details: Epic
  • Shadows: High
  • Effects Quality: Medium
  • Texture Quality: Highest VRAM Can Handle
  • DLSS: Subjective (If more performance is needed then yeah, start from the highest value then work your way down)

Optimized Balanced Settings

Optimized Quality Settings As Base

  • Grass Details: High

Optimized Performance Settings

Optimized Balanced Settings As Base

  • Grass Details: Medium
  • Shadows: Medium
  • Effects Quality: Low

Optimization Tips

Refer to “Better AA, Upscaling, Graphics & Performance” section for config tweaks. It includes:

  • Ultra graphics+
  • Anti-aliasing improvements
  • Cartoonify game
  • Performance optimizations

Mods

Epic vs Optimized Presets vs Low

Note: The lighting constantly changed between screenshots so it’s difficult to accurately compare, but it’s the best I can do. Lighting changes fast in this game.

35-49% Performance Uplift (Depending on preset)

Better AA, Upscaling, Graphics & Performance

Engine.ini Tweaks

  1. Go to your file explorer and paste the following: “C:\Users\%username%\AppData\Local\Pal\Saved\Config\Windows\Engine.ini”
  2. Copy the commands from one of the sections below then paste them at the bottom of the Engine.ini file then save (Some games will automatically remove the commands. If this happens right click > Properties > General > Read-only)

Universal

[/script/engine.renderersettings]
r.TemporalAACatmullRom=1
r.TemporalAAPauseCorrect=1
r.TemporalAA.Quality=2
r.TemporalAA.HistoryScreenpercentage=200
r.TSR.History.ScreenPercentage=200
r.TSR.History.SampleCount=8
r.TSR.ShadingRejection.SampleCount=0
r.TSR.History.GrandReprojection=1
r.TSR.RejectionAntiAliasingQuality=1
r.TSR.Velocity.WeightClampingSampleCount=2.0
r.BasePassForceOutputsVelocity=1
r.FXAA.Quality=5
r.SceneColorFringeQuality=0
r.LensFlareQuality=0
r.FilmGrain=0
r.MotionBlur.Amount=0.39
r.MotionBlur.Max=5
r.MotionBlurSeparable=1
r.MotionBlurFiltering=0
r.MotionBlur.HalfResGather=0

These are your baseline tweaks, always use these.

Anti-aliasing

TAA/TSR

[/script/engine.renderersettings]
r.TemporalAA.Upsampling=1
r.Upscale.Quality=5
r.Tonemapper.Sharpen=0.5

FXAA/AA Off

[/script/engine.renderersettings]
r.TemporalAA.Upsampling=0
r.Upscale.Quality=4
r.Tonemapper.Sharpen=0
r.MinRoughnessOverride=1
r.SSR.Quality=0
r.VRS.Enable=0
r.BloomQuality=2
r.CapsuleShadow=0
r.ContactShadows=0
r.Reflections.Denoiser=2
r.AmbientOcclusion.Compute=1
r.AmbientOcclusion.Denoiser=2
r.AmbientOcclusion.Compute.Smooth=1
r.Shadow.EnableModulatedSelfShadow=1
r.Lumen.Reflections.MaxRoughnessToTrace=0
r.Lumen.Reflections.Temporal=1
r.Lumen.Reflections.BilateralFilter=1
r.Lumen.Reflections.DownsampleFactor=1
r.Lumen.ScreenProbeGather.ShortRangeAO=0
r.Lumen.ScreenProbeGather.TemporalFilterProbes=1
r.Lumen.Reflections.MaxRayIntensity=0.2
r.Lumen.ScreenProbeGather.MaxRayIntensity=0.3
r.Lumen.ScreenProbeGather.Temporal.MaxFramesAccumulated=64

DLSS

[/script/engine.renderersettings]
r.NGX.Enable=1
r.NGX.DLSS.Enable=1
r.NGX.DLSS.DilateMotionVectors=1
r.NGX.DLSS.EnableAutoExposure=1
r.NGX.DLSS.Preset=3
r.TemporalAA.Upscaler=1
r.Reflections.Denoiser=2
r.NGX.DLSS.Reflections.TemporalAA=1
r.NGX.DLSS.WaterReflections.TemporalAA=1
r.NGX.LogLevel=0
r.NGX.EnableOtherLoggingSinks=0
r.Velocity.ForceOutput=1
r.BasePassOutputsVelocity=1
r.BasePassForceOutputsVelocity=1
r.VelocityOutputPass=1
r.SelectiveBasePassOutputs=0
r.Velocity.EnableVertexDeformation=1
r.VertexDeformationOutputsVelocity=1
r.Tonemapper.Sharpen=0.5

Ultra Graphics+

[/script/engine.renderersettings]
r.Lumen.DiffuseIndirect.Allow=1
r.Lumen.Reflections.Allow=1
r.Lumen=1
r.AmbientOcclusion.Method=1
r.GTAO.Downsample=0
r.SSGI.HalfRes=0
r.SSGI.Quality=4
r.SSGI.Enable=1
r.SSR.Quality=4

Compatible with the “Cartoon” preset but pointless to use with the “Cartoon + Potato Graphics” one.

Cartoonify

Cartoon

[/script/engine.renderersettings]
r.MipMapLODBias=9
r.ParticleLODBias=15
r.Streaming.Boost=6
r.Streaming.UseAllMips=1
r.Streaming.MaxTempMemoryAllowed=512
r.Streaming.MaxTempMemoryAllowed=300
r.Streaming.UsePerTextureBias=1
r.Streaming.FullyLoadUsedTextures=0
r.TextureStreaming=1
r.Streaming.PoolSize=16

Cartoon + Potato Graphics

[/script/engine.renderersettings]
r.FastBlurThreshold=0
r.Tonemapper.GrainQuantization=0
r.Tonemapper.Quality=0
r.SceneColorFringeQuality=0
r.DepthOfFieldQuality=0
r.DisableDistortion=1
r.BloomQuality=0
r.FilmGrain=0
r.SubsurfaceQuality=0
r.LensFlareQuality=0
r.SSGI.Enable=0
r.SSGI.HalfRes=1
r.SSGI.Quality=1
r.SSS.SampleSet=0
r.SSS.Quality=0
r.SSS.HalfRes=1
r.GTAO.Downsample=1
r.SSR.Quality=0
r.SSR.HalfResSceneColor=1
r.HalfResReflections=1
r.VolumetricFog.VoxelizationShowOnlyPassIndex=0
r.VolumetricFog=0
r.VolumetricFog.GridPixelSize=0
r.VolumetricFog.GridSizeZ=0
r.VolumetricFog.HistoryMissSupersampleCount=0
r.Fog=0
r.FogDensity=0
r.AmbientOcclusion.Method=0
r.AmbientOcclusionLevels=0
r.AmbientOcclusionMipLevelFactor=0
r.AmbientOcclusionMaxQuality=0
r.AmbientOcclusionRadiusScale=0
r.AmbientOcclusion.Denoiser=2
r.AmbientOcclusion.Compute=1
r.AmbientOcclusion.Compute.Smooth=1
r.ShadowQuality=1
r.Shadow.CSM.MaxCascades=0
r.Shadow.MaxResolution=0
r.Shadow.MaxCSMResolution=0
r.Shadow.RadiusThreshold=0
r.Shadow.CSM.TransitionScale=0
r.Shadow.PreShadowResolutionFactor=0
r.Shadow.EnableModulatedSelfShadow=1
r.CapsuleShadows=0
r.ContactShadows=0
r.TranslucencyLightingVolumeDim=0
r.RefractionQuality=0
r.TranslucencyVolumeBlur=0
r.MaterialQualityLevel=0
r.ParticleLightQuality=0
r.MaxAnisotropy=0
r.Upscale.Quality=4
r.LightShaftQuality=0
r.DistanceFieldShadowing=0
r.DistanceFieldAO=0
r.AOQuality=0
r.LightMaxDrawDistanceScale=0
r.LightFunctionQuality=0
r.DetailMode=0
r.Lumen.ScreenProbeGather.ShortRangeAO=0
r.Lumen.ScreenProbeGather.TemporalFilterProbes=1
r.Reflections.Denoiser=2
foliage.LODDistanceScaleGrass=0
foliage.DensityScale=0
grass.densityScale=0
grass.Enable=0
grass.CullDistanceScale=0.5
grass.DisableDynamicShadows=1
grass.DiscardDataOnLoad=1
r.LightShafts=0
r.MaxCSMRadiusToAllowPerObjectShadows=0
r.ReflectionEnvironment=0
r.Shadow.RadiusThresholdRSM=0
r.Shadow.SpotLightDepthBias=0
r.Shadow.TexelsPerPixel=0
r.SimpleDynamicLighting=0
r.SSS.Scale=0
r.SeparateTranslucency=0
r.Shadow.PerObject=0
r.AllowLandscapeShadows=0
r.ParallelShadows=0
r.Shadow.PreshadowExpand=-1
r.Shadow.Preshadows=0
r.Shadow.SpotLightTransitionScale=0
r.AOApplyToStaticIndirect=0
r.Shadow.PerObjectCastDistanceRadiusScale=0
r.CapsuleDirectShadows=0
r.CapsuleIndirectShadows=0
r.CapsuleMaxDirectOcclusionDistance=0
r.CapsuleMaxIndirectOcclusionDistance=0
r.Shadows.SpotLightTransitionScale=1
r.TranslucentLightingVolume=0
r.TriangleOrderOptimization=1
r.Atmosphere=0
r.MipMapLODBias=9
r.ParticleLODBias=15
r.Streaming.Boost=6
r.Streaming.UseAllMips=1
r.Streaming.MaxTempMemoryAllowed=512
r.Streaming.MaxTempMemoryAllowed=300
r.Streaming.UsePerTextureBias=1
r.Streaming.FullyLoadUsedTextures=0
r.TextureStreaming=1
r.Streaming.PoolSize=16

Choose one. The r.MipMapLODBias value is pivotal to the function of the Cartoon aesthetic however can cause UI problems in this game sadly.

Potato Graphics

[/script/engine.renderersettings]
r.FastBlurThreshold=0
r.Tonemapper.GrainQuantization=0
r.Tonemapper.Quality=0
r.SceneColorFringeQuality=0
r.DepthOfFieldQuality=0
r.DisableDistortion=1
r.BloomQuality=0
r.FilmGrain=0
r.SubsurfaceQuality=0
r.LensFlareQuality=0
r.SSGI.Enable=0
r.SSGI.HalfRes=1
r.SSGI.Quality=1
r.SSS.SampleSet=0
r.SSS.Quality=0
r.SSS.HalfRes=1
r.GTAO.Downsample=1
r.SSR.Quality=0
r.SSR.HalfResSceneColor=1
r.HalfResReflections=1
r.VolumetricFog.VoxelizationShowOnlyPassIndex=0
r.VolumetricFog=0
r.VolumetricFog.GridPixelSize=0
r.VolumetricFog.GridSizeZ=0
r.VolumetricFog.HistoryMissSupersampleCount=0
r.Fog=0
r.FogDensity=0
r.AmbientOcclusion.Method=0
r.AmbientOcclusionLevels=0
r.AmbientOcclusionMipLevelFactor=0
r.AmbientOcclusionMaxQuality=0
r.AmbientOcclusionRadiusScale=0
r.AmbientOcclusion.Denoiser=2
r.AmbientOcclusion.Compute=1
r.AmbientOcclusion.Compute.Smooth=1
r.ShadowQuality=1
r.Shadow.CSM.MaxCascades=0
r.Shadow.MaxResolution=0
r.Shadow.MaxCSMResolution=0
r.Shadow.RadiusThreshold=0
r.Shadow.CSM.TransitionScale=0
r.Shadow.PreShadowResolutionFactor=0
r.Shadow.EnableModulatedSelfShadow=1
r.CapsuleShadows=0
r.ContactShadows=0
r.TranslucencyLightingVolumeDim=0
r.RefractionQuality=0
r.TranslucencyVolumeBlur=0
r.MaterialQualityLevel=0
r.ParticleLightQuality=0
r.MaxAnisotropy=0
r.Upscale.Quality=4
r.LightShaftQuality=0
r.DistanceFieldShadowing=0
r.DistanceFieldAO=0
r.AOQuality=0
r.LightMaxDrawDistanceScale=0
r.LightFunctionQuality=0
r.DetailMode=0
r.Lumen.ScreenProbeGather.ShortRangeAO=0
r.Lumen.ScreenProbeGather.TemporalFilterProbes=1
r.Reflections.Denoiser=2
foliage.LODDistanceScaleGrass=0
foliage.DensityScale=0
grass.densityScale=0
grass.Enable=0
grass.CullDistanceScale=0.5
grass.DisableDynamicShadows=1
grass.DiscardDataOnLoad=1
r.LightShafts=0
r.MaxCSMRadiusToAllowPerObjectShadows=0
r.ReflectionEnvironment=0
r.Shadow.RadiusThresholdRSM=0
r.Shadow.SpotLightDepthBias=0
r.Shadow.TexelsPerPixel=0
r.SimpleDynamicLighting=0
r.SSS.Scale=0
r.SeparateTranslucency=0
r.Shadow.PerObject=0
r.AllowLandscapeShadows=0
r.ParallelShadows=0
r.Shadow.PreshadowExpand=-1
r.Shadow.Preshadows=0
r.Shadow.SpotLightTransitionScale=0
r.AOApplyToStaticIndirect=0
r.Shadow.PerObjectCastDistanceRadiusScale=0
r.CapsuleDirectShadows=0
r.CapsuleIndirectShadows=0
r.CapsuleMaxDirectOcclusionDistance=0
r.CapsuleMaxIndirectOcclusionDistance=0
r.Shadows.SpotLightTransitionScale=1
r.TranslucentLightingVolume=0
r.TriangleOrderOptimization=1
r.Atmosphere=0
r.Streaming.Boost=6
r.Streaming.UseAllMips=1
r.Streaming.MaxTempMemoryAllowed=512
r.Streaming.MaxTempMemoryAllowed=300
r.Streaming.UsePerTextureBias=1
r.Streaming.FullyLoadUsedTextures=0
r.TextureStreaming=1
r.Streaming.PoolSize=400

Same as Cartoon + Potato Graphics but Cartoon component is removed.

This guide about Palworld was written by grizzlyyy. You can visit the original publication from this link. If you have any concerns about this guide, please don't hesitate to reach us here.

About the author