upd:
Не упомянул в минусах, что по-умолчанию захватываются все эвенты и это может быть неудобно.

Один из вариантов ограничения, какие эвенты захватывать, а какие - нет, это проверка локального переключателя.
Делать это нужно в той части, которая отвечает за анализ результата захвата.
В условие нужно дописать (и это позволит захватывать только те эвенты, у которых включен локальный переключатель "A"):
Код:
&& true === $gameSelfSwitches.value([$gameMap._mapId, choosenEvent._eventId, 'A'])
Спойлер Полный код скрипта условия с доп. проверкой локального переключателя:

Код:
let pX = $gameVariables.value(41);let pY = $gameVariables.value(42);
let pD = $gameVariables.value(43); let choosenEvent = $gameVariables.value(44);
if(0 !== choosenEvent && true === $gameSelfSwitches.value([$gameMap._mapId, choosenEvent._eventId, 'A'])){
  if(2 == pD){ choosenEvent._x = pX; choosenEvent._y = pY + 1;
  }else if(4 == pD){ choosenEvent._x = pX - 1; choosenEvent._y = pY;
  }else if(6 == pD){ choosenEvent._x = pX + 1; choosenEvent._y = pY;
  }else if(8 == pD){ choosenEvent._x = pX; choosenEvent._y = pY - 1;
  }
  choosenEvent._through = true;
}else{
  $gameSwitches.setValue(41, false);
}

Вместо 'A' можно написать 'B' , 'C' или 'D' .