Q-script was created by me (]Q[, who else :) ) because of my desire to learn mirc scripting and due developments in #Startrek-Central (STC). The first reason is quite obvious, scripts really do increment the irc enviroment. The second one however gave my script a real necesaty. As u might know #Startrek-Central now excists for a bit more than a year, during this time STC has grown from approximatly 30 users to an averige of about 350 users and with peaks of over 450 (highest untill now 593) users, making it one of the bigger channels on DalNet. Having this many people on a channel does have its down sides, namely: It becomes virtually impossible for any number of ops to keep spammers out, make the users follow the rules and do regular stuff like voicing people. Hence I created my script to help the users get rid of all those spam msges and later upgraded it to include a bunch of op functions which are now dominant.
The script is based on a filtering function capable of filtering out allmost anything in an event. All you need to do is add a couple of rules. It is this feature that makes this script highly adaptable and easy to use. On the last bit I do need to include some information on how to set it up because the script has many options each having a different function. Continue reading this document for more information on them.
2. Installation (index)
Here is how u install the script (version 2.0):
If its your first time installing the script:
If you have used previous versions:
The Q-script main settings window: For non-ops only "Private filters, Friends List, Ignore List, Alert Filter, General settings, Private Defaults, Your nick settings and Other Defaults" are of interrest.
This section controls the keywords (Rules) used by the filter. You can add
single or multiple words to it. To do so, simply type the word(s) in the text
box and hit add. The rule is added and is active right away. Every line in the
listbox is a single rule for the selected filter.
A rule with multiple words (seperated by a space) form a logical AND fucnction,
in other words, Q-script takes action whenever Word1 AND Word2 (ect...) are
found in 1 line of text written to you/channel. Note that the line also includes
that persons nickname, so if for example ]Q[ says "Hello world" the
rules are matched on "]Q[ Hello world". Also keep in mind that you
must supply full wild cards! Lets say u have a rule "Hello world"
and ]Q[ says "Hello world", the filter will NOT match it. The same
goes for the rule "Hello*world", why u wonder? You forget the persons
nick is also in the line.... So wich rules would match this? -> "]Q[*hello*world","]Q[?hello?world",
"*hello*world", "*hello*world*", "*hello* *world*"
and "]Q[*". The same stuff also applies on the exempts. Read exempts
for more info on how to set the those.
The "up" "down" buttons are there for a reason. The higher a rule is in the list the earlyer it is checked for a match. The filters are also checked in sequence: With the private filters whenever a msg is sent to you it will do Magic Inviter test (if enabled) then your Private rules. On joins it first checks for Magic Inviter patterns then lame #nick filter then the #autovoice filter then #whoisname and last a #LameChan scan is run. On channel text it is done in this sequence: Repeat flood (and repeat spam), TextFlood, #Spam, #curse, #voice and then #custom reply. #QuitPart, whenever a person quits or parts.
Remember this: Q-Script is only as good as your rule set! I recommend that you add at least 2 word rules. This because Q-script screens ALL incomming messages usening YOUR rules. You don't want Q-script to ignore/ban/voice somebody on a normal chat session :)
Okay, Q-script is nice, but how do you make full use of the rules? Here you can find a few examples of wildcards and filter rules.
Q: What are wildcards? A: There are 2 wildcard available in Q-script The first one is the "*" wildcard and the second one is the "?" wildcard. The "*" is the most powerfull of the two. When doing a search in a line of text this one replaces ANY characters in sequense by "they are in the search conditions" making entire strings wild. This means a seach with "*word*" would result in a match if the word "word" is anywhere in the line. A search on "*w*o*r*d*" would match if a "w" is in the text folowed by a "o" followed by a "r" followed by a "d" anywhere in the text. This means that not only "word" is matched in the line, but also matches on lines like: "We are On Route to learning wilDcards". The "?" is much the same as "*", the difference beeing that it doesnt make an entire string wild, but only a single character. So a search on "*w?rd*" would match if "word" is in the the line or "ward" is in the line and "wrd" ect. but not if the line only has words like "woord", "woard". Those can be matched with "*w??rd*" and "*w*rd*"
Let us consider a single line somebody wrote:
"12:00pm <SomeBody> You are welcome join to the w*rld of wonder wh*re
bird sing and people fly after they smoke a big fat joint <===#-''''
"
Some stuff about this line:
Examples of matching Q-script rules:
Examples of none matching Q-script rules:
Examples of incorrect/unintended matching Q-script rules:
To be able to make better rules without banning innocent people I've included exempts in the stript. Most filters have this option present. Here is how you add exempts to a rule:
Lets say you have 3 existing rules:
1: *join* *#*
2: *join* *#* - - -Bye
3: *join* *#* - -0- Bye
Now you would like to add a few exempts to these rules. For instance perm banning/ignoring someone for pasting the text "Somebody has joined #YourChannel" is a bit harsh. Obviously this is an incorrect ban/ignore. To avoid this you can change rule 3 to " *join* *#* - *joined*#YourChannel* - 0 - Bye ". There is also some lame script out there that prints the text "/me rolls a big fat joint <====#" in the channel. If you dont want to ban this guy too, then you can make another modification to your rule number 3: " *join* *#* -*joined*#channel*@*rolls*joint*#*- 0 - Bye". Note that exempts seperated by the @ form the logical OR function. You can have as many of those exempt in a rule as you wish, as long as they have wildcards. It also means you cannot use the "@" in the [exclude] as a search parameter!. The script will interpret it as an exempt and most likly render the ruse useless or have incorrect output. Script is getting complicated *grin*.
Private:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
Modes: [tmnkw#CAIR-A-C-I-R-m-t-n]
Rpl.Text: [Reply text]
info:
Options:
t -> sends a ctcp msg to the nick
m -> sends a query msg to the nick
n -> sends a notice msg to the nick
-m -> overides m. No msg is sent
-n -> overides n. No msg is sent
-t -> overides t. No msg is sent
k -> msg needs to have colors to triggered
w# -> rule only triggers when msg sent is # or less words (nick included,
if only w is used it will interprit as w2)
A and C-> forces the autoclose close window option
I# -> forces the ignore option for # seconds. If you specify an I without
a number it asumes its 0 (perm) and ads it to the ignore list of Q-script. Otherwise
the person is ignored for # of seconds and is NOT added to the ignore list of
Q-script. Tip: if you find the ignore option in the main settings a bit harch
(perm ignore) then you can add "I300", for example, to the <PrvMsgMode>
default option or your rule. Remember "-I" always overides the this.
R -> forces the reply option
-A and -C -> forces NO autoclose. Overides the A and C option
-I -> forces NO ignore. Overides the I option
-R -> forces NO reply. Overides the R option
Info:
All messages sent to you in a private chat pass trough this filter if a match
is found actions are taken. The actions are supplied by the rules themself and/or
the settings in the options dialog. ALL OPS (@) FROM ALL CHANNELS YOU ARE
ON overrule this filter! In this case no action is taken. In all the other
cases you can set what is done in the general settings. Always include the "-"
at the beginning of every overiding letter. Read exempts
for more info on how to set the excludes.
Tip: In case of a wise-ass spammer you should add a single word rule.
Examples: "*#Lamechannel*" or "*#* - -w-" or "*#* -
-K-"
Example: "*spam* - -w3mRAI-Bye bye"
Result: When a 2 (3 with nick) or less word msg (w3) is sent to you that
includes the word "spam" the window is closed (A) a reply (R) "Bye
bye" (text) is msged (m) and the dewd is ignored (I) on his nick AND ip.
Friends List:
Nick or Mask: <Rule1>
Info:
This is your friends list. If the person msging you is on this list, his msg
will not go trough the private filter and the filters that can ban. In other
words: He can say anything! If a ".", "!", "*"
or a "@" is present in Rule1 then the script assumes it is a mask
otherwise it assumes it is a nick and requires an excact match.
Lets say somebody triggers an event. His mask is: "somebody!ident@111.222.333.444"
and u have 3 rules "somebo", "*body!*" and "*111.222.333.444"
in this filter. In the first case the rule fails. This because somebody does
not equal somebo :) Second case passes: *body!* is in the mask and the third
case also passes. its his ip...
Example1: ]Q[
Result: ]Q[ can say anything without getting banned or ignored :)
Example2: *delft.nl
Result: ]Q[ can say anything without getting banned or ignored :)
Example3: ]Q[*
Result: ]Q[-x can say anything without getting banned or ignored :)
Ignore List:
This is actually not a filter, but it keeps track of who the script
has ignored. So in case of a mockup you can easely remove that
person from the ignorelist. Keep in mind that the script auto ignores
the nick and the ip if the ignore option is enabled.
AlertFilter
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
Limit: [io]
WavFile: [Wave file to play]
info:
Logs to script window when triggered. Use your nick or variations on it. The
file can only be a wav file atm and it must be in the default wav dir of mirc
(usually "mirc\sounds\" or "mirc\wavs\"). Otherwise you
must specify a directory relative to that ("..\q-script\play.wav")
The limitations options are restrictions on the triggering, setting to i
then the channel must be in the "#include Channels", setting it to
o then you must be op on the channel. And btw, this filter does not include
the persons nick :)
Excample: "*]Q[*Rules!* --- YesHeDoes.wav"
Result: When a sentance containing ]Q[ and Rules is typed in ANY channel
you are on the file YesHeDoes.wav is played and an alert is logged in Q-script
window.
#Filters:
The "#" stands for channel :). These filters only work if you are
op in that channel where the event occurred AND! the channel is included in
the "#Include channels" list AND! this list is enabled.
#Include channels:
Channel to include: <#channel>
Info:
Controls all "#" filters. If the channel is in this list the filter
gets a green light, otherwise all "#" filters are skipped. Disabeling
this filter results in disabeling all "#" filters! If you read this
dont ask me about it... It is the number 1 FAQ
#Nick filters:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
B.Time: [x|+k]
K.Text: [Kick text]
info:
Checks a nick/mask when somebody joins the channel. Can be used to filter out
offencive nicks/shitlist ect. If a "!", "@" or "."
is present in the rule the assumes it must check on the fullmask (nick!ident@host.domain)
, otherwise it only comperes the rule on the nick (nick).
Example1: *Go*Here - -0-Cya
Result1: When *Go*Here joins he is perm banned with kick text "Cya"
Example2: *111.222.333- -0-Shitlisted
Result2: when a person with that ip/mask joins he is perm banned with
kick text "Shitlisted"
Default: 3600 Suspected Spammer
#Auto voice:
Nick or Mask: <Rule1>
Info:
Person is voiced when he joins the channel. Uses the same syntax as the Friends
Filters. Look there for more info.
Example1: "]Q["
Result1: ]Q[ is voiced :)
Example2: "*delft.nl"
Result2: ]Q[ is voiced and so are the rest of the people on the mask
"*delft.nl" :)
#Spam filters:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
B.Time: [x|+k]
K.Text: [Kick text]
info:
When a match occurs, person is banned for x seconds. Same stuff applies as the
curse filters, only this one ALSO kicks/bans voiced people. Read exempts
for more info on how to set them.
#Curse filters:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
B.Time: [x|+k]
K.Text: [Kick text]
info:
When a certain word(s) is/are said a person is banned for x seconds. if x is
0 then it is a perm ban. It does not ban/kick voiced people. Read exempts
for more info on how to set them.
Example1: "*]Q[* *sux* - - 0 - Up yours"
Result1: Person is perm banned from the channel with kick text "Up
yours"
Example2: "*Up?yours* - - +k -"
Result2: Person is kicked from the channel.
#Voice filters:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
Info: A person is voiced when on the channel when he says the right words
you can use this for fileserver voiceing.
Example1: "*]Q[?Rules!"
Result: The person that says "]Q[ Rules!" in the channel is
voiced :)
#Custom reply
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
Modes: [ctnmuw#]
R.Text: [Reply text]
Info:
Options:
c -> sends a msg in the chan
t -> sends a ctcp msg to the nick
m -> sends a query msg to the nick
n -> sends a notice msg to the nick
w# -> requiers the line to have # words (not specifying a # it will use 2
words. nick + what he said)
u -> Wont reply to voiced people (only the other users)
When a rule is matched Q-scripts responds by sending a notice to the person
causing the trigger. The notice will include the text. You can alo specifying
the modes (+ctmn)
Example: "*Hi- -c-Hi yourself"
Result: when Hi is typed in the chan Hi yourself is replied in the chan
#Suspisious Filter:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
B.Time: [x|+k]
K.Text: [Kick text]
info:
Used by the Sneak server. If one of these rules is matched then
sneakserv bans :) Read exempts for more info on how to
set them.
#Repeat Spam:
Match: <rule>
info:
Used by repeat spam floods. If one of these rules is matched then the repeat
flood settings are ovewritten by the ones of repeatspam, making it usefull to
set heavyer bans. For performance reasons it will only check for a one string
match (remember wildcards... *word1*word2* is seen as 1 string)
#LameChans:
Channels to incude: <#chan>
info:
Scans made on a nick use this filter to see if that nick is on one of these
channels. If this filter is enabled and the nick is on one of these channels
then the person is banned. Note that this scan requires a whois on the nick.
Some scripts have this whois allready defined and cause you to see the whois
info. If you dont want that eigther disable this feature or edit these raws
in your scripts: "raw 301,307,311,312,317,318,319 and 401". If you
dont understand what I mean with that DO NOT ASK ME, but disable this
option. Here is what u can do in the raws defenitions:
on raw 319:*:{ echo -a $2- | halt } <- this example of an original defenition echo's the channels in the active window. To disable this (same as the other raws) do this: remove the "ecgo -a $2" part from the definition or put "halt | " rigth after the first bracket (you will lose yourr whois) or change it to this (you will keep your whois capability):
on raw 319:*:{ if ($Q.LCScanInProgress($2)) { halt } | echo -a $2- | halt } <- $Q.LCScanInProgress($2) returns $true if a scan is beeing made. So if a scan is active it will disable any output of the raw (in this case raw 319). Take a good look at the brackets and note the extra " | ".
#WhoisName:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
B.Time: [x|+k]
K.Text: [Kick text]
info:
This filter looks at the whois name (not the nick). If a match is found, person
is banned. I've noticed that some spam-scripts have a single BOLD control
code as theire name, when this is the case script prints out "is a BOLD
code" but if you want to add a rule for this you must enter the bold control
char. Note that this filter also needs to do a whois on joining nicks. To prevent
you from getting the whois printout you can modify your raws the same way as
the #LameChans filter.
#QuitPart:
Match: <Rule1> [Rule2...]
Exclude: [excl1][@excl2@excl3@...]
B.Time: [x|AL]
K.Text: [Kick text]
info:
A -> Causes an echo in the channel. No ban made. Usefull to filter out suspisious
quit/part msges.
L -> Causes a printout in window @Q-script2 (normally whois). No ban made.
Usefull to filter out suspisious quit/part msges.
This filter looks for quit/part msges that match these rules. Since spammers
are getting smarter and know they get banned instantly when they paste theire
spam in the channel, they put theire spam in the quit msg. Well, now q-script
is able to filter that out too. Note that some lame script have theire webpages
as quit msg. That is spam too, but its kinda harsh to ban people that use them
scripts.
#Sneaks:
Servnick: (the op) Servers nick for /ctcp type forward or IP of the server
for direct connection type forwards
Pass: password for that server
Port: If you have an ip as servers or the nick is the server with a dynamic
ip, specify the servers port here. When a port is specified, it will try a direct
connection.
Channels: The channels to ban on (and the channels the server must have
op for /ctcp type forwards)
Info:
If its on the server:
When the server recievs a forwarded msg from a client it checks to see if the
password matches one from tis list. If none is found an incorrect pass is logged
and nothing happens, else: the first match that is found is used for handeling
the rest, namely: checking for matching #Suspicious rules and banning from the
channels listed in the channels box. This means that you can configure access
rights for different channels PER PASSWORD. So if you have 2 lines in this list:
"server1 pass1 #chan1 #chan2" and "server1 pass2 #chan1"
then if a pass "pass1" is recieved someone can be banned from chan1
and chan2. If a pass "pass2" is recieved he is only banned from chan1.
Note that setting the channels to "All" will cause the script to use
"#include channels". Allthough the "servernick" is not used
it must be present in the line, so put your nick in its place or something.
If it on the client:
When recieving a msg it proceeds to forward that msg to all servers in this
list using that servers pass. Note that for security reasons the server MUST
be op on one of the channels when using /ctcp type forwards. This means that
you must also specify the channels and the client must also be on one of those
channels to be able to check the op status of the server. This is not the case
for the direct connection, in that case it will try to login and if successfull
it will stay logged in and forward any incomming msges. Also note that the client
will not cycle (rejoin) the channels listed in this list.
#SneakNicks:
Random Nick: the nick that can be used
info:
Right before the sneak client rejoins it will change its nick randomly using
this list (if enabled)
Enable Q-script: Doh! Disableing this will bring the script to a halt.
Log to window: When a Q-script event occurs the event is added to the
Q-script window. It is recommended to enable this, in case u ignore an innocent
person or something.
Common Channel: If enables only people on the same channel you are on
can message you. If they are not Q-script blocks it.
Add spammer to Ignore: If enabled Q-script automatically adds people
to your ignore list. People added can be seen in the Ignore list of Q-script.
When someone is added he is NOT ignored from a channel, but from all other all
other means of communication. His nick and ip are ignored. In case you are an
op in a channel keep in mind that you must not ignore people that message you.
Recommend to set ignore off and log on.
Auto close window: When enabled window is closed automatically.
Enable OnBan Commands: When enabled the script will allow bans made on
a channel to control your open windows/ignores. You can set what happens under
the button "Other Defaults" the vars OnBanIgnore, OnBanIgnoreTime,
OnBanClose and OnBanRestrict. I must warn you that using this in channels with
bad ops can have undesired effects but on the other hand channels with good
ops can make ALL the spam go away (for excample: In STC more that 95% of spammers
will get banned right away. So even if your private filter does not get a match
the ops usually get them). I recommend ops themself to leave this option off.
Reply Message:When Q-script triggers the message in the textbox next
to it is sent to that person. It is the default msg.
Block Magic: The private filters will be triggered if someone msges you
has Magic Inviter (and other) patters in his mask
During a conversation: When you are talking to someone your rules can
be disabled for a bit. You can set what happens in the drop down box next to
it. Note that a conversation starts when you! type something and ends <PrivateDTime>
seconds after the last msg you wrote to that person.
Keep Nick: In case u turn into a "Guest" nick ur nick is changed
back to the specified nick Checks every 30 seconds. The commands /qn and /qop
use these settings also
Keep Ops: Does a check every 2 minutes. If your not op on a channel in
the "#include channels" list your nick is changed to the specified
one and ops you.
Enable Sneaky Server: When active it allows a cetrain command to be
triggered when it recieves a msg from another q-script client running in sneak
mode.
How it works: When you put a clone (it must be a seperate copy of mirc
otherwise same ini file is used...) in the channel and enable "sneak mode"
on it, all that clone does is forward all incomming msges to the server (specified
in #Sneaks list) and closes the window. The server recieves these msges and
checks the password. If ok, the server then checks the msg forwarded from the
client using the #suspisious filter rules. If a match is found: that person
is banned from all the channels belonging to the password it got. This method
works great to catch spammers in the act. They usually dont msg ops, and this
way you can still catch them :)
SneakMode: A mirc session running in sneakmode will forward msges to
the servers (defined in #Sneaks). Enabeling "Rejoin" will make the
scrip rejoin the channels every x seconds specified by de text box afther this
checkbox.
Listen to port: New in version 2.0 is that msges can be sent directly to other
Q-script running computers without going over the lagging irc network. Enabeling
this will cause the script to listen for connections on port <SneakSrvPort>.
See "Other defaults" and "Sneaks" for more info on this.
VoiceFilter req color/controll codes: People are only voiced when a
matching rule is found AND the text has colors and other control codes like
bold underline ect. This option is here to prevent people from copy pasting
text and getting voiced.
Warn Guest nicks: If active the text in the box next to it will be sent
to the person using a guest nick when he/she types something. It is sent by
a notice. Only works if you have ops. When you set the first word in the msg
to "+u" only none voiced/opped people are msged. Also possible is
to set the first word to "+um#". This will warn the guest # -1 times
and will ban the nick on the #th time. Expl: "+um3 Change ur nick!"
will ban on the third warning
ExtraBanCommands:
If this setting is enabled Q-script will call an alias everytime it does an
automated ban. The alias is called: QScriptUserDefineExtraBanCommands
If you enable this feature you must have an allias called like this present
and active. If you dont know anything about making aliases dont enable it. It
is usefull in case you need to do extra commands like banning on bots or a-kick.
The syntax used to call this alias is:
QScriptUserDefineExtraBanCommands Channel Nick FullMask Time Reason
--Where Channel is the channel where q-script was triggered ($1)
-- Nick is the nick that triggered it ($2)
-- FullMask is the nick's full mask (Nick!ident@host.domain) ($3)
-- Time is the time in seconds the ban lasts ($4)
-- Reason is the text that is used for the kick ($5-)
Here is an example of such an alias (copy and paste it to your alias definition
to see how it works):
QScriptUserDefineExtraBanCommands {
if ($4 == +k) { .echo -a $2 with full mask $3 got kicked on $1 for $4 seconds
with the kick text "$5-" }
else { .echo -a $2 with full mask $3 got banned on $1 for $4 seconds with the
kick text "$5-" }
if ($chat(MyEggdropBot) != $null && $4 > 2000) { .msg =MyEggdropBot
.+ban $mask($2,2) $1 $chr(37) $+ $4 $+ m $5- }
}
ExtraUnBanCommands:
Basically the same as ExtraBanCommands, but this alias is called when you
do a manual unban in the Q-script log window. The alias is called: "QScriptUserDefineExtraUnBanCommands"
where $1 is the Channel and $2 is the FullMask. When enabled this alias must
be defined somewhere in your own aliases.
OnFullBanList: If enabled: When a channel banlist is full, Q-script
will attempt to remove your oldest ban on that channel and try to ban that person
again. Because the script tries to get the channel banlist some scripts might
display that list on your screen. If u dont want that eighter disable this function
or edit "raw 367" and "raw 368" in your scripts raw definitions:
Adding "if ($Q.BanListFullInProgress($2)) { halt }" to those raw defenitions
will stop the output (see example of #lamechan for more info).
Note that it only try's to unban YOUR oldest ban using your current nick.
Ban Magic Inviters: If enabled people that join the channels are scanned
for magic inviter (and other) patterns. When found they are banned.
Floods: All checks r done on ip not on the nick. Actions can be eigther
a number or +k. If the action is a number person is banned for that ammount
of seconds +k just gets him/her a kick.
JoinFloods, user is banned on the <max> join within <time>
seconds
TextFloods, user is banned on the <max> line written within <time>
RepeatFloods, user is banned on the <max> repeat within <time>
RepeatSpam, this one is an extention of repeat floods. It will only work
if repeat floods is also enabled. The difference is that it will first scan
the line for words in the "#RepeatSpam filter". If a match is found
it takes the settings of this filter above the ones from "RepeatFloods"
meaning you can can make a heavyer ban when triggered.
Netsplits, Join filters (#Nickfilters, #Autovoicing, #Lamechans, #Whoisname
and Magic Inviter) are disabled for <action> seconds when <max>
users join within <time> seconds
TextAttack, channel filters are disabled for <action> seconds when
<max> lines are written in the channel within <time> seconds.
NickAttack, channel filters are disabled for <action> seconds when
<max> nickchanges occur in the channel within <time> seconds.
StopAttack+Rim, when one of the attacks is triggered Q-script will attempt
to stop the attack by setting channel modes to +Rim (depends on how you set
them). The edit boxes next to it are the times (in seconds) those modes will
stay active (0 is permanent, no remove). Setting them to a negative value will
disable that mode change. In case you didnt know; R is a dalnet specific
mode and if its set only registered nicks can enter the channel (i is
invite only and m is moderated).
To continue: Q-script will ignore *!*@* untill the modes are set. This will cause mirc to get out of its frozen state. It will also set a var named "%Q.Attack.Triggered" to the channel the attack is on. You can use this var to further disable any other printouts of mirc to increase performance. And yes, you do need to know scripting for that too. Example set your join and quit defenitions to: "on ^*:join:*:*:{ if (%Q.Attack.Triggered) { halt } | other code }". When the modes are set, *!*@* will be unignored and the var "%Q.Attack.Triggered" will be unset. If all goes well, opz will now be able to respond to the attack.
Note that this will basically lock the channel completely, sort of banning *!*@*. To prevent this from happening on buzzy channels you must set the attack triggers to your computers capabilities, for instance: 50 lines in 5 seconds is a flood or 80 lines in 10 seconds is a flood.
PrvMsgMode: The normal reply mode for private msg blocking. Default
+mt. You can also add any of the "private filter" options here.
PrvAutoRemove: When the private filter is triggered it searches the text
that triggered it for the word "remove". If this var is set to 1 it
auto reply's with remove.
PrivateRTime: The ammount of time in seconds you have to respond to someone
before a triggered private rule is executed.
PrivateDTime: The ammount of time in seconds a conversation lasts or/and
the time the private filters will be disabled.
NoticeFilterBlock: When you do !seen or !list in the channel the notices
are not checked for this amount of time
SneakBanTime: Sneak serv default ban time in seconds
SneakBanMsg: Sneak serv default kick msg. Set to -rk- for random kick
msges
SneakRetryMax: If sneakserv is not on the channel or isnt op, sneak client
tries to resend the msg Max times
SneakRetryDelay: The delay between resends
SneakRejoinDelay: If rejoin is enabled Sneak-client will leave the chan
and try to rejoin at a random time interval of these settings
CurseBanTime: Channel cursefilter default ban time in seconds
CurseBanMsg: Channel cursefilter default kick msg. Set to -rk- for random
kick msges
JoinBanTime: Channel nickfilter default ban time in seconds
JoinBanMsg: Channel nickfilter default kick msg. Set to -rk- for random
kick msges
LCBanTime: Channel LameChan filter default ban time in seconds
LCBanMsg: Channel LameChan filter default kick msg. Set to -rk- for random
kick msges
LCScanRand: The interval used to random scan for lamechannels when people
join
OnBanIgnore: If this is set to 1 the bans made on a channel will get
added to your ignore
OnBanIgnoreTime: The ammount of seconds the ignore will last. Eigther
this value is taken or when the ban is removed. 0 for time does not perm ignore...
OnBanClose: If set to 1 all query windows with the banned mask are closed
OnBanRestrict: If set to 1 only the bans in "#Include Channels"
filter will be used. Enable this if you are also on channels with louzy opz.
OnBanFullip: If set to 1 script requires ban to be on a full ip. In other
words: If 1 -> *!*@123.123.123.123 is a go, *!*@123.123.123.* is a no go.
If 0 both are a go
RFloodMsg: Kick text when people repeat flood. -rk- is random text
TFloodMsg: Kick text when people text flood. -rk- is random text
JFloodMsg: Kick text when people join flood. -rk- is random text
ChanAttackMsg: When an attack is succesfully stopped this msg is sent
to the channel.
GuestKickMsg: The kick text when a guest is banned after x warnings.
KeepNickTime: The time between checks if you have a guest nick. You need
to reconnect to make the changes take effect
KeepOpTime: The time between checks if you are an op on the channels.
You need to reconnect to make the changes take effect
WNameBanTime: The time in seconds an ip is banned when a match is found
in the Whois Name filter
WNameBanMsg: The kick msg when a match is found in the Whois Name filter.
Set to -rk- for random kick msges
MagicBanTime: Magic inviter default ban time in seconds
MagicBanMsg: Magic inviter default kick msg. Set to -rk- for random kick
msges
SpmBanTime: Channel spamfilter default ban time in seconds
SpmBanMsg: Channel spamfilter default kick msg. Set to -rk- for random
kick msges
MaxBanLength: The maximum amount of time bans are kept in the channel
banlist. All bans still will be done as normaly expected, unless the bantime
exceeds this setting. In that case the ban is made for this long and extrabancommands
will still be called with the original bantime. Also the kick text will display
"Banned" instead of "Bannedxxxxs"
RSpamMsg: Kick text when people repeat spam flood. -rk- is random text
MenuBanMsg: The kick msg when you ban/kick someone using the menu in
nicklist. Set to -rk- for random kick texts.
OnFullBanLMsg: The kick text that is ADDED to a kick msg when the script
encounters a full banlist
CustomBanTime: When opening the dialog for a custom ban this is the default
bantime.
VoiceRand: To prevent +v mode floods by multiple ops people are voiced
@ a random time defined by the interval given here. And yes, if ur not the one
that voiced the person the stat still counts :)
WbanMsg: The kick msg when you ban/kick someone using the menu in the
Q-script window. Set to -rk- for random kick texts.
CustReplyMode: Channel custom reply mode settings. Default +n
SneakSrvPort : The port on which the sneak server listens on.
LogToFile: Logs all events to a file if set to 1
LogFileMaxSize: The max size in bytes for an individual log file.
LogScansToW: If enabled all LameChan scans are printed in the @Q-script2
window
LogFullScansToW: If enabled all LameChan scans are printed in the @Q-script2
window including names servers ect. Basically all whois info
VoiceLogW: Some people ony like to see bans in theire log window... Those
people should set this to 0. If 1 voicings are also logged.
ColorKickText: If set to 1 all kicks will have colors in them. If for
some reason you dont want colors in your kick texts set it to 0.
5. Input commands (index)
/Qh -------------------------->> this info
/Qtb <time> <nick> [reason] ->> Bans the nick/mask for the
speciefied time in secs
/Qba <nick> ----------------->> Bans the nicks ip in all chans
/Qb <nick> [reason] -------->> Bans the nicks ip in active channel
/Qb1 <type> <nick> [reason]->> Bans the nicks ip in active
channel. type is a number
/Qm <options> -------------->> Does /mode ActiveChannel Options
/Qop ----------------------->> Ops u in the active channel
/Qn ------------------------>> Changes ur nick to the main one and identifies
/Qg ------------------------>> does the ghost command on the main nick
/Qt ------------------------->> The active channels topic
/Qk <nick> ----------------->> Kicks the nick in active channel
/Qns <options> ------------->> Does /msg NickServ@services.dal.net
Options
/Qcs <options> ------------->> Does /msg ChanServ@services.dal.net
Options
/Qcsa <options> ------------>> Does /msg ChanServ@services.dal.net
Options1 ActiveChan Qption2-
/Qms <options> ------------->> Does /msg MemoServ@services.dal.net
Options
/Qclone -------------------->> Does a clonescan in the active channel
/Qi2n <ip/host> ------------>> Finds the nick if any belonging to
the ip/mask
/QuIAL --------------------->> Gets all the masks from people in the chan
in your IAL
/Updaterules ---------------->> Updates all the rule files to work with
current version
/ChanScanLC --------------->> Scans the entire active channel for people
on your lame channels list. WARNIG: You can get flooded off irc for doing too
many whoises on large channels.
Why are my filters not banning?
Why do some/all chat windows autoclose?
Why does the script log a block but doesnt close any spam window?
Why are some rules not matched?
I am op and my script slows down the computer. What can i do?
I'm op and get a lot of output from Q-script like: whois info, channel bans and no such nick/chan. Why? And what can i do about it?
How do I setup the Sneak server/client?
Why do i get outputs like no such command/alias?
How can i stop some incorrect bans?
What do those "[x]" msges in the kick text mean?
Where can I get the latest version?
Current Version: 2.0
Changes since v1.2
Changes since v1.3
Changes since v1.4
Changes since v1.5
Working on
Known bugs
For the latest version of this help file and Q-script go to Q-script-home or type !Q-script in #Startrek-central on dalnet.
For suggestions and bug reports (look if the bug is not allready on the webpage) mail ]Q[ or contact ]Q[ on dalnet (#startrek-central). Plz dont leave a msg like: "Are u there?", "Alive?", "Can you help me?", "Hello" ect. I generally dont respond to those msges unless you actually ask/say something meaningfull :D.
Q-script is a copywrite of ]Q[. Do not modify or redistribute this script without the authorisation of the author.