Is !ThirdPerson Optimized?
Server owners and developers are often looking to make sure that their servers are running as smoothly as possible. Often, it comes down to the addons and gamemodes they are running on the server. Several tools exist that check average function run times and execution amounts, as well as a couple of other checks to help in figuring out what scripts are causing performance issues. This support article is meant to help clarify and explain portions of !ThirdPerson's performance and how it works.
General Performance Impact (Benchmarked):
- Serverside: Little to none
- Client: Little to none
Functions/Things that are Executed Often:
- View Angle Calculations
- !ThirdPerson features advanced view calculations and uses several of Garry's Mod's view hooks to recalculate views. This means that every frame for the client !ThirdPerson is hooking into the view angles and running calculations based on their configuration and permissions. While this may sound like a lot, it's not much for a game that is already calculating view angles at an advanced scale. This has little to no performance impact on the client and has no impact on server-side performance.
- Permission Checks
- !ThirdPerson features advanced permissions support for several admin mods as well as in-built permissions support for those without one of the supported admin mods. Because of this, permission checks are run frequently on the player's convar settings, view configuration, and so forth. This requires little to no performance.
- HUD Draw (Crosshairs)
- !ThirdPerson features dynamic crosshairs that are configurable. These crosshairs hook into Garry's Mod's HUD draw hook each frame which allows the crosshair to be drawn on the HUD. This requires little to no performance on the client and no performance at all on the server. Any regular dynamic HUD or crosshair will use this same method.
- General Configuration
- !Thirdperson features very advanced configuration for players and server owners/developers. Because of this, the configuration for view angles, crosshairs, and every aspect of the addon are updated frequently. This has little to no impact on the server or client.
!ThirdPerson is currently as optimized as possible. While I am always looking to optimize it further, please refrain from creating a support ticket that solely reports a number of times a certain function was run or the duration it was executed for. Please refer to the information above, or if you believe it to be a specific performance issue with !ThirdPerson feel free to open a support ticket. Please do keep in mind that the number of times a function is run or the duration that a function is run does not directly correlate with server/client performance.
Please feel free to create a support ticket if you have any further questions regarding this.