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 DiscordTIP: 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

Was this article helpful?

Share your feedback

Cancel

Thank you!