[<< wikibooks] Downloading Files from IRC/File Server (fserve) Guide
== How do I access file servers? ==
To access a file server you need to have your IRC client set up properly to receive files and you need the CTCP trigger for the file server you are trying to access.

== What is a CTCP trigger? ==
A CTCP (Client-To-Client-Protocol) trigger is a special type of message that is
sent between IRC clients usually in request for specific information. A CTCP
trigger usually looks something like " /ctcp [nickname] [trigger]".
Basically a trigger is a message you send to another IRC user's client for
information about it. For example, if I wanted to know what IRC client
Danno123 was using, I would type "/ctcp Danno123 version" and his
client would send me something like "mIRC v6.21 Khaled Mardam-Bey" as an
automated response.

== How do CTCP triggers work in relation to file servers? ==
A file server CTCP trigger is a request sent to someone running a file server
for permission to access the list of available files they have for you to
download. When you type a file server's CTCP trigger, if it is online and not
being used by someone else, it will respond by trying to start a DCC chat
session with you to share the list of files it is serving.

== How do I get the CTCP trigger for a file server? ==
To obtain a CTCP trigger you would type "!list" in the channel window the file
server is in. After typing "!list", all active file servers in the channel
responding to "!list" will send you a private message with their status and
CTCP trigger(s) to access them.
Here is an example of three file server ads that might be displayed after
typing "!list".
 Trigger:[/ctcp Danno Dannos awesome
stuff!] Next
send:[in 1hrs
36mins] Accessed:[4763 times] O:[0/5] S:[1/1] Q:[10/10] ..-Vega|serv-  [Fserve Active] - Triggers:[/ctcp Vega|serv sound packs & /ctcp Vega|serv is the best] - Users:[2/5] - Sends:[0/1] - Queues:[0/30] - Message:[/dccserver +sc on 59 ||  voiced users only] - SysReset 2.53-TracerFX-  [Fserve Active] - Triggers:[/ctcp TracerFX collection 1 & /ctcp TracerFX collection 2 & /ctcp TracerFX collection 3] - Users:[0/4] - Sends:[2/2] - Queues:[3/10] - Record CPS:[44.1kB/s by Borego] - Bytes Sent:[19.6GB] - Files Sent:[122] - Accesses:[763] - Upload Speed:[53.4kB/s] - Download Speed:[67.5kB/s]

== Ok, I see the ads, but which ones the CTCP trigger? ==
The trigger is usually the text after "Trigger" or "Triggers" contained between the
"[" and "]" brackets. 
For example, the file server ad below:
-TracerFX- [Fserve Active] - Triggers:[/ctcp TracerFX collection 1 & /ctcp TracerFX collection 2 & /ctcp TracerFX collection 3] - Users:[0/4] - Sends:[2/2] - Queues:[3/10] - Record CPS:[44.1kB/s by Borego] - Bytes Sent:[19.6GB] - Files Sent:[122] - Accesses:[763] - Upload Speed:[53.4kB/s] - Download Speed:[67.5kB/s]
Has three different triggers you could use:
/ctcp TracerFX
collection 1
/ctcp TracerFX collection 2
/ctcp TracerFX collection 3 

== How do I use the trigger? ==
Simply type the trigger into the network server window (tab with the networks
name on it) and the file server should initiate a DCC chat session.
Example, I'd type:/ctcp TracerFX collection 1
After typing the trigger, I would receive a DCC chat offer from TracerFX,
after that I would accept the offer and browse TracerFX's file server.

== How do I find out what is on a file server and how do I download from it? ==
There are two common types of files servers run on IRC, the most popular one
uses a command prompt style interface. The command prompt style interface
will probably look like gibberish to you at first if your are unfamiliar with
the DOS\UNIX command line. The second most common file server type uses a
number-letter style interface (and may also accept the command prompt syntax
as well). If you have ever used an automated voice messaging service (think
of a 1-800 style support line), you should not have too much trouble
understanding this type.

=== Command Prompt Style File Servers ===
After entering the trigger "/ctcp
TracerFX collection 1", as in the example above and accepting the DCC
chat offer, you would receive a message similar to this...
 -=SysReset 2.3=- FileServer
 NOTICE: If you leave this channel all sends, gets, and
fservs will be stopped.
 Transfer Status: Sends:[0/1] - Queues:[0/30]
 Minimum CPS is: 5000
 Maximum CPS is: 10000
 This server will auto-close after 1min 30secs.
 SysReset v2.3 File Server
 Use: cd, clr_queue, clr_queues, dir, exit, get, help,
queues, quit, say, sends, stats, swap, who
 SysReset 2.53
Notice the line that says: "Use: cd,
clr_queue..."? That is the list of available commands you can use with
this particular file server. The only ones you really need to familiarize
yourself with in order to download are "dir", "cd", "get", and "exit".dir: displays a list of
all files and sub-directories inside the current directorycd: change directory,
use this to enter (cd "sub-directory-name") and exit (cd ..) sub-directoriesget: request a filename
from a file server (get
filename.extension)exit: disconnect from a
file server
Here is an example of these commands in use with the file server in the 
example above:
To display the list of files I would type "dir" and the file server would
respond with:
 readme.txt 3 kb
 tutorial 1.avi 25.3 mb
 tutorial 2.avi 42.4 mb
 End of list.
