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.
Key | Default | Type | Description |
---|---|---|---|
BanTime | 0 | Numeric | Sets the ban time for any triggered punishment. Time is determined by minutes |
BanTrigger | false | Boolean | Bans the user for triggering any Anti-Exploit protections if set to true. |
KickTrigger | true | Boolean | Kicks the user for triggering any Anti-Exploit protections if set to true. |
BypassNetmessages | [""] | Array | A list of net messages set to be ignored by all checks. |
ChokeCount | 80 | Numeric | The max net messages a player can send within the ResetTime limit. It's recommended to tune this for your server. |
Enabled | true | Boolean | Enables the Anti-Exploit module. |
LogFails | true | Boolean | Logs any Anti-Exploit failures in the server console. |
NetLogger | true | Boolean | Logs every net message and the total time the Lua VM took to process the net message. Useful for optimization or tracking down exploits! |
ResetTime | 1000 | Numeric | The time in milliseconds that net messages are stored for monitoring the ChokeCount |
TrainingMode | true | Boolean | Disables 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!
Key | Default | Type | Description |
---|---|---|---|
Enabled | true | Boolean | Enables the Async Console |
FilterConsoleOutputRegex | [""] | Array | A regex filter used to stop certain messages from appearing in the console. Useful for useless warnings! |
LogFile | true | Boolean | Logs 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!
Key | Default | Type | Description |
---|---|---|---|
CrashScreen | true | Boolean | Enables crash screen to be shown to clients if the server crashes. Informs users of the server starting back up in real-time! |
Enabled | true | Boolean | Enables the crash handler module. |
InfiniteLoopDetection | true | Boolean | Detects 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. |
MaxLoopTime | 20 | Numeric | If the server is stuck in loop for 20 seconds it will trigger InfiniteLoopDetection and restart the server since it froze. |
SegfaultDetection | true | Boolean | Detects segfaults, these are usually crashes not related to the game server itself or informing you that your server has crashed. |
StackOverflowDetection | true | Boolean | Detects 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.
Key | Default | Type | Description |
---|---|---|---|
DisableEnginePatches | false | Boolean | Disables engine patches we implement to keep the engine working fast and bloat free. |
DisableWidgets | true | Boolean | Disables GMod widget system as it is mostly just bloat unless specifically needed. |
FastThink | true | Boolean | Optimizes entity thinking to be a lot faster. |
MultithreadedNetworkingBeta | false | Boolean | BETA: Experimental feature used to enable Multi-Threaded networking on your Garry's Mod server. |
Updated on: 03/03/2024
Thank you!