POSTAL 4: No Regerts

POSTAL 4: No Regerts

87 ratings
Ultimate Performance Guide (UPDATED)
By Dzarmer
Demonstration and explanation of everything you can possibly do in order to make this game run better
6
   
Award
Favorite
Favorited
Unfavorite
Prelude
Some or even most of the stuff listed here could do you jack sh!t, it's mostly my own steps I took hoping it would increase performance, and I'm sharing this information with y'all. Game itself isn't optimized at all, so if you are still facing sh!tty framerate, wait for RWS to patch this atrocity.

NEW STUFF
It's been a while, I know. Had other stuff to play, kinda forgot about Postal. But figured after all them updates and me discovering new things it wouldn't be fair not to share.

In short, I updated the graphics comparison thingy, added section about Lossless Scaling Frame Generation, suggested a few more Windows tweaks with Windows debloaters and unexpected power plan changes, changed launch options related to DirectX 12 and updated Engine.ini section. Everything that's striked off like this is no longer valid.
Windows stuff
1) Page File - this game seems to allocate insane amount of memory to itself, so make sure you have some to spare in case you'll get maxed out, I'm talking about 8-10GB of your drive. Even if you have 16GB of RAM and nothing is running in the background, it might still find a way to screw you over.

Living on 16GB of RAM and 8GB of VRAM for most of my gaming life proved that for the most part jerking page file around is a bad idea. If you ran out of both RAM and VRAM, memory will be taken from Page File and it won't help you. It will actually kill your performance. So you have two options. Leave it for Windows to decide, or decrease it based on the amount of RAM you have (more ram = less page file size) in many games having a page file of only 2 GB helped me out with stability somehow. There are a lot of guides online about how exactly you should do it. Screenshot is here only as a demonstration.



2) Shamanism in game's executable file :
• Right Click on game's excecutable file (POSTAL 4\Postal4\Binaries\Win64\Postal4-Win64-Shipping.exe)
• Open the "Compatibility" tab in the Properties
• Check the "Disable fullscreen optimizations option".

3) Enable or Disable Hardware-Accelerated GPU Scheduling
• GO to “Settings” app again by pressing WIn + I.
• In Settings, click on "System’ and open "Display" tab.
• Under the “Multiple Displays” section, select “Graphics settings”.
• Turn on or off “Hardware-accelerated GPU scheduling” option.

4) Try using balanced power plan.
I know every cool performance guide out there will tell you to go for maximum performance, but shifting it to balanced somehow reduce stuttering in many games. At least in my experience.
• Press Start
• Type Settings in the search box and then select System
• Choose Power
• Select Balanced power plan.

5) Disable game mode
• Press the Start button, type Settings in the search box, and then select it.
• Choose Gaming, then Game Mode.
• Turn Game Mode off.
Software
Here comes the cool stuff that might require you to pay for it if you want to improve your life.

1) FSR Frame Generation in any video game? Easy!
https://cs2bus.com/steamstore/app/993090/Lossless_Scaling/

It's very important tho that this soft is recommended only to people with monitor refresh rate higher than 60. It works great on 120hz, 144hz, 165hz etc. Mainly because you need at least 40 stable FPS and less than 100% GPU usage to use this software. because it will use both your GPU power and some VRAM to generate frames.

Cool little soft that will allow you to have frame generation in any video game, literally. No more waiting for developers to implement it, no longer you need to buy new generation of Nvidia GPUs to have more than x2 frame gen avaliable.

This little guy is very easy to use, just install it, choose LSFG 3.0, choose prefered mode, Fixed or Adaptive (if you hover your mouse over it you'll get a detailed explanation of what each option does, so you don't need me here for that) choose multiplier aka how many additional frames you want to be generated, then make sure Capture API is DXGI and queue target is 1. I also recommend making sure Sync Mode is either Default or Vsync and max frame latency is either 1 or 2.

Lock your framerate using RivaTuner Statistics Server (built in MSI Afterburner) or any other methods avaliable online, inluding in-game FPS cap.


2) Here comes the snake oil - https://cs2bus.com/steamstore/app/384300/CPUCores__Maximize_Your_FPS/
Now this is an incredibly divisive software. There is a reason I named this section "snake oil" because proving this thing actually works consistently is hard. So I'd recommend you try it, see if it works and either keep it or refund it. If you are looking for a replacement with way more flexibility, try Process Lasso [bitsum.com]
p.s. Process Lasso can also be upgraded to "Pro" version that apparently is better, duh.