To enter the directory named "NIGHTLY BUILDS" I would type "cd NIGHTLY BUILDS" which would give me:
 SysReset 2.53
To find out what's in the directory named "NIGHTLY BUILDS", I would again type
"dir" which would give me:
 20080214.zip 82.4 MB
 20080218.zip 83.7 MB
 Install Guide.txt 4 kb
 End of list.
Since I do not want any of these files, so I would back to the previous
directory by typing "cd .." and
would get:
 readme.txt 3 kb
 tutorial 1.avi 25.3 mb
 tutorial 2.avi 42.4 mb
 End of list.
When I know which file I want to download, "tutorial 1.avi", I would tell the
file server to send it to me by typing:
get tutorial 1.avi
If the file server could send me the file immediately, I would see something

If the file server could not send me the file immediately (if someone else
was downloading something off of it) it would place me in its queue: Adding your file to queue slot 14. The file will send when the next send slot is open.
And since the file server in this example only has one send slot (Sends:[0/1]) I would have to wait
until the thirteen people in front of me finished downloading before it would
send me the file.
After I finished telling the file server what file I would like to download,
I would type "exit" or simply
close the window.

=== Number-Letter Style File Servers ===
Just like with the other file server, to gain access you enter the CTCP
trigger "/ctcp Danno Dannos awesome
stuff!", but the DCC chat message will look a little different from
 Ultra Protection Project v2.00 final - by KyD
 Welcome [12.34.567.89], you are the [75th person] to access my
 Dccwatch:(off) Instasend max.size:(5.00MB) Idletime:(60 secs)
Timeout:(600 secs) Min.cps:(off) Max.cps:(off)
 O:[1/6] S:[1/1] Q:[6/10] [Your Sends]: 0/1 [Your Queues]: 0/1
[Your Priority]: 0
 Commands: cd, clr_fqueues, clr_queue, clr_queues, dir, failq,
 get, help, my_queues, pwd, queues, quit, sends, stats, time,
And as with the command prompt file server type, I type "dir" to bring up the
list of directories:
  1d : mega-collection
  2d : more stuff
  3d : much more stuff
This is where the likeness ends with the other file server type. Notice the
numbers-letter combinations in
front of the directories? Instead of typing "cd more stuff" to see what the
directory has in it, all I would need to do is type the number letter combo
in front of it, 2d.
After typing the combo, I the server will list the contents of that
particular directory:

[more stuff]
 0D: ..
 1F: cooking with fire.mpg 96MB
 2F: fun with frisbees.txt 175MB
 3F: some neat clip 01.avi 180MB
 4F: release schedule.txt 17KB
Again, instead of having to type "get
some neat clip 01.avi" to let the file server know what I wanted to
download, all I would have to do is type the letter-number combination in
front of it, "3F". After typing
the files combo, the server would send me a message confirming my choice:
 queuing [some neat clip 01.avi 180MB]. it has been placed in
queue slot [7], it will send when sends are available
To go back to the previous directory, I type the letter-number combination in
front of the line labeled".." instead of "cd ..". In the above example it would
be "0D".
And again, I exit the file-server by typing "exit" or closing the fservs DCC chat
Note: You do not have to to leave the chat session open for your file to
download but many file servers do require that you stay in the same channel
that the file server is in until the download is finished.

== How does the "@find" trigger work? ==
The syntax for this trigger is "@find search-query-here" where "search-query-here" would be the
keyword(s) you are looking for. The "@find" trigger works almost the same
as "!list", except only fserv's
serving files names with the terms you are searching for will respond.
If I were looking for someone serving a file that contained either "potato" or "floss" I would type:
@find potato floss
And an fserv that had a file with one of these two terms would in its name
would send me a PM with something like:

[@Find Results] -=SysReset 2.53=-
 Found [2] files on Trigger:[/ctcp Danno Dannos awesome stuff!]
- Sends:[0/2] - Queues:[0/50]
 File: [Teeth\Proper flossing technique.mkv] - Size [840.2MB]
 File: [War\Potato Gun ATTACK.avi] - Size [30.7MB]
 End of @Find.
In the example above, I'm not only given the trigger to use to access the
file server "/ctcp Danno Dannos
awesome stuff!" but the file location and name as well, [Directory\Filename.some-extension].
Keep in mind that "@find" is not always reliable as many file servers are not set up to respond to the trigger and will not PM you even if they have a file with one of your search terms in its name.

== What is with the "Closing Idle connection in [time interval here]" messages? ==
Most file servers owners have a limit to how many people can browse their
files via DCC chat at one time. This means that if the limit is reached, no
one else will be able to access their fserv. This is also why it is a good
reason to close\exit a DCC chat session when you have finished using it.
Also, keep in mind that some file servers owners may even ban you from their
fserv if you idle on it too long and never disconnect the DCC chat
connection. To help keep their file server open, many fserve runners will set
a time limit as to how long you can idle (not type any commands) on their
file server before the DCC chat connection is closed (you are disconnected
fro the file server).
For example, if I was connected to Danno's file server and received a message

Closing Idle connection in 30 seconds
And did not use any commands for 30 seconds I would be disconnected and see
something like:
Danno lost. Remote host closed socket.

== XDCC Browser ==
You can also use mIRC addons such as XDCC Browser http://www.XDCCBrowser.com
The script has a built in file server dialog that shows can shows the file list in a graphical way, just like an FTP session .
You can then just browse the file server, and double click on the files you want.