MIRC scripting language explained

mIRC Scripting Language
File Ext:.mrc, .ini
Paradigm:Event-driven programming, Procedural programming
Designer:Khaled Mardam-Bey
Developer:Khaled Mardam-Bey
Typing:Dynamic typing
Implementations:mIRC AdiIRC[1] [2] [3]
Operating System:Microsoft Windows
License:Proprietary software

The mIRC scripting language (often unofficially abbreviated to "mSL") is the scripting language embedded in mIRC and Adiirc, IRC clients for Windows but work with WiNE for Linux.

Primary uses

Script storage

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.

Language features

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.)

File handling

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.

Binary variables

Hash tables

Global variables

Local variables

Limitations

Code examples

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.

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 }

See also

References

External links

Notes and References

  1. Web site: Features - AdiIRC - AdiIRC Support/Bugs/Feature Requests. Per Amundsen. 2 December 2020. https://web.archive.org/web/20201202144248/https://dev.adiirc.com/projects/adiirc/wiki/Features#26-Scripting-Engine. 2 December 2020.
  2. Web site: Scripting - AdiIRC - AdiIRC Support/Bugs/Feature Requests. Per Amundsen. 2 December 2020. https://web.archive.org/web/20201202145150/https://dev.adiirc.com/projects/adiirc/wiki/Scripting#mIRC-scripting-compatibility. 2 December 2020.
  3. Web site: mIRC vs AdiIRC detailed comparison as of 2020 - Slant. Parli, Inc.. 2 December 2020. https://web.archive.org/web/20201202151151/https://www.slant.co/versus/4185/4195/~mirc_vs_adiirc. 2 December 2020.