# 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".
-Danno- <File Server Online> Trigger:[/ctcp Danno Dannos awesome stuff!] Next send:[in 1hrs 36mins] Accessed:[4763 times] O:[0/5] S:[1/1] Q:[10/10] .<UPP>. -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...
<TracerFX> -=SysReset 2.3=- FileServer <TracerFX> NOTICE: If you leave this channel all sends, gets, and fservs will be stopped. <TracerFX> Transfer Status: Sends:[0/1] - Queues:[0/30] <TracerFX> Minimum CPS is: 5000 <TracerFX> Maximum CPS is: 10000 <TracerFX> This server will auto-close after 1min 30secs. <TracerFX> SysReset v2.3 File Server <TracerFX> Use: cd, clr_queue, clr_queues, dir, exit, get, help, queues, quit, say, sends, stats, swap, who <TracerFX> [\] <TracerFX> 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 directory cd: change directory, use this to enter (cd "sub-directory-name") and exit (cd ..) sub-directories get: 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:
<TracerFX> .. <TracerFX> LATEST STABLE BUILD <TracerFX> BETA BUILDS <TracerFX> NIGHTLY BUILDS <TracerFX> readme.txt 3 kb <TracerFX> tutorial 1.avi 25.3 mb <TracerFX> tutorial 2.avi 42.4 mb <TracerFX> End of list.
To enter the directory named "NIGHTLY BUILDS" I would type "cd NIGHTLY BUILDS" which would give me:
<TracerFX> SysReset 2.53 <TracerFX> [\NIGHTLY BUILDS]
To find out what's in the directory named "NIGHTLY BUILDS", I would again type "dir" which would give me:
<TracerFX> .. <TracerFX> Logo.jpg <TracerFX> 20080214.zip 82.4 MB <TracerFX> 20080218.zip 83.7 MB <TracerFX> Install Guide.txt 4 kb <TracerFX> 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:
<TracerFX SysReset 2.53 <TracerFX [\]
I can list the contents of this directory again by typing "dir", which (yet again) displays:
<TracerFX> .. <TracerFX> LATEST STABLE BUILD <TracerFX> BETA BUILDS <TracerFX> NIGHTLY BUILDS <TracerFX> readme.txt 3 kb <TracerFX> tutorial 1.avi 25.3 mb <TracerFX> tutorial 2.avi 42.4 mb <TracerFX> 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 like:
<TracerFX> DCC Send tutorial 1.avi (12.23.4.567)
* TracerFX has offered tutorial 1.avi (25309024 bytes)
* DCC RECV connection established to TracerFX [12.23.4.567:9001]
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: <TracerFX> 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 before:
<Danno> Ultra Protection Project v2.00 final - by KyD <Danno> Welcome [12.34.567.89], you are the [75th person] to access my fserve <Danno> Dccwatch:(off) Instasend max.size:(5.00MB) Idletime:(60 secs) Timeout:(600 secs) Min.cps:(off) Max.cps:(off) <Danno> O:[1/6] S:[1/1] Q:[6/10] [Your Sends]: 0/1 [Your Queues]: 0/1 [Your Priority]: 0 <Danno> Commands: cd, clr_fqueues, clr_queue, clr_queues, dir, failq, find <Danno> get, help, my_queues, pwd, queues, quit, sends, stats, time, who
And as with the command prompt file server type, I type "dir" to bring up the list of directories:
<Danno> 1d : mega-collection <Danno> 2d : more stuff <Danno> 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:
<Danno> [more stuff] <Danno> 0D: .. <Danno> 1F: cooking with fire.mpg 96MB <Danno> 2F: fun with frisbees.txt 175MB <Danno> 3F: some neat clip 01.avi 180MB <Danno> 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:
<Danno> 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 window.
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.
Example:
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:
<Danno> [@Find Results] -=SysReset 2.53=- <Danno> Found [2] files on Trigger:[/ctcp Danno Dannos awesome stuff!] - Sends:[0/2] - Queues:[0/50] <Danno> File: [Teeth\Proper flossing technique.mkv] - Size [840.2MB] <Danno> File: [War\Potato Gun ATTACK.avi] - Size [30.7MB] <Danno> 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 like:
<Danno> Closing Idle connection in 30 seconds
And did not use any commands for 30 seconds I would be disconnected and see something like:
DCC CHAT to 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.