An fserve for XChat

This is a detailed list of each configuration setting show by the command "/ts config list". It also explains how to alter these settings, so you can configure TuxServe however you wish.

Please note, that due to the constant development and improvements that I am making, some of the data on this page may become obsolete - but I will try my best to keep the page updated with the code.

Text like this shows that it's a helpful comment displayed by TuxServe.

Text like this shows that it's a setting name, used in the "/ts config set <setting> <value>" command.

Text like this shows that it's a value you can change with "/ts config set <setting> <value>".

An example config:

A list of all current settings. Please note that if you change the settings (with the "set" command), they will show here - but they won't be written to the config file until you use "/ts config save"

General Settings
auto_on: 1
auto_clear: 0
auto_resume: 1
channels: #moo #moo2 #oldskool
trigger 1: Everything
trigger 2: SG1!
trigger 3: 0ldSko0l
trigger 4:
trigger 5:
trigger 6:
trigger 7:
trigger 8:
(trigger_dirs are linked to triggers. EG, trigger 1 points to trigger_dir 1, trigger 3 points to trigger_dir 3, etc)
trigger_dir 1: /home/aypok/stuff/
trigger_dir 2: /mnt/hd/
trigger_dir 3: /home/ftp/uploads/
trigger_dir 4:
trigger_dir 5:
trigger_dir 6:
trigger_dir 7:
trigger_dir 8:
trigger_type: ctcp (types: "ctcp" and "public")
trigger_levels: "A" "A" "A" "A" "A" "A" "A" "A" ("A" means that trigger is accessable by anyone)
default_note: TuxServe is an fserve for XChat - get it at
use_raws: 1
show_welcome: 1
show_dir_info: 1
inform_banned: 1
banned_no_list: 0
show_hidden: 0
auto_close: 0
advert_timer: 3600 seconds
advert_full: 1
max_queues: 10
user_queues: 2
max_sends: 1
user_sends: 1
max_users: 1
idle_time: 120 seconds
send_now: 0
colours: 1="4" 2="12" 3="9" 4="7" 5="8" 6="12" 7="13"
Channel Settings
(help with "advert_settings": each of the 10 numbers will be either 1 or 0 - on or off. It's a list what items are to be shows on that channels advert. From first to last, here's what each one shows on the advert:
sends, queues, users, upload speed, record speed, total bytes sent, total files sent, failed sends, times accessed, note)

#moo_triggers: 1 2 3
#moo_advert: off
#moo_advert_settings: 1 1 0 1 1 0 0 0 0 1
#moo_note: testing a different note for #moo :)

#moo2_triggers: 2
#moo2_advert: off
#moo2_advert_settings: 1 1 0 0 0 0 0 0 0 1
#moo2_note: (This channel uses the "default_note")

#oldskool_triggers: 3
#oldskool_advert: off
#oldskool_advert_settings: 1 1 1 1 1 1 1 1 1 1
#oldskool_note: (This channel uses the "default_note")



Whether TuxServe is automatically switched on as soon as it's loaded, or whether it should wait to be switched on with the "/ts on" command.

0 = off.
1 = on.


Whether TuxServe should automatically clear all sends and queues when it's loaded or switched on.

0 = off.
1 = on.


Whether TuxServe should automatically resume any sends and queues it find whenever it's loaded or switched on.

0 = off.
1 = on.


