You swing out to trade short with a teammate, bump shoulders, and your screen starts violently shaking, throwing your spray completely off target. Sound familiar? Or maybe you line up a set smoke, only for it to bounce off thin air. Every single one of these interactions comes down to collision—the physics calculations governing contact between solid objects, player models, and map geometry in Counter-Strike 2. In Source 2, Valve replaced the aging Havok engine with Rubikon to handle these physics calculations. If you want to understand how the engine ticks behind the scenes, our VRedux CS2 software breaks down the game's underlying mechanics. Here is how to toggle collision via the console, why bumping into models shakes your crosshair, and which geometry bugs Valve patched in recent updates.

Visualizing character collision meshes and invisible map barriers in Counter-Strike 2

At a Glance: CS2 Collision Fundamentals

Collision in CS2 is the physical calculation of contact between objects (player models, utility, weapons) and map geometry, calculated by Valve's Rubikon engine using invisible collision hulls and clip brushes. Teammate solidity is managed by the server variable mp_solid_teammates (accepting values 0, 1, or 2), while enemy collision on custom servers is toggled via mp_solid_enemies.

Key Technical Collision Parameters in CS2
Parameter / Mechanic CS2 Value Impact & Behavior
Physics Engine Valve Rubikon (Source 2) Contact resolution, friction, grenade bounces, and ragdoll physics
Teammate Collision (Premier) mp_solid_teammates 1 Teammates are fully solid: boosts work, but players block doorways
Semi-Permeable Teammate Mode mp_solid_teammates 2 Pass-through bodies with solid heads for vertical boosting (Casual)
Disable Teammate Collision mp_solid_teammates 0 Players walk straight through teammates (Deathmatch default)
Enemy Collision mp_solid_enemies 1 / 0 Enables (1) or completely disables (0) physical body contact with enemies
Movement Contact Visualization sv_show_move_collisions 1 Real-time rendering of player collision planes (requires sv_cheats 1)

Quick Selection: The Right Collision Command for Your Needs

Model solidity depends heavily on your server setup and practice goals. Instead of testing commands through trial and error, use these verified command pairs for your specific use case.

  • Practicing team boosts and competitive 5v5 timings: Run mp_solid_teammates 1 and mp_solid_enemies 1, then restart the round with mp_restartgame 1. This replicates standard Premier and FACEIT competitive settings—without it, jumping on teammates' heads will not work.
  • Deathmatch servers or large warm-up lobbies: Set mp_solid_teammates 0. Teammate models become completely transparent to movement, eliminating congestion around spawn points.
  • Custom matches or casual lobbies without doorway griefing: Choose mp_solid_teammates 2. This prevents teammates from blocking tight choke points while keeping their heads solid for vertical boosting.
  • Solo grenade lineups with stationary bots: Apply mp_solid_teammates 0 and mp_solid_enemies 0. You can walk straight through placed bots on both teams, though thrown grenades will still bounce off them.

How to Configure Teammate and Enemy Collision: Server Commands

Player model collision in CS2 is controlled by two core server cvars: mp_solid_teammates for friendly players and mp_solid_enemies for the opposing team. Neither command requires cheat mode, but they can only be changed by the local lobby host or a dedicated server admin with RCON access. On official Valve servers (Premier and Competitive), both values are locked to 1.

Important: You can only modify mp_solid_teammates and mp_solid_enemies on a local practice server or via RCON on a dedicated server. In official Valve competitive matchmaking, both parameters are strictly locked.
Entering the mp_solid_teammates console command in the Counter-Strike 2 developer console

Understanding mp_solid_teammates 0, 1, and 2: Premier, Casual, and DM

Setting this cvar to 0 completely turns off teammate collisions, letting you walk through friendly models while disabling all boost mechanics. A value of 1 activates the competitive Premier standard: player bodies are fully solid, enabling boosts while making it possible to block doorways and chokepoints. Setting it to 2 enables the hybrid Casual mode preset: player bodies are non-solid horizontally, but the top surface of the head remains a solid platform for boosts.

Configuring Enemy Collision: The mp_solid_enemies Variable

The mp_solid_teammates command has zero effect on interactions with opponents. On private servers, enemy collision is controlled independently via mp_solid_enemies: setting it to 1 (default) preserves solid enemy models, while 0 removes the physical barrier entirely, allowing players to walk straight through hostile models. This variable cannot be modified on official matchmaking servers.

