Author Topic: Active warning system in ULX.  (Read 3429 times)

0 Members and 1 Guest are viewing this topic.

Offline arcooke

  • Newbie
  • *
  • Posts: 5
  • Karma: 2
Active warning system in ULX.
« on: November 03, 2007, 02:33:02 AM »
This is a little tough to describe, so just bear with me.  Think of this as a reliable but non-intrusive anti-spam / anti-minge tool.

Here's how it would work:

Every user who joins the server has their own constantly monitored warning level.  If the user spawns a prop, no big deal, nothing happens.  If they spawn 2 more props immediately after that, again, no problem.  After more than 3 or so props are spawned within a very short amount of time from each other, the system starts increasing their warning level.  The warning level grows exponentially based on how many props have been spawned within the given time limitations (say, 750ms).

For example, if the player spawns 4 props very quickly (where 3 is the permitted amount of quickly spawned props), the user's warning level increases to 2%.  If they spawn 5, the warning level increases to 4%.  If they spawn 6, it increases to 8%.  If they spawn 7, it increases to 16%.  Etc.  If the user reaches 100%, they get automatically kicked/banned (based on admin settings) for X amount of time.

Now here's the where everything works out.  The warning levels have a cool-down rate.  Meaning, if someone spawned 7 props in succession and has a 16% warning level, the warning level will decrease by, say, 2% every minute.  So after 8 minutes, the user is free of any threat.  This is to help prevent good players from being accidentally kicked out.

Another thing that can contribute to this warning level are defined chat rules.  Such as, if someone says "b*tch" and you have a no-swearing policy on your server, your warning level automatically increases by 25%, and this value is UNAFFECTED by the cool-down process (since you can't accidentally say b*tch  :D).   If someone blurts out a racial slur, they can (based on your own rules) be auto-kicked/banned from the server.

I'm sure there must be a way to somehow work in support for stacker/duplicator/adv.dupe/etc.  And this dream system would also include protection from spamming rope which seems to be somewhat common in minge-infested servers.

If you wanted to get complicated with it, players could be remembered by steamID, and their warning levels averaged over time.  So if they are known to be trouble-free players, they are given more leeway as to what they can do.  So instead of spawning 7 props and receiving a 16% warning increase, they only get an 8% increase.

I think something like this is a must-have.

And heres a quick, somewhat lame attempt at an example of what could be seen on the players HUD (if this fancy stuff is possible).


^ That screenshot was from an actual spammer.


Thoughts? 

Oh, and thanks for all your hard work guys.  ULX is fantastic.
« Last Edit: November 03, 2007, 02:39:35 AM by arcooke »

Offline JamminR

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 8096
  • Karma: 390
  • Sertafide Ulysses Jenius
    • Team Ulysses [ULib/ULX, other fine releases]
Re: Active warning system in ULX.
« Reply #1 on: November 03, 2007, 10:23:45 AM »
Arcooke,
 Nice ideas.
Though I don't see incorporating your ideas into ULX directly, as a module(s), I think they are good, but the complexity of
the features you suggest could take a toll on what we try to keep a simple/non-invasive admin system.
Your ideas would need to consider and somehow allow for advanced duplicator. I've seen 30 to 40 props (and more) be spawned in a matter of 5-10 seconds, and it not be spam but just a complicated build that was saved.
I've personally left servers that had custom antispam scripts because they weren't well written.
That, and the attitude of one of the admins that said 'you should not be spamming then!' when I asked about the warning when I wasn't spamming.

Search for 'Uppl' from our main forums index page. It is a module for ULX that Megiddo wrote some time ago.
Though not near as feature/HUD rich as you suggest, it could be used as a basis for the prop limits for anyone who might want to learn Lua and or write some of the ideas into a spam module.

"Though a program be but three lines long, someday it will have to be maintained." -- The Tao of Programming