The “Traffic Density” setting was notoriously disabled by developers early on due to crash issues. To reclaim performance in 2026 without making the streets look like a ghost town, we focus on Shadow Caching and Particle Culling. By reducing the frequency at which AI car shadows are updated, we free up the “Game Thread” for better traffic flow logic.
File Path
Bus Simulator 21 stores its Unreal configuration in the AppData local folder.
%LOCALAPPDATA%\BusSimulator21\Saved\Config\WindowsNoEditor\Engine.ini
Technical Note: If the file is empty, you must add the [SystemSettings] header at the very top before pasting the tweaks.
Optimized “Urban Flow” Configuration Block
Copy these settings to the bottom of your Engine.ini. This configuration targets the specific bottlenecks caused by high AI car counts.
| Parameter | Recommended Value | Technical Purpose |
r.Streaming.HiddenPrimitiveScale | 0.5 | Culls objects (like AI cars) much faster when they aren’t in view. |
r.Shadow.MaxResolution | 512 | Lowers the resolution of AI car shadows to save VRAM and CPU cycles. |
r.Shadow.DistanceScale | 0.6 | Prevents rendering shadows for cars that are far down the street. |
r.SceneColorFringeQuality | 0 | Disables Chromatic Aberration, which adds a layer of blur in heavy traffic. |
r.Streaming.PoolSize | [VRAM / 2] | Set to half your VRAM (e.g., 4096 for 8GB) to prevent asset hitching. |
[SystemSettings]
r.Shaders.Optimize=1
r.UseShaderPredraw=1
r.Streaming.HiddenPrimitiveScale=0.5
r.Shadow.MaxResolution=512
r.Shadow.DistanceScale=0.6
r.Shadow.CSM.MaxCascades=1
r.DepthOfFieldQuality=0
r.MotionBlurQuality=0
r.SceneColorFringeQuality=0
r.BloomQuality=0
r.AmbientOcclusionLevels=0
r.SSR.Quality=0
r.Streaming.PoolSize=4096
HowTo: Engineering the Ultimate Traffic Stability
Follow these GameEngineer.net technical steps to ensure your “Next Stop” update remains stable:
- The “DLSS/FSR” Fix: If you are experiencing unstable FPS while driving, go to your
GameUserSettings.ini(in the same folder) and ensureDLSS Mode=1orFSR Mode=1is active. Even on “Balanced,” these upscalers offload the frame-time cost of the highly-detailed bus interiors. - Foliage LOD Locking: In the in-game menu, set Foliage to Ultra. Ironically, the GIANTS/Unreal transition in BS21 sometimes stutters when trying to load low-quality foliage LODs; forcing Ultra can actually stabilize frame-times by keeping the high-quality assets in the cache.
- The “Traffic Ghost” Bug: If AI buses appear out of thin air, increase your View Distance in-game but keep Shadows at Low. The “White Flash” spawning is a result of the engine trying to conserve CPU cycles by not tracking AI beyond a small radius.
- Audio Buffer Culling: Much like Albion or EVE, 30 AI cars honking and driving simultaneously creates a massive audio load. Lower your Sound Channels in-game to Medium to prevent the CPU from stalling on acoustics.
- Multiplayer Sync: If multi-boxing or playing co-op, ensure the host has the strongest CPU. In BS21, the host calculates the “Seed” for all AI traffic; if the host stutters, every passenger stutters.
Technical Explanation: CSM Cascades and Draw Calls
In a high-density urban environment, Cascaded Shadow Maps (CSM) are the silent killer of performance. Every AI car casts a shadow that is calculated across multiple “cascades” (levels of detail based on distance).
By setting r.Shadow.CSM.MaxCascades=1 in the Engine.ini, you force the engine to use only one shadow layer. This effectively cuts the Draw Calls related to shadows by $60\text{–}75\%$. While the shadows might look slightly softer in the distance, it provides the necessary CPU headroom to calculate the complex “Grid Lock” AI logic that occurs at intersections, preventing the dreaded “Stop-and-Go” frame lag during your route.