How to Enable Player Pass-Through on Local Servers or via RCON

To adjust physical collision parameters, first enable the developer console in the game settings, then launch a local practice map or connect to your server.

  1. Press the tilde key (~) to open the developer console.
  2. Enter mp_solid_teammates 0 (on a dedicated server, use the prefix rcon mp_solid_teammates 0).
  3. If you also want to disable enemy collision, enter mp_solid_enemies 0.
  4. Restart the round by typing mp_restartgame 1 so the engine applies the new collision states to all entities.
  5. Verify the change: walk directly into a teammate or bot—your model will pass straight through without any resistance.

Boosting Accuracy Balance: The weapon_accuracy_stack_boost_limit Rule

The server cvar weapon_accuracy_stack_boost_limit balances weapon spread for players standing on teammates' heads. Set to 2 by default, it applies ladder inaccuracy penalties to any player supported by a stack of two or more teammates (a vertical tower of three or more players total). This mechanic prevents overpowered multi-man boost stacks from holding angles with pinpoint sniper accuracy.

Why Your Crosshair Shakes on Collision: The Source 2 Movement Bug

The rapid screen shake (jitter or rubberbanding) when running alongside teammates in CS2 is an experience every player encounters leaving spawn in a tight group. In official matchmaking, this stuttering has nothing to do with high ping or your internet connection.

Moment of two players bumping into each other at spawn in CS2 causing camera jitter

The Root Cause: Client-Side Prediction vs. Server-Side Sub-Tick

Technical analysis from dataminers and community engineers points to a desync between client-side movement prediction and server-side contact resolution under the sub-tick architecture. Your PC predicts a smooth forward path locally, but the moment two player bounding capsules collide, the Rubikon physics engine on the server calculates a repulsive impulse and snaps your coordinates back. The client is forced to roll back its predicted position instantly (prediction rollback), which renders on your screen as violent jitter.

How to Avoid Micro-Stutter and Rubberbanding During Site Executes

There are no console commands to disable this effect in competitive play, and tweaking network settings will not fix it. Many players confuse this physics desync with weapon animation bobbing, searching for ways to tweak viewmodel and screen shake while firing, but resolving player model friction comes strictly down to disciplined spacing.

  • Space out your paths: In open areas (Dust2 Long, Inferno Banana), run parallel lines while keeping at least three feet of distance between models.
  • Stagger your entry: When pushing narrow choke points (Mirage Palace, Overpass Connector), designate clear entry fraggers rather than trying to squeeze through the doorway together.
  • Minimize micro-strafing: Avoid erratic left-to-right adjustments during the first few seconds out of freeze time while running in a tight group.

Map and Grenade Collision: Invisible Walls, Clip Brushes, and 2026 Patches

Level geometry in CS2 is split into rendered polygons and invisible utility surfaces: Player Clip (blocks player movement) and Grenade Clip (bounces thrown utility). Level designers rely on them to smooth out staircases, block decorative clutter, and eliminate unintended boost spots. These collision calculations operate completely independently from how bullet impacts register against CS2 skeletal hitboxes.

Displaying invisible Player Clip walls around decorative props on a competitive CS2 map
Timeline of Official CS2 Geometry and Collision Fixes
Patch Date Map / Mechanic Fix Summary In-Game Status
September 4, 2025 Ancient, Shoots Grenade collision near water, rock ledges, and staircases Improved (rare bounce inconsistencies persist)
April 29, 2026 Office, Dust2 Tarp collision on CT Spawn (Office), Xbox crate ledge alignment (Dust2) Fully resolved
May 20, 2026 Cache Smoothed collision planes around windows, vent grates, and door frames Fully resolved
August 3–4, 2026 All Maps, Cache Patched grenades clipping through solid walls; removed Outside A solo boost Patched by Valve
August 19, 2026 Movement Physics Fixed abnormal player velocity acceleration when sliding along walls Fully resolved

Why Grenades No Longer Clip Through Walls: The August 2026 Update

Prior to August 2026, high-velocity jump-throws at shallow angles could slip past thin barriers before the physics tick registered the impact. This exploit allowed players to throw smokes and Molotovs straight through metal vent panels on Nuke and seam seams on Cache. In the August 3–4 update, Valve reworked the Continuous Collision Detection (CCD) algorithm for all utility, completely eliminating wall clipping.

Cache, Ancient, and Overpass Updates: Solo Boost Removals and Gap Fixes

