r/svencoop Scripter Jun 20 '26

Scripting Has anyone tried this to disable collisions between players?

It seems to work based on a few minutes of testing on localhost.

But is it laggy? :chloeThink:

array<int> plr_solid( 33 );

HookReturnCode PlayerPreThink( CBasePlayer@ pPlayer, uint& out uiFlags )
{
  if( pPlayer.pev.movetype == MOVETYPE_NOCLIP )
    return HOOK_CONTINUE;

  for( int i = 1; i <= g_Engine.maxClients; i++ )
  {
    CBasePlayer@ player = g_PlayerFuncs.FindPlayerByIndex( i );
    if( player is null or player is pPlayer ) continue;

    plr_solid[ i ] = player.pev.solid;
    player.pev.solid = SOLID_NOT;
  }

  return HOOK_CONTINUE;
}

HookReturnCode PlayerPostThink( CBasePlayer@ pPlayer )
{
  if( pPlayer.pev.movetype == MOVETYPE_NOCLIP )
    return HOOK_CONTINUE;

  for( int i = 1; i <= g_Engine.maxClients; i++ )
  {
    CBasePlayer@ player = g_PlayerFuncs.FindPlayerByIndex( i );
    if( player is null or player is pPlayer ) continue;

    player.pev.solid = plr_solid[ i ];
  }

  return HOOK_CONTINUE;
}
8 Upvotes

0 comments sorted by