[ANY / CSGO] BanId Fix
IF YOU ARE USING CSGO, PLEASE INSTALL THIS: https://github.com/komashchenko/BanId_Fix/releases AND REMOVE MY PLUGIN (Credits to komashchenko)
If you know how to make gamedata for other games please let me know or submit a PR to github above, this is a better solution than my plugin but it currently only supports CSGO.
What is BanId Fix?
BanId fix was originally written to fix a bug in CSGO where players who joined the server while banned would get stuck and end up wasting slots, it now serves as a replacement for handling engine bans which are created using the "banid" command.
Why replace the engine bans?
Well, if you ban somebody using the "banid" command and then restart your server you will notice that player is unbanned again (At least from my experience in CSGO) so this plugin will seamlessly handle all engine bans using its own logic and an SQLite database and by doing this we are also killing 2 birds with one stone, we fix a known bug which causes ghost players to get stuck which waste slots and we also make the banid command work as it should of (Yes we are fixing bugs which Valve are too lazy to fix)
Can you be more specific about the Ghost bug?
A couple of months back Valve changed some code related to the ban list filter ("Server ban list filter is now enforced in early stages of client connection packet handling.") When they did this, they introduced a bug which results in servers being filled with "Ghost players" or stuck clients which are impossible to get rid of without a server restart. It appears to happen directly after a banned client tries to connect to the server, so this plugin will attempt to deal with them clients using safer logic to prevent the bug.
As you can see from the image, 4 players ("Ghosts") are stuck wasting slots, this happened because they joined the server while they were banned.
But I use SourceBans or something else so do I still need this?
Most likely yes, you will still have the ghost bug, (At least with an unmodified version of SourceBans) because when a banned player joins SourceBans will issue a shorter temp ban using "banid" to prevent them wasting server resources and spam rejoining.
What are the requirements?
These are optional but they provide the ability for the plugin to handle bans at a much earlier state, if you choose not to install these extensions then you should still be fine but I do recommend you run one
Notes / Known issues
- Copy the folder structure to your gameserver.
- Install one of the extensions depending on your game.
- Restart server.
I would like to thank everyone who has helped made this project possible, I am sorry if I forgot anyone.