Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Where the hell are timed mutes and gags?
#1
That was a rhetorical question, drop the pitchforks..

If you don't know, I made an addon last November that expanded the functionality of the mute and gag commands in ULX by adding two main features:
  1. The ability to say how long, in minutes, you wanted to mute people for, and after that time the player was automatically unmuted.
  2. Have mutes and gags persist between disconnects, so players can't evade punishment until they actually wait out their mute.
This was intended to be a drop in replacement for our current commands. No rule changes or guideline changes, just an added convenience feature for two already very useful commands. Someone says a slur? !tgag (whoever) to gag for 3 minutes. It's the exact same as what you would normally do, but there's a T on the front, and you don't have to ungag them at the end. When I released it, the server admins of all four servers were on board and excited to use have it on their servers, which was pretty surprising. It was put on the TTT test server and tested by the TTT admins, with basically no problems. That said.. what's the holdup?

Well, the addon was sent to Dink. A lot. It took 6 months for me to get any kind of response back, and it was through proxy by a resigned admin, @Mother Nuru.. One hell of a turnaround time, but anyway, Dink wanted to see two changes made before adding it to the servers. Dink has resisted adding the addon up to this point without these changes:
  1. When trying to talk, or after reconnecting to the server, the player should be notified that they are muted or gagged.
  2. The mute timer needs to count down even after the player has left the server, like how bans work. (Currently the timer only counts down while the player is connected)
That first part I agree with, but that last part is a lot to unpack. Let's talk about that.

Problem #1: Why does it need to behave like bans?
This addon was designed to be a drop in replacement for normal mute and gag commands, I designed it specifically for that purpose and even put in restrictions to prevent it from being used otherwise because if it was it would break. This addon can only be used to mute people for a maximum of 60 minutes. Leaving someone muted for longer than that does indeed cause problems that would be fixed by counting the timer down while the player is disconnected. 60 minutes is already a lot, since the player would have to stay connected for one hour to clear the mute, but muting for, say, 1 day, would mean the player needs to be connected for 24 hours. As the time scales up, muting people for that amount of time does not work practically.

That raises the question.. when have we EVER had the need to mute people for long enough for this to even be a problem? People do not get muted for longer than 30 minutes, MAYBE 45, but I have never seen anyone muted for a whole hour, which is why I fought the prophunt admins on the issue a while back before I finally gave up and just changed it up to an hour max. Yes, if I made the addon behave more like the ban command, we could indeed mute people for hours, days, or even months, but seriously, if you feel the need to mute someone for THAT long, you should probably be banning them. Yes I know we have permagagged people in the past, and I think that's bad practice too, I will explain why later.

Problem #2: Banning people is hard
Enough said, honestly.. the simplest thing I could do is calculate down to the minute the date and time to unmute them and store it in their pdata table, and whenever they try to talk or chat check that date back, and if it's expired unmute them and clear the record, but even that is extremely hard. I have no idea how to do date time calculations. It's hard in PYTHON, and that's using a library, can you imagine how stupid that would be in Lua of all things? I'm not a programmer by trade, I just happen to know how to write some stuff. I can't do this with my current skill.

My next option was to reverse engineer the ULX ban command and see how it does things, so I looked through it, and that's not happening either. All logic that goes into banning someone is handled by the ULib library, and the code to do something relatively simple (Ban someone, add it to a list with the date, unban someone, remove it from the list) is 235 lines. That is longer than the ORIGINAL code I reverse engineered to make timed mutes and gags, and that was for the whole shebang, this would be ONLY for the "ban" feature. The actual code to "count down" the mute timer is 19 lines of actually readable code.. much more my speed.

Problem #3: Accountability
Lets say hypothetically that I figured out how to make timed mutes and gags use time of day instead of a simple minute counter, and everything worked perfectly. We could ban people for 5 days, 30 days, 365 days, or until the end of time with no problem! Awesome news, but... how would you hold staff members accountable when they muted or gagged someone? How would you know the reason for a mute or gag even a few days after it happened? How would you know the reason for the mute? These are all problems that do not have to be addressed in the current version of timed mutes and gags because the time frame is small enough, but when you start adding features that extend the capability to larger time frames, you have to use more and more complicated systems to maintain accountability of the mutes, like how bans work. This is why the ULib code to ban people is so complicated.. you not only have to actually be able to ban and unban people, but you need to be able to go back and check why, who, and how long to maintain proper accountability.

Imagine if you got muted for 1 month for some reason (we still have people permagagged, this is not out of the question), and you asked an admin two weeks into your mute how much longer you were muted for, or who muted them, or why they were muted, or if they could "appeal the mute", how would that admin track any information about that mute? The only record they would have of it happening is server logs, which only Dink has. What would happen is the admin would have to ask in the staff discord "why was x player muted", and what would probably happen is nobody would know who did it or why it was done.* For bans, this problem does not happen, because any player on the server can look at the ban page and just search the person and get how long they were banned for, the reason they were banned, who banned them, etc.
*for a time frame this long there would probably be done by an actual admin and there would be some manual logging, but this is just a high level example


TL;DR, there is a misunderstanding on what this addon is supposed to do, and unless Dink changes his expectations of the addon, it's not getting added. This addon is not a "temporary permagag" addon, it is an upgrade to the regular mute and gag commands that protects against punishment evasion and automatically unmutes people after the set time. It will never be an analog of the permagag command.

I made this thread mainly to formally state that this shit aint going to work how Dink wants it. There has been no progress in several months, and bugging the admins is not working. I have discussed with several admins and ex admins at this point to try to get headway on this, and while the admins agree with the point I was making, Dink does not.

as I say, squidward cash register head slamming.gif


Messages In This Thread
Where the hell are timed mutes and gags? - by RussEfarmer - 09-26-2021, 08:29 PM
RE: Where the hell are timed mutes and gags? - by JesseTheUndeadCowboy - 09-26-2021, 08:52 PM
RE: Where the hell are timed mutes and gags? - by JesseTheUndeadCowboy - 09-26-2021, 09:12 PM
RE: Where the hell are timed mutes and gags? - by JesseTheUndeadCowboy - 09-26-2021, 09:17 PM

Forum Jump:


Users browsing this thread: 6 Guest(s)

About Us
    This is Dinkleberg's GMod, a gaming community based in Garry's Mod. We have a Trouble in Terrorist Town, Prop Hunt, Murder, and Deathrun Server. Come check them out sometime.