Articles on: Physgun Services

Physgun Utilities - Engine Optimizations & Protection

What is Physgun Utils?


Physgun Utils is a custom made module that is loaded before the the main engine, this module allows us to deliver Protection and Optimizations directly to your Garry's Mod server!

Some key notes:
You can find the configuration file in the root of your Garry's Mod server named physgun.json
If the configuration file has a typo it will be renamed to physgun.json.bak and the default configuration will be applied.
The module can be disabled at anytime in the Startup Parameters under Physgun Utils (It is not recommended to disable this feature)

Getting help


Most of the features in Physgun Utils are properly configured to be left alone for most server owners. However if you have a specific use case you need to modify or unusual setup we would be more than glad to help you!

Join our Discord to get assistance with Physgun Utils if you are unsure what to configure or are getting conflicts with it!

Documentation


Please make sure to read these carefully and thoroughly to understand all of the options before configuring anything!
Note: If you're having issues with any of the configuration feel free to seek out help in our Discord
TIP: You do not need to restart your server after saving settings, simply run physgunserver reload in console after saving changes!

Anti-Exploit Configuration


Catches common exploits that most servers are vulnerable to all at the engine level before they can cause any damage.

KeyDefaultTypeDescription
BanTime0NumericSets the ban time for any triggered punishment. Time is determined by minutes
BanTriggerfalseBooleanBans the user for triggering any Anti-Exploit protections if set to true.
KickTriggertrueBooleanKicks the user for triggering any Anti-Exploit protections if set to true.
BypassNetmessages[""]ArrayA list of net messages set to be ignored by all checks.
ChokeCount80NumericThe max net messages a player can send within the ResetTime limit. It's recommended to tune this for your server.
EnabledtrueBooleanEnables the Anti-Exploit module.
LogFailstrueBooleanLogs any Anti-Exploit failures in the server console.
NetLoggertrueBooleanLogs every net message and the total time the Lua VM took to process the net message. Useful for optimization or tracking down exploits!
ResetTime1000NumericThe time in milliseconds that net messages are stored for monitoring the ChokeCount
TrainingModetrueBooleanDisables all punishments, good for figuring out a safe choke limit to avoid false positives.


Async Console Configuration


Improvements to the game console allowing for logging without diminishing performance and filtering out messages in console!

KeyDefaultTypeDescription
EnabledtrueBooleanEnables the Async Console
FilterConsoleOutputRegex[""]ArrayA regex filter used to stop certain messages from appearing in the console. Useful for useless warnings!
LogFiletrueBooleanLogs console to a file, similar to how -condebug works but will not effect performance.


Crash Handler Configuration


Catches engine level crashes and dumps the Lua stack for debugging!

KeyDefaultTypeDescription
CrashScreentrueBooleanEnables crash screen to be shown to clients if the server crashes. Informs users of the server starting back up in real-time!
EnabledtrueBooleanEnables the crash handler module.
InfiniteLoopDetectiontrueBooleanDetects if the server is stuck in an infinite loop (e.g. the server froze) and will restart the server. No other crash detector looks for infinite loops.
MaxLoopTime20NumericIf the server is stuck in loop for 20 seconds it will trigger InfiniteLoopDetection and restart the server since it froze.
SegfaultDetectiontrueBooleanDetects segfaults, these are usually crashes not related to the game server itself or informing you that your server has crashed.
StackOverflowDetectiontrueBooleanDetects if the server ran into a fatal Stack Overflow


Optimizations


Secret Physgun sauce making certain actions on the engine level run faster and have way less bloat! Making your server run faster in the end result.

KeyDefaultTypeDescription
DisableEnginePatchesfalseBooleanDisables engine patches we implement to keep the engine working fast and bloat free.
DisableWidgetstrueBooleanDisables GMod widget system as it is mostly just bloat unless specifically needed.
FastThinktrueBooleanOptimizes entity thinking to be a lot faster.
MultithreadedNetworkingBetafalseBooleanBETA: Experimental feature used to enable Multi-Threaded networking on your Garry's Mod server.

Updated on: 03/03/2024

Was this article helpful?

Share your feedback

Cancel

Thank you!