The mIRC scripting language (often unofficially abbreviated to "mSL"[3][4]) is the scripting language embedded in mIRC and Adiirc, IRC clients for Windows but work with WiNE for Linux.
Scripts are stored as either plain text files, usually with a .mrc file extension, or as INI files. They, however, can be stored with any extension. Multiple script files can be loaded at one time, although in some cases, one script will conflict with another and cause one or both of them to no longer work properly. The order in which in the script files are loaded may make a difference if the script functions properly or not. A (un)loader-script MUST be used for semi-large scripts to function as intended.
mIRC scripting language uses its own nomenclature to refer to language constructs. (However, whilst this can be a little confusing to newcomers, they do not impact on the functionality of mSL.)
$
&
%
/
$read(file,[args])
/write
The above is intended for singular access to the file. Because each time you issue $read or /write you open and close the file for access. Multiple accesses, during a loop for instance, is best handled through /fopen, /fwrite and /fclose. Since this opens the file only once. In some cases /filter and /savebuf is an even more efficient (non scripted loop) method.
$read
/fopen
/fwrite
/fclose
/filter
/savebuf
/copy
/remove
&Variable
/bread
/bwrite
%Variable
set
var -g
%Variable = value
var
set -l
var %a = 1, %b, %c = 2
The code below is in the remote scripts format. If placed into an alias file, the command names should not be preceded by the word "alias". Test Comments include the common /* comment */ and ;comment.
alias
/* comment */
;comment
Here is an example of a Hello World alias:
;Defines the alias 'hello' in the remote script ;Note: if this is placed in an alias script, ;the 'alias' part must be removed (result: hello {) ;Usage: /hello alias hello { ;Displays(/echo) 'Hello World!' into the active window(-a) echo -a Hello World! }
A remote script to automatically respond to certain text
;Placed in a remote script ;When a user types Hello! in a channel, ;you answer back: Hello, [nickname]! on *:TEXT:Hello!:#:{ msg $chan Hello, $nick $+ ! } ;When a user types Hello! in a private message, ;you answer back: Hello, [nickname]! on *:TEXT:Hello!:?: { msg $nick Hello, $nick $+ ! } ;Here is a script which automatically gives voice to a user ;who joins a particular channel (The Bot or user should have HOP) on *:JOIN:#?: { mode $chan +v $nick } ;A bad word script on *:Text:die*:#: { .mode $chan +b $nick | kick $chan $nick Dont say that again }