Plugin To Potentially Mitigate Poor Performance

Roy

New Member
5 Mar 2021
3
5
1
26
Hey everyone,

My name is Roy and I've been playing on EliteHunterZ's CS:S Zombie Hunting (V3) server since 2011. However, I didn't start playing it nearly daily until the past few years or so. I never registered on the forums, unfortunately. I'm not sure if Niko (at least that was their name at the time) is still the community or server owner still.

I just wanted to provide a potential solution to poor performance issues I've seen when players are stuck inside of each other. I know if there are many players at once stuck inside of each other, it'll result in poor performance and at times, the server FPS goes below 3 according to Valve/Source Engine's Net Graph. Normally, from what I've seen, an admin can force all players to go into "noblock" mode. However, a lot of times admins aren't on the server while this is happening and having some sort of automated way to trigger this would be better if it was stable.

Therefore, I quickly wrote a SourceMod plugin tonight that should achieve this. There may be some things I need to adjust. However, from the testing I've done on my Linux VM, it has been quite stable and works. If you need me to change or add anything, I'm willing to do so, though. The open-source project may be found below.

https://github.com/gamemann/Noblock-On-Lag

If you need additional documentation, please let me know. You will need to compile this plugin from source as well since I only released the source code.

I know this overall works as a work-around since it's detection-based and not fixing the actual issue. However, this may be useful if it's stable. The only drawback is it forces all players to go into noblock mode for x seconds depending on the CVar values. Something I may try doing in the future is forcing/teleporting a player's vector if found inside of another player when the server is suffering from performance issues (creating a for loop MAXATTEMPTS times).

I hope this helps and if you need anything, please let me know :)

Thank you for your time.
 
I've made the plugin into more of a module system. The new plugin may be found below.

https://github.com/gamemann/FPS-Threshold

It's a simple plugin that calls a forward if the average FPS goes under a threshold. Therefore, the following is an addon to the initial plugin which can be found below which forces noblock on all players for x seconds when the average FPS goes under a specified threshold.

https://github.com/gamemann/FPS-Threshold-Noblock

With that said, I apologize if my initial post came off as aggressive in any way. I was honestly out of it when writing the initial thread and all I want to offer is a potential solution to resolve the performance issues on the server when players are stuck inside of each other. Due to me making a module-like system, it should be easier for me to implement other potential solutions if need to be. If this isn't a valid solution, I understand. If there's anything I can do to improve the plugin, please let me know.

Thank you for your time, again.
 
Hey @Roy
Sorry for the lack of response, I totally missed the thread.
This looks like a very interesting approach, I'd be curious to trying it out!
 
  • Like
Reactions: Janno Norbaten