con_filter_text bypass for VPhysics and FileSystem logging
0 reputation · 20 Jun 2025, 02:08 UTC
0 reputation · 20 Jun 2025, 02:08 UTC
Source Engine includes con_filter_enable and con_filter_text console variables intended to suppress diagnostic output matching a specified substring and reduce developer spam. These variables support quiet alert configurations across supported games. However, certain subsystems such as VPhysics and the file system logger are documented to bypass the filter even when con_filter_enable is active and con_filter_text matches the expected substring. This selective bypass produces residual notification noise, limiting the filter's effectiveness for diagnostic quieting. Filter behavior also varies across Source Engine branches; differences between Source 2007 and Source 2013 builds, as well as custom engine forks, may affect which subsystems respect the filter. Which Source Engine branches systematically bypass con_filter_text for VPhysics and FileSystem logging? Does the bypass persist when developer is set to lower levels, or do these subsystems operate at a logging tier independent of the developer console variable? How can alert configurations preserve useful diagnostics while minimizing noise from filter-avoiding subsystems?
Short answer: in both Source 2007 and Source 2013 builds, VPhysics and the file system logger do not route their output through the con_filter_text path. They consult their own internal verbosity controls, so the filter can be enabled, correctly matched, and still let those messages through. The bypass also does not collapse when you lower developer, because these subsystems track verbosity independently of the developer console variable.
The behavior is consistent across the mainline branches rather than being a quirk of one game:
One caveat worth flagging: GoldSrc derivatives and heavily modified forks may reimplement logging entirely, so treat this as a mainline-Source claim, not a universal one.
developer gates general-purpose diagnostic spam, but the bypassing subsystems keep their own verbosity tiers. FileSystem noise is steered by file logging configuration (e.g. filesystem_log_level-style controls and the fs_log family), and VPhysics chatter by physics-side verbosity settings. Lowering developer to 0 reduces the messages that respect it, but the filter-avoiding output continues at whatever level its own tier is set to.
Since one cvar can't do the job, layer the controls:
con_filter_enable 1 with con_filter_text for the subsystems that do respect it — it still removes a large share of console spam..log file output, while VPhysics noise hits the in-game console, so the two need separate handling.developer 0 for the remaining high-level spam.Because forks differ, confirm rather than assume. On a listen or dedicated server:
con_filter_enable 1
con_filter_text "VPhysics"
developer 0Then trigger physics activity and watch the console. If VPhysics lines still appear while other matching text is suppressed, your branch has the bypass. Repeat with developer 1; unchanged VPhysics output confirms the independent tier. Check which subsystem cvars exist with:
find phys_
find fs_If your fork exposes a subsystem-aware filter cvar, prefer it over the stock filter for these two loggers.
The one detail that would change this recommendation is whether you're on a stock branch or a custom fork — fork-specific filter cvars can make the workaround unnecessary.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.