On Cache, level designers eliminated the popular solo boost at Outside A (Shelter) by sealing the ledge behind a smooth vertical clip brush, making the position inaccessible without a teammate. Ancient received two separate collision passes on stone staircases and water surfaces, though subtle micro-ledges still require care when throwing utility at your feet. On Overpass, community feedback prompted Valve to smooth out the invisible clip boundaries around trash cans and park benches that previously caused flashbangs to bounce erratically.

The Wall Run Velocity Glitch Fix

The August 19, 2026 patch fixed an exploit in movement physics: running into flat walls at sharp angles while holding W and A generated an unintended velocity boost. This speed glitch broke opening engagement timings across several maps. Valve corrected how friction surface normals are calculated, enforcing standard weapon speed caps whenever players slide against map geometry.

Debug Lab: Console Commands for Testing Collisions

The legacy CS:GO command r_drawclipbrushes is not present in Source 2 because collision geometry is compiled directly into custom physics meshes. To test grenade trajectories and pinpoint player snag points on a local server, you must rely on verified Source 2 engine debug tools under sv_cheats 1.

Viewing player movement collision contact points with sv_show_move_collisions 1

sv_show_move_collisions 1: Visualizing Movement Contact Planes

The console variable sv_show_move_collisions 1 renders the contact planes between your player capsule and map objects in real time. It draws colored lines and impact polygons across collision surfaces, showing exactly where your model snags while strafing. This command requires sv_cheats 1 and introduces significant CPU overhead, so keep it toggled off during normal play.

prop_debug_collision: Inspecting Interactive World Props

The prop_debug_collision 1 command highlights interactive and static props across the map. It color-codes objects based on their assigned collision group, letting you instantly verify whether a specific decorative prop blocks player models, deflects grenades, or lets bullets and movement pass straight through.

Ready-to-Use practice.cfg and Resetting Commands

To set up your own testing environment, save the code block below as practice.cfg inside your game/csgo/cfg/ folder and launch it from the console using exec practice. If you manage a dedicated server, you can also explore our breakdown of essential server console commands to fine-tune custom matches.

// CS2 Collision Debug Config
sv_cheats 1
bot_kick
mp_limitteams 0
mp_autoteambalance 0
mp_warmup_pausetimer 1
mp_solid_teammates 1
mp_solid_enemies 1
prop_debug_collision 1
sv_show_move_collisions 1
mp_restartgame 1
echo ">>> COLLISION LAB LOADED <<<"

To turn off debug visualization and restore standard performance without colored wireframes cluttering your screen, run these reset commands:

// Reset debug parameters
sv_show_move_collisions 0
prop_debug_collision 0
sv_cheats 0
mp_restartgame 1

Mastering collision mechanics keeps you from losing momentum during critical executes and helps coordinate tighter team spacing. Test map geometry, practice advanced boost spots, and check out our other CS2 guides to level up your gameplay with technical precision.

CS2 Collision FAQ: Frequently Asked Questions

Here are clear answers to the most common questions regarding player model solidity, collision jitter, and debugging map geometry in CS2.

How do I toggle teammate collision on or off in CS2?

Teammate collision is controlled by the server cvar mp_solid_teammates. Setting it to 1 enforces full model solidity (competitive standard), 0 lets you pass straight through teammates (Deathmatch default), and 2 allows pass-through movement while keeping heads solid for boosts (Casual mode). Enter your desired value in the console and apply it by restarting the round with mp_restartgame 1.

Can you disable enemy collision on a custom server?

Yes. On local or dedicated servers, enemy collision is managed by mp_solid_enemies. Setting it to 0 disables the physical barrier, letting players pass through hostile models, while 1 restores default collision. This parameter cannot be modified on official Valve matchmaking servers.

Why does the screen shake when running next to a teammate in CS2?

Technical analysis indicates this jitter is caused by desync between client-side prediction and server-side Rubikon capsule collision resolution under the sub-tick system. When player capsules collide, the server calculates contact friction and forces a prediction rollback on the client. This issue cannot be resolved through client network commands—the only effective solution is maintaining proper spacing during rotations.

How do I see player collision points with walls in CS2?

To visualize real-time contact points between your player model and map geometry, enable sv_cheats 1 on a local server and enter sv_show_move_collisions 1. Keep in mind that the legacy CS:GO command r_drawclipbrushes is not supported in CS2.

What does the weapon_accuracy_stack_boost_limit cvar do?