3) Windows debloaters
Windows by default has a lot of useless stuff on that basically bloats your system. Many users online actually created very easy to use soft to get rid of nearly everything useless and/or annoying. I personally recommend Win11Debloat [github.com] by Raphire or winutil [github.com] by ChrisTitusTech.
In-game Settings
Video, it's not much to go around.

For full graphical comparision, check this [imgsli.com]. You can select individual graphical options and compare Buttsauce with Ultra.

- Pick your native resolution
- Go Borderless (Fullscreen or Windowed perform like ass, so this is our choice)
- Use TAA on High (Lack of proper anti-aliasing makes everything too "sharp" so no other choice here)

Outlines and Heat is for you to decide, it doesn't affect anything.

Performance, now here it gets interesting, Click on each graphical option for comparison.

- 3D Resolution slider - leave at 100% (Unless you don't get stable enough frames, but depends on your GPU really, but till they add upscalers, this is the only thing we have, so in case you need more FPS, lower to 75-80%)

- Post-Processing - Medium (It's a bunch of effects applied on your screen. This option's function is to make your picture clearer, to cover up the noise in the shadows, to saturate the colors, etc. Not much difference between Medium or Ultra imho)

- Ambient Occlusion - Medium (Ambient occlusion provides more realistic ambient lighting by calculating how bright certain parts of the screen should be based on geometry, so it determines how much light should be "blocked" by a particular part of the environment. Difference between Medium and Ultra are basically non existent, so if you want more frames but do not want your game to look like crap indoors, pick Medium, if you just want frames, pick Buttsauce)

- Shadows - Medium (Big option here, not only it determines the quality of shadows, but also it render distance. Medium is a valid choice, not too bad, not too demanding, but If you have frames to spare, I'd go with High since in some indoor locations choosing Medium over High can be a big difference visually. Yet if you need frames and you don't mind the game looking like Postal 2 sometimes, go with Buttsauce)

- Textures - Ultra - (It changes the quality of texture rendering as well as the amount of required GPU virtual memory. In theory. In reality It seems to me that this option doesn't really change the quality of textures overall, but rather changes the distance of it's proper render, the further you are from some objects, the lower your texture resolution will be.)

- Effects - High (This bugger is really hard to properly pinpoint and showcase, so just believe me that you do not want it lower than High, because effects not just get worse, sometimes they disappear entirely. Keeping it high makes them consistent and looking good, however if you go on a massive rampage a bunch of fire, explosions, dismemberment while using energy drinks, catnip and vitaminx you might get serious frame drops, so try Medium if things get bad)

- Flow - Ultra (I've read about it in one of the discussions, this thing improves the rundown blood decals if you kill an NPC on a slanted surface, it didn't seem to affect FPS at all, so just choose Ultra)

- Foliage Density - 0 (This stuff is the biggest FPS killer in the game yet, if you lack a really good GPU you should literally leave this paramether at 0 because all the grass you'll be seeing will cause your frames to drop up to 30 units or more depending on the amount you chose, this is madness)

- Population - Normal (Here is a story, Cyberpunk 2077 had to reduce the amount of NPCs in the world keep itself somewhat stable, so Night City turned into a ghost town. Now, If you want to have a feeling of a city that people actually live in, along with having someone to shoot while you traverse the map, keep it at normal)

- Decal Lifetime - from 15 to 30 (That little option determines the lifetime of your decals, like say blood or bullet holes. I'd say that this option doesn't really matter in a Postal game, especially if you possess a low rig. Meaty shootouts will cause frame drops, especially if you use something heavy, so experiment with that in order to find proper balance for yourself)

- Corpses Lifetime - 15 (Matters if you kill a lot of people, if you don't care, just but it to like 15, but I like my stuff to remain where it was, so I just disable it)

- Dismemberment - On (Listen, this option can actually destroy your framerate if you go on a massive rampage and kill a lot of enemies with weapons that remove limbs, but this is a Postal game, leave it on, go through FPS drops like a chad you are and enjoy the game)

Motion Blur and Muddy Textures do not require explanation, so use it if you want/need to or don't.
Updated 30.08.22
So RWS actually released an update to the game that improves performance, which is great since people can actually enjoy the game now....to a degree....spoilers, this guide is still valid.
Updated: 14.11.2022
DirectX 12

There is a way to play the game in DirectX 12, all you gotta do is put in "-dx12" in games launch options, although I wouldn't recommend it, but if you wanna experiment, go you.


Unreal Engine 4 Tweak

I was d!cking around with Unreal Engine 4 ini tweaks and found a bunch of commands that apparently do make the game less stuttery and more stable.

Navigate to Postal 4 config folder, it's located on the main disk with your windows, for me its "F:\Users\Dzarmer\AppData\Local\Postal4\Saved\Config\WindowsNoEditor"

Find a lil file called "Engine.ini"

After everything leave a blank and put in this:

[/script/engine.renderersettings]
r.bForceCPUAccessToGPUSkinVerts=1
r.Streaming.DefragDynamicBounds=1
r.AllowOcclusionQueries=1

[TextureStreaming]
r.Shaders.Optimize=1
r.Shaders.FastMath=1
r.UseShaderCaching=1
r.UseShaderPredraw=1

[ConsoleVariables]
FX.AllowAsyncTick=1
FX.BatchAsync=1
FX.BatchAsyncBatchSize=1
AllowAsyncRenderThreadUpdates=1
AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1
AllowAsyncRenderThreadUpdatesEditor=1
s.AsyncLoadingThreadEnabled=True
Updated 06.05.2025
Now the game runs in DirectX 12 from the box, so what you can try, is go back to DirectX 11 by typing -dx11 in games launch options.

And also, Instead of that other Engine.ini stuff above, use this:

[/script/engine.renderersettings]
r.MaxAnisotropy=16
r.SkylightIntensityMultiplier=1.5
r.Color.Mid=0.44
r.EyeAdaptation.LensAttenuation=0.83
r.EyeAdaptation.ExponentialTransitionDistance=4.2
r.DefaultFeature.AntiAliasing=2
r.Reflections.Denoiser=2
r.Reflections.Denoiser.TemporalAccumulation=1
r.TemporalAA.Algorithm=1
r.TemporalAACurrentFrameWeight=0.2
r.TemporalAAFilterSize=1.0
r.TemporalAASamples=4
r.TemporalAASharpness=0
r.TemporalAA.Upsampling=1
r.PostProcessAAQuality=6
D3D11.AFRUseFramePacing=1
D3D11.Aftermath=0
D3D11.AsyncDeferredDeletion=1
D3D11.ForceThirtyHz=0
D3D11.InsertOuterOcclusionQuery=1
D3D11.MaximumFrameLatency=3
D3D11.ResidencyManagement=1
r.GraphicsThread.EnableBackgroundThreads=1
r.GraphicsThread.UseThreadedDestruction=1
r.GTSyncType=2
r.RHIThread=1
r.RHIThread.Priority=2
r.RHICmdUseParallelAlgorithms=1
r.RHICmdUseThread=1
RHI.ResourceTableCaching=1
RHI.SyncAllowEarlyKick=1
RHI.SyncThreshold=999
r.RHI.UseParallelDispatch=1
r.RHICmdBuffer.EnableThreadedCompletion=1
r.RHICmdBypass=0
r.IO.UseDirectStorage=1
r.IO.VirtualTextures=1
r.AsyncCompute=1
r.AsyncCompute.AdaptiveBuffer=1
r.AOAsyncBuildQueue=1
r.AsyncCompute.ParallelDispatch=1
r.AsyncCreateLightPrimitiveInteractions=1
r.AsyncPipelineCompile=1
r.CompileShadersForDevelopment=0
r.CookOutUnusedDetailModeComponents=1
r.D3D.RemoveUnusedInterpolators=1
r.EnableAsyncComputeTranslucencyLightingVolumeClear=1
r.EnableAsyncComputeVolumetricFog=1
r.UseAsyncShaderPrecompilation=1
r.GPUCrashDebugging=1
r.CrashGPURead=1
r.GPUCrashDump=0
r.ParallelGatherNumPasses=2
r.ParallelGatherOptimization=1
r.ParallelGatherTranslucency=1
r.ParallelInitViews=1
r.ParallelPrePass=1
r.ParallelTranslucency=1
r.ParallelVelocity=1
[/script/engine.engine]
bAllowMultiThreadedShaderCompile=1
bUseBackgroundLevelStreaming=1
bSubtitlesEnabled=0
MaximumLoopIterationCount=10000000
bSmoothFrameRate=0
bUseFixedFrameRate=0
FixedFrameRate=60.000000
MinDesiredFrameRate=60.000000
bUseBorderlessWindow=1

[/script/engine.streamingsettings]
s.AsyncLoadingThreadEnabled=1
s.AsyncLoadingThreadPriority=2
s.MinBulkDataSizeForAsyncLoading=262144
s.ProcessPrestreamingRequests=1
s.WarnPrioritizedJobsLimit=0
s.EventDrivenLoaderEnabled=1
s.ForceFullyLoad=0
s.PriorityAsyncLoadingExtraTime=15.0
s.LevelStreamingActorsUpdateTimeLimit=5.0
s.PriorityLevelStreamingActorsUpdateExtraTime=5.0
s.LevelStreamingComponentsRegistrationGranularity=10
s.UnregisterComponentsTimeLimit=1.0
s.LevelStreamingComponentsUnregistrationGranularity=5
s.MaxPackageSummarySize=16384
s.ActorPrioritizationEnabled=1

[/script/engine.garbagecollectionsettings]
gc.MultithreadedDestructionEnabled=1
gc.AllowParallelGC=1
gc.CreateGCClusters=1
gc.ActorClusteringEnabled=1
gc.BlueprintClusteringEnabled=1
gc.UseDisregardForGCOnDedicatedServers=1
gc.TimeBetweenPurgingPendingKillObjects=61.1
gc.NumRetriesBeforeForcingGC=10
gc.MaxObjectsNotConsideredByGC=1
gc.SizeOfPermanentObjectPool=0
gc.FlushStreamingOnGC=0
gc.NumThreads=3

[ShaderCompiler]
bAllowAsynchronousShaderCompiling=1
bAllowCompilingThroughWorkerThreads=1
bAsyncShaderCompileWorkerThreads=1
bEnableOptimizedShaderCompilation=1
MaxShaderJobBatchSize=150
MaxShaderJobs=1000
NumUnusedShaderCompilingThreads=2
ProcessGameThreadTargetTime=0.0166
WorkerProcessPriority=1

[ShaderPipelineCache]
r.ShaderPipelineCache.AsyncCompileRate=32
r.ShaderPipelineCache.BackgroundBatchSize=32
r.ShaderPipelineCache.BatchTime=2
r.ShaderPipelineCache.Enabled=1
r.ShaderPipelineCache.PrecompileBatchTime=5
r.ShaderPipelineCache.PrecompileFrameTime=20
r.ShaderPipelineCache.StartupCache=1
r.ShaderPipelineCache.ReportPSO=1
r.ShaderPipelineCache.GameFileMaskEnabled=1
r.ShaderPipelineCache.StartupMode=3
r.ShaderPipelineCache.StartupLogLevel=0

[DevOptions.Shaders]
bAllowShaderCompilingWorker=1
bOptimizeForLocalShaderBuilds=1
bUseBackgroundCompiling=1
WorkerThreadPriority=0
NumUnusedShaderCompilingThreads=2
ProcessGameThreadTargetTime=0.0166

[Engine.InputSettings]
bEnableMouseSmoothing=0
bViewAccelerationEnabled=0
RawMouseInputEnabled=1
FOVScale=0.011110
DoubleClickTime=0.200000

[RenderingThread]
bAllowAsyncRenderThreadUpdates=1
bAllowThreadedRendering=1
RenderingThreadPriority=1

[Physics]
p.AsyncSceneEnabled=1
p.Chaos.PerParticleCollision.ISPC=1
p.Chaos.Spherical.ISPC=1
p.Chaos.Spring.ISPC=1
p.Chaos.TriangleMesh.ISPC=1
p.Chaos.VelocityField.ISPC=1
p.Chaos.VisualDebuggerEnable=0
p.bDisableKinematicKinematicCollisions=1
p.bDisableKinematicStaticCollisions=0
p.bEnableStabilization=1
p.bSubstepping=1
p.NumThreads=4

[/script/akaudio.aksettings]
bEnableMultiCoreRendering=1
MaxSimultaneousReverbVolumes=4
DefaultOcclusionCollisionChannel=ECC_Visibility
DefaultFitToGeometryCollisionChannel=ECC_WorldStatic
AkGeometryMap=()
GlobalDecayAbsorption=0.500000
DefaultReverbAuxBus=None
EnvironmentDecayAuxBusMap=()
HFDampingName=
DecayEstimateName=
TimeToFirstReflectionName=
HFDampingRTPC=None
DecayEstimateRTPC=None
TimeToFirstReflectionRTPC=None
AudioInputEvent=None
AcousticTextureParamsMap=()
SplitSwitchContainerMedia=False
SplitMediaPerFolder=False
UseEventBasedPackaging=False
AskedToUseNewAssetManagement=False
MigratedEnableMultiCoreRendering=False
FixupRedirectorsDuringMigration=False

[CrashReportClient]
bAgreeToCrashUpload=0
bImplicitSend=0
bIsDataCollectionEnabled=0

[Core.Log]
Global=none
LogShaders=none
LogStreaming=none
LogInit=none
LogLoad=none
LogGarbage=none
LogNetPlayerMovement=none
LogNet=none
LogNetTraffic=none
LogPhysics=none
LogRenderTargets=none
LogAICategory=none
LogAnimation=none
LogAudio=none
LogCompression=none
LogContentStreaming=none
LogCrash=none
LogEngine=none
LogFile=none
LogGame=none
LogHttp=none
LogInput=none
LogLightMass=none
LogMaterial=none
LogMaterialShader=none
LogMemory=none
LogMobile=none
LogParticles=none
LogProfiling=none
LogShaderCompilers=none
LogSlate=none
LogStats=none
LogTexture=none
LogUAV=none
LogUObjectGlobals=none
LogUnit=none
LogWindows=none
LogSOS=none

[Engine.ErrorHandling]
bPromptForRemoteDebugging=0
bPromptForRemoteDebugOnEnsure=0
bEnableRedirectToThreadLocalStorage=1

[/script/winstrumentedprofilerssettings.wtelemetrysettings]
bEnableTelemetry=0

[FATHydraCrashHandler]
LogCrashReportHydra=0
LogCrashUploader=0

[/script/engine.networksettings]
net.AllowAsyncLoading=1
net.IsPushModelEnabled=1
net.UseAdaptiveNetUpdateFrequency=1
net.MinDynamicBandwidth=4000
net.MaxDynamicBandwidth=7000


That's it.....for now....
Idk, these steps allowed me to have additional performance not only in Postal 4, but in games that require a bit of tweaking. I'll probably update this garbage guide if I find anything new.
18 Comments
orphan crippler 1 Jul @ 6:31pm 
i cant find the config folder :( nor engine.ini :steamsad:
Furry Slurry 20 May @ 6:56am 
Okay its the same as the engine stuff since i got confused on what to do
Dzarmer  [author] 20 May @ 6:56am 
Disk letter and username can be different, duh, used this as an example
Dzarmer  [author] 20 May @ 6:55am 
Navigate to Postal 4 config folder, it's located on the main disk with your windows, for me its "F:\Users\Dzarmer\AppData\Local\Postal4\Saved\Config\WindowsNoEditor"

Find a lil file called "Engine.ini"

After everything leave a blank and put in this:
Furry Slurry 20 May @ 6:53am 
Where do i put in Updated 06.05.2025 stuff?
SWEGTA 5 May @ 7:00am 
thanks, anon
it performs much better now <3
Julian Core 23 Dec, 2024 @ 7:27am 
im not sure if its mine, game's or this guide's fault but tweaking UE4 bodies (after shotgun kills) began to disappear whenever im close to them
⛧Torta∴$layer⛧ 19 Oct, 2024 @ 8:56pm 
Its a damn shame that the game runs like absolute shit right out of the box. This guide is a life saver :steamthumbsup:
seth ✪ 28 Aug, 2024 @ 7:40am 
I turned off fps cap, it went from 45 to 100~ fps
Dante 19 Dec, 2023 @ 4:25am 
I don't need any of this but it's still a really good guide. I love all the research put into this.