lol this took a long time to make so use it well
if u want ur client added or
if you can help by fixing or adding things msg brr @ irc.gorf.us #chats
if you have criticism or w/e then ur probably some loser nerd who strips colors and kicks for ascii and stuff and idgaf wawt u have to say
this is wat irc is all about:
Here's just some basic information about ASCIIs, Unicode, fonts, colours, codes and scrolling. For more detailed information on these topics, head to the References/Further Reading section. If you think you know it all then make sure your: client is set up correctly.
ASCII art or simply ASCII (pronounced ass-key), originally referred to any form of picture or art which was drawn using printable characters from the ASCII charset:
It's now commonly used to refer to any sort of text-based art such as IRC art, even though it may include control codes/characters and non-ASCII characters. Most ASCIIs require fixed-width fonts to be viewed properly, just like images, which are made up of pixels of the same size. ASCIIs on IRC may be plain text (i.e. colorless) or formatted with mIRC colour codes. There are some who like to call ASCIIs `ANSI art' or `ANSIs' just because they utilize colour codes. It's incorrect to do so as ANSI art is quite different, using it's own extended character set and it's own colour codes, which are different from mIRC colour codes. Also ANSI art isn't under a lot of restrictions IRC is under, some ANSI art wouldn't even be able to be converted for IRC use. It may not be 100% correct to call IRC art `ASCIIs' but it's a more acceptable and widespread term.
A charset (character set), sometimes called character encoding, consists of a collection of characters with a code linked to each. An example is the ASCII charset (shown above) which links characters with a number:
65 - A ... 91 - [
66 - B ... 92 - \
67 - C ... 93 - ]
The Unicode (UTF-8, the most popular encoding for IRC) charset should replace the ASCII charset in the coming years as it contains 100,000s of characters as opposed to ASCII's 128, while retaining backwards compatibility with files encoded in ASCII. Without Unicode support on IRC, many non-ASCII characters such as special punctuation, or characters used in 2chan-style emoticons, wouldn't be displayed or would be seen as boxes/question marks/placeholders. The main problem with Unicode is programs and fonts not supporting it fully, correctly or by default, although most modern software does it properly nowadays. Some examples of Unicode as used on IRC are shown below, images of them are included since some browsers/fonts may not support Unicode properly:
The best kind of font or typeface for IRC is one that's monospaced (fixed-width) and uses Unicode. Unicode fonts contain a wider range of characters, while monospaced fonts have all characters be the same size. It's hard to find a font which is both and also looks good. Use this list of monospaced fonts, this list of Unicode fonts and Google to find one that suits you. Arial Unicode MS has 38,917 characters compared to DejaVu Sans' 5,467, but this is how they compare with ASCIIs:
DejaVu Sans Mono
Arial Unicode MS
Some ASCIIs don't look deformed in variable-width fonts because they use the same letter across the entire ASCII, but their proportions will still be skewed. It's also impossible for a single font to have all of Unicode so the amount of characters in a font shouldn't be used as a measure of how good said font is. What is important is that it includes the parts of Unicode you often use. A recommended font is DejaVu Sans Mono. ALSO CONSOLAS IS SEXY!
IRC has no standard for colours, so a lot of clients will display them differently from each other. This is stupid if you spent your time picking the correct colours for your shark ASCII and then someone calls it red... So we picked the most popular format and that was Dj Khaled Mardam-Bey's:
RGB Values
HSL Values
Colour
Code
Red
Green
Blue
Hue
Sat
Lum
white
0 or 00
255
255
255
160
0
240
black
1 or 01
0
0
0
0
0
0
dark blue
2 or 02
0
0
127
160
240
60
dark green
3 or 03
0
147
0
80
240
69
red
4 or 04
255
0
0
0
240
120
brown
5 or 05
127
0
0
0
240
60
purple
6 or 06
156
0
156
200
240
73
orange
7 or 07
252
127
0
20
240
119
yellow
8 or 08
255
255
0
40
240
120
lime green
9 or 09
1
252
0
80
240
119
teal
10
0
147
147
120
240
69
sky blue
11
0
255
255
120
240
120
blue
12
0
0
252
160
240
119
pink
13
255
0
255
200
240
120
dark gray
14
127
127
127
160
0
120
light gray
15
210
210
210
160
0
198
There are 16 colours to be used for IRC (0 to 15). Clients which support colours above number 15 usually use them for internal themes, or just loop the colours back (i.e. 16 is the same as 0), and thus these should not be used in ASCIIs. If any of the 0-15 colors on your IRC client are different from the above, then you're doing it wrong. There are also formatting codes for BOLD, ITALICS, UNDERLINE, REVERSE and a PLAIN code which clears colours and formatting. Not all format codes will work in every client, the most supported codes are colour, plain, bold and underline.
Scrolling is just sliding text or images like the credits at the end of a movie. On IRC it can refer to large amounts of text such as floods causing your screen to scroll. The action of entering ASCIIs into an IRC chat is also called `playing ascii' or `scrolling'. The computer requires quite a lot of effort when scrolling something long (in part due to shitty color handling). An example is bigmatix:
Hover over the box to view the scroll.
Scrolling may be choppy on your client, depending on your connection and how many colours the ASCII has. Some clients like XChat are known to freeze under the heavy load and some disconnect from the server like mIRC. This doesn't just apply to viewing ASCII, but scrolling them yourself may also cause problems unless proper throttling or timers are used. (And this is assuming you have the ability to flood on the IRCd you are connected to. Most servers will disconnect you for `flooding' a few lines unless you are opered or given a flood line, no matter what client you are using.)
The following guides only offer the most basic instructions to make your IRC client ready for ASCIIing. Please read the notes written before each client's guide and make sure to read each entire step before carrying it out. To experience IRC and ASCII at its finest (or the finest your client can deliver it), pay extra attention to the steps and take the initiative to configure/tweak your client in ways not documented in this guide. Reading more about your client is also recommended.
Note: If you're using an mIRC version older than 6.17 you need to update for Unicode support, and if you are using an mIRC version older than 7.xx you shouldupdate for improved Unicode support. This guide will demonstrate how to configure the popular version 6.34 (which should be similar to most 6.xx versions) and version 7.22 (which is the latest 7.xx version as of writing this guide). Also: If you're using NoNameScript, nbs-irc or ircN; you must complete their guides below AFTER completing the mIRC one.
Select View->Font... You may change your font here, however the default `Fixedsys' is a good font. On 6.xx select `Display and encode' for UTF-8.
both
mIRC 6.34
mIRC 7.22
Step 2.
Select View->Colors... There are four possible scenarios for colour configuration: (i)/(ii)/(iii)/(iv)/(v)
(i) If your colour scheme is set to the default `mIRC Classic' then you can move on to step 3.
(ii) If you're using one of mIRC's alternative schemes, switch back to `mIRC Classic'.
(iii) If you've altered the colours of `mIRC Classic', simply click `Reset'.
(iv) If you're using NNScript skip this step.
(v) If you're using a downloaded theme or you've edited the .mts file before, backup the .mts file and then open it up and change the line which starts with `RGBColors' to:
This way you can start using the correct colours while also preserving the other aspects of your theme, since mIRC unfortunately doesn't have an extended colour set for themes.
You can change the event colours such as `Action text' to whatever you like; after you made sure to follow one of the previous steps. (Don't change the colour values; only the event colours!)
Step 3.
Select Tools->Options... Then select IRC->Messages. On 6.xx tick the boxes `UTF-8 display', `Multibyte display/characters', `Font linking', `Multibyte editbox' and `ANSI codes'. These help with displaying extra Unicode characters. On 7.xx `UTF-8 encode/decode messages' should be ticked.
both
mIRC 6.34
mIRC 7.22
Step 4.
Now select IRC->Flood Make sure `Enable flood protection' is unticked to avoid unnecessary throttling and blocking. Or at least set ASCII-friendly values for the settings if you want it...
Step 5.
Finally, select Display->Options On 6.xx tick `Fast text display' which stops mIRC from freezing as much under the load of ASCIIs. Not available in 7.xx because it should be enabled by default.
Step 6.
To scroll ASCIIs, the command is /play. Simply typing /play brings up the `Play Central' window which displays the queue and allows you to enter ASCIIs into the queue. Here are some examples of easier ways to play your ASCII:
/play D:\ascii\bigmatix.txt Plays bigmatix.txt at the default speed: 1000ms delay (1 second delay) between each line.
/play D:\ascii\bigmatix.txt 0 Plays bigmatix.txt with 0ms delay (no delay) between each line.
/play stop Clears the current play queue.
However the use of a script is the most practical way to ASCII. Here is a very simple mIRC script to assist you in playing ASCII:
alias stop {
/play stop
}
alias ascii {
set %dir $shortfn(D:\ascii\)
if ( $2 == $null ) {
/play %dir $+ $1 $+ .txt
}
else {
/play %dir $+ $1 $+ .txt $2}
}
To install the script, copy the above code into Tools->Scripts Editor...->Remote as shown below:
However you must replace D:\ascii\ in the code with the directory where your ASCIIs are located (e.g. "C:\Users\me\Desktop\"). This way, the directory and extension (e.g. C:\Users\me\Desktop\bigmatix.txt) don't need to be specified each time you play an ASCII, only the filename (e.g. bigmatix). If you are using NNScript, change ascii in alias ascii { to something different like scroll since NNScript uses /ascii for something else. The usage of the script is as follows:
/ascii bigmatix Plays <your directory>bigmatix.txt with 1 second delay between each line.
/ascii bigmatix 500 Plays <your directory>bigmatix.txt with half a second delay between each line.
The version of NNScript used when writing this guide, was 4.22.
Step 1.
Select NNScript->Themes->Theme Setup... Here you may want to choose the `mIRC default' theme which uses the correct colours. However if you prefer your own theme, head to step 2.
Step 2.
Skip this step if you chose `mIRC default' in step 1. Otherwise, select `Edit Theme' for the theme you are currently using.
Expand `Color Schemes' and then expand the scheme which you are using (it will be in bold; most likely `Default'). Click on `RGB' then click `Get default' to reset the colours to the correct values. You may now want to click on `Colors' above `RGB' and tweak the colours used for events and such to closely match how your theme looked before. When finished click `Save' or `Save as...' if you want to compare the themes etc.
Step 3.
Make sure mIRC/NNScript is closed, then open up your NNScript scripts folder (the default is "%APPDATA%\NoNameScript\scripts").
Find the file "theme.nns" and make a backup. Then open it for editing in notepad or any text editor (that isn't MS Word or wordpad). Search for the section of code in the file which should look very close to:
on &^*:text:*:#:{
haltdef
playmircsound channeltext
if ($chan !ischan) { return }
echo -lbfmti12c normal $chan < $+ $colnick($chan,$nick,0) $+ $cmod($chan,$nick) $+ $nick $+ $+ > $strip($1-,mo)
if (%hlown) && ($isachl($1-)) {
chkhlwin
echo -mti12c normal $specialcidwin(Highlight) < $+ $colnick($chan,$nick,0).chan $+ $cmod($chan,$nick) $+ $+($nick,:,$chan) $+ $+ > $strip($1-,mo)
}
if ($away.chklog($strip($1-))) {
echo -mti12c normal $specialcidwin(Awaylog) < $+ $colnick($chan,$nick,0).chan $+ $cmod($chan,$nick) $+ $+($nick,:,$chan) $+ $+ > $strip($1-,mo)
}
}
on &^*:text:*:?:{
haltdef
playmircsound querytext
if ($query($nick)) {
echo -lbfmti12c normal $nick < $+ $colnick($nick).priv $+ > $strip($1-,mo)
}
elseif (%thm.singlemsg) {
echo -lbfmdti12c normal * $+ $nick $+ * $1-
}
else {
echo $thm.active(query,lbfmti12c) normal * $+ $nick $+ * $strip($1-,mo)
}
if (%hlown) && ($isachl($1-)) {
chkhlwin
echo -mti12c normal $specialcidwin(Highlight) < $+ $colnick($nick).priv $+ > $strip($1-,mo)
}
}
Delete all of that code from the file. Including both the on &^*:text:*:#:{ section and the on &^*:text:*:?:{ section. Make sure you don't forget to remove the two trailing }s. Save the file and now run NNScript. ASCIIs should now display properly without having to be `hardspaced' manually.
The problem was that NNScript is written in MSL which removes adjacent whitespace, and this "theme.nns" uses the above code to manipulate the text using MSL, therefore removing multiple spaces. Removing the above code doesn't seem to cause any problems with the themes, however it's only been minimally tested which is why you should've made a backup. This must be redone every time you modify your theme or change themes, since NNScript will restore the file in those cases.
The version of nbs-irc used when writing this guide, was 2.39.
Step 1.
Make sure mIRC/nbs-irc is closed, then open up your nbs-irc scripts folder (the default is "%APPDATA%\nbs-irc\scripts").
Find the file "main.nbs" and make a backup. Then open it for editing in notepad or any text editor (that isn't MS Word or wordpad). Search for the section of code in the file which should look very close to:
Delete all of that code from the file. Make sure you don't forget to remove the two trailing }s. Save the file and now run nbs-irc. ASCIIs should now display properly without having to be `hardspaced' manually.
The problem was that nbs-irc is written in MSL which removes adjacent whitespace, and this "main.nbs" uses the above code to manipulate the text using MSL, therefore removing multiple spaces. Removing the above code doesn't seem to cause any problems with the themes, however it's only been minimally tested which is why you should've made a backup. This must be redone every time you modify your theme or change themes, since nbs-irc will restore the file in those cases.
The version of ircN used when writing this guide, was 8.00 20100904.
A fresh install of ircN seems to come with the correct mIRC colours, it doesn't seem to mess with much. It also comes with an interesting font replacement setting which can be found, along with the theme settings, in ircN->Load theme..., then click on the `Settings' tab. None of this is necessary however and will not be covered, only the usual hardspace fix for mIRC addons.
Step 1.
Make sure mIRC/ircN is closed, then open up your ircN system folder (the default is "C:\ircN\system", depends where you installed it).
Find the file "nxt-dyn.mrc" and make a backup. Then open it for editing in notepad or any text editor (that isn't MS Word or wordpad). Search for the section of code in the file which should look very close to:
on &^*:TEXT:*:#:{
if ($halted) return
if ($chan !ischan) { return }
chanset $chan lsnick $nick
set -u1 %:echo echo $color(normal) -mlbfti2 $chan
set -nu1 %::text $strip($1-, o)
set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port | set -nu1 %::cid $cid
set -nu1 %::pre 01 $+ $chr(91) $+ 12N01 $+ $chr(93) $+
set -nu1 %::c1 01 | set -nu1 %::c2 14 | set -nu1 %::c3 12 | set -nu1 %::c4 04
set -nu1 %::nick $nick
set -nu1 %::address $address
if ($nick($chan, $nick).pnick != $nick) { set -nu1 %::cmode $left($ifmatch, 1) } | set -nu1 %::cnick $nick($chan, $nick).color
set -nu1 %::chan $chan
set -nu1 %::target $target
if (* iswm %::text) { set -nu1 %::parentext ( $+ %::text $+ ) }
set -nu %::hword $hlightt($strip($1-))
if ((%::hword) && (($hget(nxt_theme,HighlightWin)) || ($hget(nxt_theme,HighlightActive)))) {
if ($chan != $active) .signal highlight nonactive $nick $chan $cid %::hword $strip($1-)
else .signal highlight active $nick $chan $cid %::hword $strip($1-)
}
if ($istok($nget(ignorechans),$chan,44)) { haltdef | return }
if ($hget(nxt_events,$+(show.text.,$chan)) == 4) { haltdef | return }
if ($chan.ishideevent(text,$chan)) { haltdef | return }
if ($chan.ignoretextmatch($chan,$strip($1-))) { haltdef | return }
if ($ischanset(stripcodes,$chan)) set %::text $strip(%::text)
if ($nvar(bgfix) == on) {
if ($bgfix.regex(%::text)) { set -u1 %::text $replace(%::text, $+ $base($color(background),10,10,2), $+ $base($color(normal),10,10,2)) }
}
if ((%::hword) && ($hget(nxt_theme,HighlightChan))) {
%:echo < $+ %::cmode $+ 12 $+ %::nick $+ > %::text | haltdef
}
else {
%:echo <14 $+ %::cmode $+ $+ %::nick $+ > %::text | haltdef
}
unset %:echo %::nick %::address %::target %::parentext %::me %::server %::port %::cid %::pre %::c? %::chan %::cmode %::cnick %::text
}
Delete all of that code from the file. Make sure you don't forget to remove the trailing }. Also find and remove the section which should look very similar to:
on &^*:TEXT:*:?:{
if ($isbit($hget(nxt_data, NoTheme),2)) return
var %e = echo $color(normal) $+(-mti2,$iif($hlightt($strip($1-)),l))
set -nu1 %::text $strip($1-, o)
set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port | set -nu1 %::cid $cid
set -nu1 %::pre 01 $+ $chr(91) $+ 12N01 $+ $chr(93) $+
set -nu1 %::c1 01 | set -nu1 %::c2 14 | set -nu1 %::c3 12 | set -nu1 %::c4 04
set -nu1 %::nick $nick
set -nu1 %::address $address
set -nu1 %::target $target
if (* iswm %::text) { set -nu1 %::parentext ( $+ %::text $+ ) }
if ($query($nick)) {
set -u1 %:echo %e $nick
%:echo < $+ %::nick $+ > %::text | haltdef
}
else {
if ($window(Message Window)) { set -u1 %:echo %e $+ d }
elseif ($_isactive) && (@* !iswm $active) && ($hget(nxt_events, Active.Queries)) { set -u1 %:echo %e $+ a }
else { set -u1 %:echo %e $+ s }
%:echo < $+ %::nick $+ > %::text | haltdef
}
unset %:echo %::nick %::address %::target %::parentext %::me %::server %::port %::cid %::pre %::c? %::text
}
Save the file and now run ircN. ASCIIs should now display properly without having to be `hardspaced' manually.
The problem was that ircN is written in MSL which removes adjacent whitespace, and this "nxt-dyn.mrc" uses the above code to manipulate the text using MSL, therefore removing multiple spaces. Removing the above code doesn't seem to cause any problems with the themes, however it's only been minimally tested which is why you should've made a backup. This may need to be redone every time you modify your theme or change themes, since ircN will restore the file in those cases.
Note: XChat's features may vary between operating systems; and in Windows' case, there are various builds of XChat which also differ from each other. The following guide will demonstrate how to configure version 2.8.9 of the official XChat build on Windows (which is the latest official version for Windows as of writing this guide). The steps listed should still be compatible with most of the other XChat builds/operating systems.
Navigate to Text box and click on `Browse...' to bring up the font selection window. You may pick your desired font here. `Colored nick names' is also a nice feature to enable.
Step 2.
Select Input box and tick `Use the Text box font and colors'.
Step 3.
Select Colors. Fortunately XChat handles mIRC colours and theme colours seperately. The only colours which you need to fix here are the ones in the row `mIRC colors:'. Click on each one to bring up its colour picker. You must correct the values in the Red/Green/Blue boxes with the table in the colours section. Make sure not to mix up the Hue/Sat/Lum boxes with the RGB ones.
Note: An easier method of fixing the colours is shown *after* the following image.
The easier method is to close XChat, and find your colors.conf file in XChat's data directory (e.g. "%APPDATA%\X-Chat 2" on Windows). Replace the first 16 lines in that file with the following:
There are several options which can't be accessed through a menu and need to be manually entered using /set. You should enter the following:
/set gui_lagometer 3
/set gui_throttlemeter 3
These extend the Lag-O-Meter and throttle meter located underneath the userlist. It helps you keep track of how much you are lagging and how many bytes are in your queue. (Optional)
/set input_perc_ascii 1
/set input_perc_color 1
These settings allow other formats of colour/formatting codes to be used.
/set net_throttle 0
This disables throttling, which you should do in almost every case. Some of the reasons for leaving it as 1 will be discussed later.
Step 5.
Click on XChat->Network List... For the networks which you use, click `Edit...' to bring up their settings and then select `UTF-8 (Unicode)' in the `Character Set' box. This setting is individual for every network so it needs to be done when adding new networks too.
Step 6.
There are many ways to scroll ASCIIs on XChat. XChat is able to interact with the operating system so the most basic method would be:
Windows:
/shell -o type D:\ascii\bigmatix.txt
This uses the Windows command TYPE to print the ASCII. It cuts off the last line of ASCIIs though. (/shell is not supported by all XChat builds)
Linux:
/exec -o cat /home/fag/ascii/bigmatix.txt
This uses the Linux CAT command to print the ASCII.
These are the worst ways to scroll on XChat as they have no speed control and may freeze XChat or disconnect you from the server. If you can really only use these methods, you should '/set net_throttle 1' to prevent disconnections, and use /flushq when you want to stop scrolling. In the case of Windows and /shell, you will need to append an extra empty line to the end of each of your ASCII files.
XChat supports many scripting languages such as Perl and Python which can be used to create good scrolling scripts. A very good perl scrolling script with speed control can be downloaded here: ascii.pl. Put it in your XChat data directory (e.g. "%APPDATA%\X-Chat 2" on Windows). Open the file for editing and change the line where it says D:\\ascii\\ to wherever your ASCIIs are located (On Windows use \\ instead of \), then load the script from Window->Plugins and Scripts... You obviously need to install Perl first to use it.
Using ascii.pl:
/ascii bigmatix Scrolls <your directory>bigmatix.txt at the default speed: 40 millisecond pause between each line.
/ascii bigmatix -speed 400 Scrolls <your directory>bigmatix.txt with a 400 millisecond pause between each line.
/stop Stops the current tab's scroll.
Step 7.
Here are some useful commands which most people won't ever need to use:
/lagcheck
Forces the Lag-O-Meter to update to make sure you aren't lagging. XChat does this automatically though.
/flushq
Clears the current send queue, only works/needed if throttling is enabled (net_throttle 1).
/charset utf-8
Sets the current network's character set to Unicode. This is not permanent and needs to be set for each network on every restart. A better way is to set the charset through the network list (if the network has been added there).