Fixing PERPheads on Windows: The Complete Launch Options & Performance Guide

Messages
29
Reaction score
93
Points
90
Fixing PERPheads on Windows: The Complete Launch Options & Performance Guide

Before I start, I don't exactly know how helpful this will be to users, and I don't know if people even care, but I had alot of issues when I used windows so here it is :3


Freezing around the Bazaar, sudden frame drops during police chases, and out of memory crashes are constant issues on Windows. Alot of players try to solve this by copying decade old launch option strings that definetly do not work on modern systems.

I actually main Linux and rarely use Windows, but I booted it up specifically just to test all these different launch parameters and engine configurations so we can see what actually helps and what is pure bs. Because PERP relies on hundreds of custom vehicle models, high resolution skins, and heavy GLua scripts running on an older Source engne, bad launch commands will actively hurt your stability.

Here is the full breakdown to get your game running smoothly.


---

1. The Core Requirement: 64 Bit Chromium Branch

Do NOT skip this. The default 32 bit branch caps GMod at around 3.5 GB of RAM usage. When PERP tries to mount all server content, high resolution textures, and custom vehicles, you will hit an Out Of Memory crash before you even walk out of Market St.

How to switch:
1. Open Steam, right click Garry's Mod, and select Properties.
2.
Click the Betas tab.
3. Under Beta Participation, select:

Code:
x86-64 - Chromium + 64-bit binaries

Let Steam download the update.

---

2. Outdated Launch Options to Remove

Before adding anything new, clear out your existing launch options. Most guides recommend parameters that actively hurt your performance on modern hardware.

The high priority myth: People add
Code:
-high
thinking it allocates more CPU power to the game. On Windows 10 and 11, it starves the desktop window manager and mouse inputs, leading to floaty mouse lag and audio crackle.

The threads command: People paste
Code:
-threads
with their core count. Source automatically queries your logical CPU cores on launch. Forcing it manually can cause thread race conditions and crashes.

The heapsize command: Commands like
Code:
-heapsize
were completely removed by Valve over ten years ago. GMod ignores it entirely. It is pure placebo.

The legacy DirectX command: Commands like
Code:
-nod3d9ex
force old legacy DirectX 9 rendering. It breaks modern desktop composition memory sharing and makes alt tabbing take several seconds.

---

3. Valid Launch Options That Actually Help

Go to Garry's Mod Properties, open the General tab, and paste this clean string into Launch Options:

Code:
-nojoy -nosteamcontroller -novid -nohltv -particles 512 +exec autoexec.cfg

Why these work:

Code:
-nojoy
: Completely disables joystick and gamepad polling to eliminate background driver checks.
Code:
-nosteamcontroller
: Stops Steam overlay background hooks from polling virtual gamepads.
Code:
-novid
: Skips the Valve intro sequence to load straight to the main menu.
Code:
-nohltv
: Shuts down internal SourceTV hosting features in the background to free up system memory.
Code:
-particles 512
: Clamps particle limits to keep frametimes steady during heavy smoke, fire, or explosions.
Code:
+exec autoexec.cfg
: Forces your custom config file to execute reliably on every startup.

---

4. Setting up autoexec.cfg for Permanent Multithreading

Most players seem to put multicore launch options directly into their launch options but Source resets multi core rendering commands back to single core defaults whenever you change video settings or reconnect to the server.
Placing them in
Code:
autoexec.cfg
makes them stay permanent.

Navigate to your GMod config directory:
Code:
C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\cfg

Create a text file named
Code:
autoexec.cfg
if one does not exist, and paste this block:
Code:
// PERP windows multicore opt
gmod_mcore_test 1
mat_queue_mode 2
cl_threaded_bone_setup 1
cl_threaded_client_leaf_system 1
r_threaded_renderables 1
r_threaded_particles 1
r_queued_ropes 1
fps_max 0

---

5. In Game Graphics Settings That Actually Matter

Launch options cannot bypass the engine bottlenecks when rendering dozens of entities. Adjusting these settings will significantly reduce draw call drops around the Bazaar and City Hall:

Shadow Detail: Set this to Low. High shadow detail enables dynamic shadow depth for vehicle headlights and sirens. When emergency vehicles arrive at a scene with flashing lights, dynamic lighting drops frames to single digits. Setting it to Low disables dynamic projection while keeping basic shadows.

Water Detail: Set to Simple Reflections.

F1 Menu Settings: Open your PERPheads F1 menu, go to settings, and lower vehicle accessory render distance. This stops the client from drawing cosmetic accessories on cars parked across the street.

---

Keep in mind that no launch option will magically give you 200 FPS in a crowded Bazaar with eighty players.
The engine runs Lua on a single thread and DirectX 9 has physical draw call limits.
However, this setup will eliminate unnecessary stutter and stop memory crashes.

If anyone needs support, post your specs below and I will get back to you <3


- From A Perp Fur
 
Last edited:
Back
Top