A list of channels that you want the fserve to work in. Each option must be separated by a single space and must start with a hash (#). There is a limit of 16 channels.

trigger *

This is the list of upto 8 triggers your fserve can use. The * means a number between 1 and 8. You do not have to use them all - you only need 1 trigger. A trigger can be upto 63 characters long, and include any characters EXCEPT the "}".

trigger_dir *

The path to the root of the serving directory for that trigger. Each trigger_dir associates with the trigger of the same number - eg, trigger_dir 1 is the path for trigger 1, etc. The path can be upto 255 characters long, and include any characters EXCEPT the "}". You do not need to use the escape character (\) for special characters, such as speech marks ("), or parentheses (()).

You MUST have a trigger_dir set for each trigger. The users of your fserve cannot go up to a higher directory than the one you enter for the trigger_dir - eg, if you enter "/home/user/monkeys/", they cannot go up to "/home/user/". They can, however, access ALL sub directories and files - EVEN HIDDEN FILES! I may make it an option to allow you to hide hidden files from fserve users.


The type of triggers you want to use on your fserve: CTCP or public. You cannot have a mixture of CTCP and public triggers (yet) - all your triggers are either CTCP, or they're all public. TuxServe deals with these itself, so you don't need to worry about them - eg, if you set your triggers to CTCP, TuxServe will automatically change the advert for you.

ctcp = the triggers are "silent". To get on your fserve, the user must send the trigger via a CTCP request - eg, "/ctcp <your nick> <trigger 1>. These cannot be seen by anyone but you and the user who typed them.
public = these triggers have to be typed into the channel and can be seen by everyone in the channel (hence the name "public"). All public triggers start with an exclamation mark (!) which is added by TuxServe.


These define which kinds of users can access each trigger on your fserve. The way this works is kind of odd, so I will try and explain it as best as I can - until I fix it and make it more sane... There are 8 characters, each in speech marks, and each one relates to a trigger - the first character is for the first trigger on your fserve, the second character is for the second trigger, and so on. Each character can be either a: "+", "%", "@", or an "A".

You may recognise these as being the prefixes for nicks on IRC - they are. Except "A" - "A" means that trigger is open to anyone. Some servers have extra modes; +a and +q (sop and channel owner - red and purple dots - "&" and "~") - TuxServe recognises these and treats them as ops. I decided not to bother adding in the ability to limit triggers to sops or the owner.

To set this, you must include ALL 8 trigger settings (even if you don't have 8 triggers). You must also separate each character by a single space, and not inclue the speech marks. Here's an example:

/ts config set trigger_levels + + % + A @ @ A

It is recommended that you set the levels for unused triggers to "A" - it makes things simpler :)

+ = only those users who are voiced (and above, eg - hops, ops) can access that trigger (an orange dot, in XChat).
% = only those users who are hops (half-operators), and above, can can access this trigger (a blue dot, in XChat).
@ = only those users who are ops can access this trigger (a green dot, in XChat).
A = anyone can access this trigger - no matter what their level.


The default note, or message, to be attached to your fserve advert (if you set the advert to include the note). All adverts use this note unless that advert has been given its own note (see below). It is limited to 255 characters in length.


Send notices and privmsgs via RAWs instead of via XChat. This just means that you don't see them being sent. For example, if someone types "!list", you will see TuxServe send the advert to them - but, if this is enabled, you won't see that.

0 = off.
1 = on.


This is used for showing a welcome message to all those who connect to your fserve. There are several options currently:

0 = off - don't show a welcome message.
1 = on - show a random message from "fortune". You must have "fortune" in the system path for this to work.
2 = on - show the contents of the "welcome" file, in "<XChat path>/tuxserve/welcome" (the XChat path is usually "~/.xchat2/", making the location of the file "~/.xchat2/tuxserve/welcome"). This is a plain text file. There is no limit on the size of this file, but due to the limit of how many characters XChat can send at once, please have no more than 255 characters on each line - otherwise it may be displayed weirdly for the users. This file does NOT exist by default - you must create it yourself.


If a user enters a dir which has an "info file", then this will display it. An info file is just a plain text file which is placed into the dir you want it to be displayed in. The file should contain just a short bit of information about that specific dir, or the files contained within it. Also, the file must be named ".TuxServe_info-<dir_name>", where <dir_name> is the name of the dir it's placed in.

0 = off.
1 = on.


If this is enabled and someone who is banned from your fserve tries to connect, they will be sent a message letting them know that they are banned.

0 = off.
1 = on.


This, if enabled, will hide you fserves advert from anyone who is banned from your fserve. For example; if "user_a" and "user_b" both type "!list", but "user_b" is banned from your fserve, only "user_a" will see your advert.

0 = off.
1 = on.


Whether or not to show your hidden files (files that start with a ".") to users when they list a dir.

0 = off.
1 = on.


If a user quits a DCC fserve session, and this is enabled, TuxServe will automagically close the dialog window that was open with them.

0 = off.
1 = on.


How many seconds to pause between showing your fserve advert in the channels. Currently, all adverts for all channels use this 1 timer (this will hopefully be fixed later). This setting only effects those channel adverts which have been set to show in the channel (see below) - this will not show adverts in the channels you have told it not to. Please note, that this is in seconds - not minutes!


Whether to display your fserve advert when the queues are full. I advise you to leave this on, unless you have a good reason to switch it off, as some ops will see that you have no advert and think that you're not serving.

0 = off - show the advert whatever.
1 = on - only show the advert when there are free queue slots.


The maximum number of queues for your fserve. This has no limit, but I advise you to keep it lowish, otherwise the queue will take ages to clear (from sending files, that is).


The maximum number of files that each user can queue. This has no limit.


The maximum number of concurrent sends. This is only limited by your connection speed and the number of DCC session you can have open at 1 time.


The maximum number of concurrent sends to each user (only used if you allow more than 1 send at a time). There is no limit on this - except your connection speed and the number of DCC session you can have open at 1 time.


The maximum number of users that can be browsing your fserve at once. This is only limited by your connection speed and the number of DCC session you can have open at 1 time.


How many seconds a user browsing your fserve must be idle before it kicks them off. It warns them that they are idle 30 seconds before it kicks them. This is to stop users from "camping" on your fserve.


The size of files to send instantly. If a user queues a file that is smaller than this size, it will send it to them instantly, rather than queueing it. This is very useful for small files, such as text files. The size is measured in bytes.

0 = off - don't allow send now.
1+ = on - the maximum size, in bytes, for files to be sent instantly. EG, a value of 1048576 is 1mb, so it will instantly send all files smaller than 1mb if send_now is set to this (1048576).


Defines the colours to use for TuxServe. It shows both the colour code and shows the colour, to aid you. These are set the same way as you'd set the trigger_levels, eg - you don't enter the speech marks, just the 7 colour codes, each separted by a single space. Here's an example:

/ts config set colours 4 12 9 7 8 12 13

For a list of all available colour codes, right click a channel tab (in XChat) and select "Insert color code". These colours effect everything, but is mainly used for the fserve advert. The default colours are very bright :)

It's hard to explain what each colour code is for, so i'll try and demonstrate. Here is an example fserve advert with the default colours:

[FServe Online] Triggers:[[/ctcp TuxServe Everything && /ctcp TuxServe SG1! && /ctcp TuxServe 0ldSko0l]] Sends:[[0/1]] Queues:[[0/10]] Speed:[[0Kb/s]] Record:[[1Kb/s by Someone]] Note:[[TuxServe is an fserve for XChat - get it at]] <<TuxServe v0.0.7alpha>>

Colour 1 - code = 4 (red)
Colour 2 - code = 12 (blue)
Colour 3 - code = 9 (green)
Colour 4 - code = 7 (orange)
Colour 5 - code = 8 (yellow)
Colour 6 - code = 12 (blue)
Colour 7 - code = 13 (pink)

So, if you change colour 1 from red to green, everything that was red, will become green. It's pretty simple :)

Channel Settings:

There will 4 lines in each section for each channel. Each setting name starts with a channel name, then an underscore, then the type of settings. EG:


So, when you see something as, for example, "#_triggers" it means substitue the channel name for the "#".


A list of triggers to use in this channel. These relate to the trigger numbers described above. You can include upto 8 trigger numbers for each channel (there are only 8 triggers). To set it, you must include all trigger numbers on 1 line and separate each number by a single space. For example:

A list of triggers to use in this channel. This is a list of 8 numbers, each one refers to a trigger (the first number is for the first trigger, etc) and is either on (1) or off (0). When you list the config, it won't display it like this - it will just show the actual numbers of the triggers used, eg: #moo_triggers: 1 2 3

To set them, you have to list all 8 numbers. If you wanted to set the channel to use only triggers 1, 3, and 6, you'd do it like this:

/ts config set #channel_triggers 1 0 1 0 0 1 0 0

----------------------> triggers 1 2 3 4 5 6 7 8


Whether to publically show the advert in this channel every advert_timer (see above) seconds.

off = don't show the advert in this channel ever.
on = show this channels advert in the channel every advert_timer seconds.


This is one of those "overly complex" things I should fix, I guess. But for now I'll just explain how to deal with it. Hold on tight...

Basically, there are 10 numbers, and each one is either 0 or 1 - off or on, respectivly. They make up a list of information to show on the fserve advert for that channel. Each one of these numbers is a switch for a certain part of the advert. Here, in order, is what each switch turns on and off (0 means don't show this information in the advert - 1 means DO show this in the advert):

- the current number of files being sent via DCC.
- the current number of files in the queue.
- the current number of users browsing the fserve.
- the current upload speed of all DCC sends.
- the record DCC send speed achieved on this fserve.
- the total number of kilobytes sent via DCC send.
- the total number of files sent via DCC send.
- the total number of DCC sends that failed.
- the total number of times the fserve has been accessed.
- the note (either the default_note, or the channel note - see below).

So, if we set the advert_settings to:

/ts config set #channel_advert_settings 1 1 0 1 1 0 0 0 0 1

The advert for that channel would just display; the current sends, queues, current speed, record speed, and the note.

You cannot currently change the order in which these items are displayed in the advert. Also note that there is no option to display the triggers - that is because all the triggers for that channels advert are automatically displayed. Also note, that the more options you enable for your adverts, the longer it will be. This may seem obvious, and it is, but there is a limit to how many characters IRC clients can send each time. Due to this, TuxServe automatically splits long adverts into 2 separate adverts which it displays for you. You do not need to worry about this - but I thought it'd be best to tell you.


A note (for the advert) that is specific to this channel. By default, all channels use the default_note, but you can give each channel a separate note. Set it the same way as you would the default_trigger. It's limited to 255 characters, and cannot contain the "}" character.

If a channel is set to use its own note, and you want to set it to use the default_note, then just set the channels note to blank and it will automatically set it to the default_note. EG:

/ts config set #channel_note

TuxServe and all of this site is (C)opyright 2004-2005 Aypok. Best viewed with your eyes, at 1024x768. Built with The Gimp and Screem on Slackware Linux. Best viewed in Opera. All hail the mighty Tux!