How to create a chatroom


Here's now a chapter for those who have the manager spirit and who want to create their own chatroom.

For that, you must install a chat server on your PC. The people who will come to chat in your room will connect directly to your PC. If you stop the chat server or if you turn off your PC, your room will disappear.


A. Responsabilities

Because the manager operates a chat server on his/her PC without any possibility of verification or control from us, we shall not take any responsability for the use of this server software nor for the corresponding client software.

By downloading the chat server, the manager accepts to take full responsability of the use of this software.

We advise the manager to keep an eye on the following responsabilities :

We advise the manager not to take these responsabilities lightly if he/she wants to avoid a visit to the police consequent to a charge filed by a chatter !

The manager can use the server's logfile to verify what's happening in his/her room.


B. Installation

To install the chat server, please follow steps 1 to 8 below :


Step 1

Download the chat server by

(if it's not working, click here)


Step 2

Start it by clicking on the icon "CREATE_ROOM" on your desktop.




Step 3

Enter your room's name ("Chez Samuro"),
then select a language and a country ("Français/Belgique"),
and finally select a category (Ados, General, Adult 18+ or Erotica 21+) :

CategorieDescription
Ados 0 to 20 years
General for all public
Conversation 18+ conversations between adults
Erotica 21+ pink rooms


Step 4

Observe the indicator "#rooms" on the chat server (see picture on the right). This indicator counts the total number of chatrooms existing in the system. At the beginning, when you start the chat server, this indicator indicates 1. After a few minutes, it should indicate a value larger than 1 (for example 67 on the picture). This means that your room was correctly added in the room list. Continue then at step 7 below.

If you see a TEST button colored in GREEN, it means everything is all right, the indicator "#rooms" will change in a few minutes, you only need to wait.

On the other hand, if you see a TEST button colored in RED, it means that your PC isn't correctly configured to run a server. Continue then at step 5 hereafter.


Step 5 : Router

  1. click on the button "Start" in the left bottom corner of your Windows screen.

  2. click on "Run" or "Execute"

  3. type cmd then click OK, a black box should then appear.
         (note: on windows 95/98, type dosprmpt instead of cmd)

  4. type ipconfig and hit on the Enter key (in the right bottom corner of the keyboard)


  5. search for the two red lines on the picture hereabove. The first one is called "IP Address", and the second below is called "Default Gateway".

    If these IP addresses start with 192.168.x.x, 10.x.x.x or 172.x.x.x then you have a router that we will have to configurate (if they start with something else, you don't have a router and you can jump immediately to step 6 : Firewall)

    write down carefully both IPs on a sheet of paper :
    - the first one is the local IP of your PC (don't confuse it with your internet IP)
    - the second one is the IP of your router.

  6. start internet explorer, and type http://xxx.xxx.xxx.xxx where you replace xxx by the IP of your router.

  7. in the router's user guide, find the userid and the password for the login screen (it must often be left blank, or you must type admin).

  8. find the menu to add a server, it's often called "NAT" or "Virtual Server" or "Applications & Gaming"

  9. Add a line in the router's configuration :

    application user-defined, non-standard or type chat
    protocol TCP or UDP TCP
    number of incoming port 12000 (ou 12000 à 12000) - from chat server
    number of outgoing port 12000 (ou 12000 à 12000) - from chat server
    IP Address local IP of your PC that you wrote down on a sheet of paper
    Enable X

  10. save the configuration.

    example: the router wireless LinkSysBEFW11S4


If your PC runs under VISTA, opening the port sometimes doesn't work with some routers. What you must then do is enter your PC's local IP in the router's "DMZ" or "Default Server" menu.


If your WAN IP address on the modem begins with 10, (example ) it means your internet provider moved your connection on a CGN ! If that's the case you cannot run a server on your PC because you have only a private IP. For some internet providers, a simple phone call is sufficient to ask them to put you on a public IP, they do it in 5 min.


When your router is well configured, continue at step 6 because there's more to do.


Step 6 : Firewall

  1. You need to autorize the port TCP 12000 in the Windows XP firewall :
    - for windows XP click here
    - for windows XP with Service Pack 2 click here

  2. You need to autorize the port TCP 12000 in all security software you have installed (norton, f-secure, ..)
    To configurate your installed firewalls, please read the user's guide provided with your product. Some free products (for example Zone Alarm Standard Edition) do not allow port configuration. You need then to purchase the professionnal version of the product, or remove it entirely (the firewall within Windows XP offers sufficient security to avoid all hacking).
To check that all your firewall software that you've installed on the PC is configured correctly, you can download here the tiny tool testport. Start the chat server, then type in testport the local IP of your PC (see point 5 hereabove) and port 12000 and click OK : the tool will tell you if the port is open on all your firewalls, thus if you have correctly executed step 6.

When all your routers and firewalls are well-configured, then the button TEST on the chat server should become GREEN when you click on it, which indicates that the port is open; if it remains RED then you must go back to step 4 above because you surely made a mistake !

When the indicator "#rooms" on the chat server displays a value larger than 1, continue at step 7 because it's not finished.


Step 7 : several PCs

If you have a router and you chat from another PC than the one where you installed the server, you'll see a line of dots where your room name normally appears and you won't be able to enter your room, although other chatters can enter without problem. It's because one of your PCs can't find the IP of the other.

To solve this problem, you have two solutions :

1) the automatic method :

2) the manuel method :

Here's a simple example :
Be careful to copy this example in a clean way without changing anything but the IP address and PORT number !

# chat.ini

[room1]
IP   = 192.168.0.52     # IP local address of the PC
PORT = 12000            # port of chat serveur

[icons]
test01 = test.bmp
frog01 = grenouille.gif

[settings]


If you have installed 2 servers (port 12000 and 12001), you need to indicate both ports, like this :

# chat.ini

[room1]
IP   = 192.168.0.52     # IP local address of the PC for server 1
PORT = 12000            # port of chat serveur

[room2]
IP   = 192.168.0.52     # IP local address of the PC for server 2
PORT = 12001            # port of chat serveur

[icons]
test01 = test.bmp
frog01 = grenouille.gif

[settings]


Start now the chat. If you correctly executed this step you should see now a line with the name of your room.

Don't forget, if you create a new pseudo or you download a bot, to repeat this operation for the new chat.ini !




Step 8 : several chat servers

If you install several chat servers on the same router, then you must use different port numbers (12000, 12001, ..) by modifying the file chatserv.ini of each server.

Moreover, if you install several chat servers on different PCs connected to the same router, then it is necessary to open, on the firewalls of these PCs, the UDP ports of same number than the already open TCP ports. If you forget to do it, then some of your rooms will regularly appear and disappear from the room list. (note: the router need not be changed).

Example:



C. The Chat Server



IPindicates your PC's IP, 12000 being the TCP port used by the chat server.
#roomsindicates the total number of chatrooms currently open.
#usersindicates the number of chatters in your room.
Room Name allows you to indicate the name of your room. It's not necessary to restart the server after changing it.
Langue/Pays indicates your language/country choice in the room list. It's not necessary to restart the server after changing it.
Categorie indicates the category of your room :

CategoryDescription
Ados 0 to 20 years
General open to all public
Conversation 18+ conversations between adults
Erotica 21+ pink rooms

It's not necessary to restart the server after changing the category.
max upload allow you to set the maximum upload speed that you allow for the chat server.
The upper value is the maximum limit that you authorize; the lower value changes automatically and indicated the actually used speed.
(see also the chapter "connection speed" further in this documentation)
Button 'R' resets the "max upload" speed to the default value 120
Reload reload the file chatserv.ini - to be used after you changed a server parameter in this file.
Gold displays the list of gold tocs (see chapter below "How to give a toc").
Brownsame for brown tocs.
Banneddisplays the list of permanently banned people.
Log-1displays yesterday's room log.
Logdisplays today's room log.


D. Chat Server's Log File

The chat server produces a daily logfile containing all the room's conversation, for example "2003-10-12.chatserv.txt". Whispers are not recorded for privacy protection reasons.

However, note that your internet provider can easily have access to all dialogues on the chat, on Messenger or simply e-mail exchange, for a police inquiry. We advise you to not do anything illegal on the internet, it always leaves traces.


E. How to give a toc or bann a chatter

There are 2 ways to give a toc or to bann someone :

1) the temporary way, that lasts maximum 24 hours or until the server is restarted.
2) the permanent way, without time limit.

1. Temporary way (max 24 hours)

To give a brown toc to Eric for 24 hours :

- click on Eric's pseudo in the list,
- click on icon (the bottom one, be careful, there are two such icons).

Eric must leave the room and come back to obtain his toc.


To bann a chatter, you have to :

. write a line of text with the reason of exclusion, but without hitting the key to send it,
. click on the nick of the chatter to exclude,
. click on icon or (the one above, be careful, there are such icons).

Optionnally, you can add an exclusion duration between brackets in minutes or in hours.

Example 1:
calm yourself [15 min]

Example 2:
go to bed [8 h]


The exclusion duration has however no effet on room owners (those who have a gold toc).


To see the list of gold/brown tocs or exclusion of the last 24 hours, type :
/toc
which will display a list as follows :
10 : Marc has received a toc from Vincent until 22:45
12 : Ivanohé is excluded until 02:12
14 : Arglub is excluded until 04:06

To take back a toc or cancel a bann, you only need to delete the corresponding line.
For example to cancel the exclusion of Ivanhoé (line 12 hereabove), type:
/delete 12


To take back all tocs and cancel all exclusions, type:
/delete all


If you don't want GOLD or BROWN tocs to give 24h-tocs, add the following lines in chatserv.ini :
[security]
gold-tocs-can-give-toc = NO
brown-tocs-can-give-toc = NO


2. Permanent way (without time limit)

Only the room owner who runs the chat server of his/her PC can use this method :

Click on button "Log" on the chat server see to the room conversation.
Look for the entering-in-room of the concerned chatter, you'll see a line such as :

00:03:24 > ISABELLE has joined the conversation. (80.200.6.106) [E5DF21C781251FE9:12F3]

The characters between brackets [ ] denote the unique signature of the chatter.

Copy the signature (including the brackets), then paste it in one of the lists Gold, Brown or Banned that you open by clicking on the corresponding button on the chat server.

- Gold : list of permanent gold tocs (room owners),
- Brown : liste des permanents brown tocs,
- Banned : liste des permanent banned people.

Example of a GOLD file :
[E5DF21C781251FE9:12F3] Isabelle (Lyon)
[ZE3160A5D0D3D718:B6C2] Samuro



F. Private Rooms

A "private" room is only accessible to people who are invited by the room owner. To create a private room, you need to create a file "INVITE.TXT" in the directory "C:\chatserv". This file must contain the list of all signatures that are allowed to enter the room (see chapter above).

When this file is created, the icon appears in front of the room title, which allows the chatters to recognize a private room.

If it doesn't work, try to rename your file into "INVITE" instead of "INVITE.TXT" (notepad adds the hidden extension .TXT automatically, for more details click here)

To retransform a private room in normal room, delete the file.


G. Rooms with password

A room can be protected by a password. Only the chatters who know the correct password can enter.

It is possible to combine private room (see previous chapter) and room with password : only the people invited or knowing the password may then enter.

G.1. Password controlled by the room owner

To protect a room with a password, the room owner must create a file named "PASSWORD.TXT" in the directory "C:\chatserv". This file must contain only the password (to do this, start windows explorer in C:\CHATSERV, click on the menu "Files", click on "New", then on "Text Document", then type the filename PASSWORD, click on it to open notepad, finally type your password and close all).

When this file is created, the icon appears in front of the room name, which allows the chatters to recognize a room with password.

If it's not working, try to rename your file as "PASSWORD.TXT" instead of "PASSWORD" (notepad often adds automatically the hidden extension .TXT, for more details click here)

To remove the password protection, delete the file.

The chatters having a Toc (GOLD or BROWN) can enter the room without giving the password.


G.2. Password controlled by GOLD Tocs

The room owner can allow the GOLD Tocs to control the password, thanks to the command /pass.

Warning: a GOLD toc can, using this command, invite people in a private room (see previous chapter) that were not invited by the room owner.

To authorize the use of the command /pass, the room owner must add, in chatserv.ini :
[security]
command-pass = enable

After having clicked on the button "Reload" from the chat server, the following commands are available for GOLD tocs :

To protect the room with the password "borderline", type the command :
/pass borderline

To see the current password, type :
/pass

To remove the password, type :
/pass off



H. How to create several rooms

Several rooms can be created on the same PC. For this, you must specify, at server installation, the number of rooms you want. The installation will then create several directories and several icons on the desktop to start each room.

Each room will use a different tcp/ip port. The default port of the first room is 12000. To select another port, the installation will create automatically, in the server's directory, a file CHATSERV.INI with the following text :

# chatserv.ini file

[listener]
port = 12001

All you need to do is to configurate your firewall and possibly your router for these additional ports.


I. Connection Speed

Each chatter is linked to the chat server by 2 connections :

- the first connection is used for text.
- the second connection is used for icons, webcam images, microphone sound and profiles.

A setting on the chat server allows to set a limit on the speed used for the second connection.

Connection Download Upload max upload setting
modem 56K

32 Kbits/s

32 Kbits/s

8 à 16 Kbits/s

ADSL

256 Kbits/s

128 Kbits/s

48 à 120 Kbits/s

ADSL

512 Kbits/s

128 Kbits/s

48 à 120 Kbits/s

ADSL

1024 Kbits/s

128 Kbits/s

48 à 120 Kbits/s

ADSL

4096 Kbits/s

128 Kbits/s

48 à 120 Kbits/s

SDSL

1024 Kbits/s

1024 Kbits/s

792 Kbits/s


By default, the setting is set on 120 Kbits/sec for an ADSL connection of 512/128 Kbits/sec.

An ADSL connection download=512 Kbits/sec and upload=128 Kbits/sec allows to send to the other chatters 128 Kbits per seconde; a setting of 120 Kbits/sec leaves a small margin to send text and avoid traffic jams.

If you are lucky and own a professionnel SDSL (symmétric digital subscriber line) connection, you can set without problem to 792 Kbits/sec.

Remark: the speed of an ADSL connection is asymetric, which means that the receiving speed (1024 Kbits/sec) and sending speed (128 Kbits/sec) are different. Unfortunately, a chat server mainly need a fast sending speed to send text and images to all chatters at the same time. So it's no use to increase the reception speed (1024 ou 4096 Kbits/sec) if the sending speed is limited to 128 Kbits/sec.
Usually servers are hosted on SDSL connections (symmétric) where the reception and sending speeds are equal. Such a connection is however too costly for a hobby chatter.


J. Style

This chapter explains how to give a unique style to your room.


J.1 Show image banners

You can display the following 3 image banners :


Here's how :


NriconFunction
0 Cup
1 Gold Toc
2 Brown Toc
3   Angel (age <= 10)
4   Man with photo
5   Man without photo
6   Woman with photo
7   Woman without photo
8   Couple with photo
9   Couple without photo
10 button: Micro
11 button: Speaker
12 button: Sounds (music note)
13 button: Webcam
14 button: Profile
15 button: Phone
16   icon: Phone RING
17 button: block whispers
18   icon: Bot
19 button: ignore
20 button: bubble
21 button: font
22 button: sun (webcam settings)
23 button: Group
24 button: Emoticons
25 button: Exit
26 button: Follow (v)
27 button: take his/her Golden Toc (for a room owner)
28 button: take his/her Brown Toc (for a brown toc owner)
29 button: give a brown Toc to someone

J.2 Change the default emoticons

The emoticons in the list on the right can be changed.

Example:

To change the cup into a wc, the brown toc into a hammer, and the Gold toc into an icon you've drawn yourself (see chapter 11. Add your own icons), you need to modify the file chatserv.ini in the chat server's directory as follows :

# chatserv.ini

[settings]
icon_0 = $vc        ; cup into wc
icon_1 = {faucil}   ; Gold toc into faucille
icon_2 = (ma)       ; brown toc into hammer


[icons]
faucil = my_faucille.jpg     ; 21 x 21

note: if you use emoticons containing the characters # or ; you must double them, i.e. ## and ;;

After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.




J.3. Changing the default background colors


ParameterValues Default ValueFunction
border-colorred,green,blue192,192,192 color of the text scrollbar and of separation lines
cam-colorred,green,blue255,255,255 color of the webcam area (above in the window)
title-colorred,green,blue255,255,255 background color of the room title (the line between the webcams and the written text)
text-colorred,green,blue255,255,255 background color of the chat text
list-colorred,green,blue255,255,255 background color of user-list on the right
menu-colorred,green,blue255,255,255 background color of control menu on the right below
cam-txt-colorred,green,blue0,0,0 color of the pseudos under the webcams
title-txt-colorred,green,blue64,64,64 color of the room title, in the room
text-userid-colorred,green,blue0,0,0 color of the pseudos in the text
text-away-colorred,green,blue128,128,128 color of chat server messages
list-userid-colorred,green,blue0,0,0 color of the pseudos in the list on the right
list-away-colorred,green,blue128,128,128 color of the away pseudos in the list on the right
list-selected-colorred,green,blue255,255,255 color of the selected pseudos in the list on the right
list-selback-colorred,green,blue128,0,0 background color of the selected pseudos in the list on the right
bulle-colorred,green,blue?,?,? force the text color of a sentence written with

Pour each color, specify the quantities of red, green and blue of the color, between 0 and 255. You can find this information in the Paint program (it can be found in the Windows accessories), menu Personalised Colors.

Example:

# chatserv.ini

[settings]
border-color = 160,160,192
menu-color   = 255,255,128


After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.


J.4. put a border with a background image around the text


ParameterValues Function
border-top 10%
or
20p
size of upper border (from 0 to 40%, or from 0 to 1024 points)
border-bottom10%
or
20p
size of lower border (from 0 to 40%, or from 0 to 1024 points)
border-left 10%
or
20p
size of left border (from 0 to 40%, or from 0 to 1024 points)
border-right 10%
or
20p
size of right border (from 0 to 40%, or from 0 to 1024 points)

ParameterValues Function
border-image-1 {image1}     zone:12346789     horizontal-align:left     vertical-align:topimage of a group of zones

Zone:
123
4Text6
789

OptionValues
horizontal-alignleft=aligned left, right=aligned right, center=centered, stretch=stretched
vertical-aligntop=aligned to top, bottom=aligned to bottom, center=centered, stretch=stretched


Example 1:


# chatserv.ini

[settings]
border-top     = 40p ; upper border : 40 pixels
border-bottom  = 17p ; bottom border : 17 pixels
border-left    = 12% ; left border : 12%
border-right   = 5%  ; right border : 5%

; image 1 set on screen parts 1 to 6 (not 7 to 9), align left top
border-image-1 = {decor1}  zone:12346  horizontal-align:left  vertical-align:top

[icons]
decor1 = my_image.jpg


Example 2:


# chatserv.ini

[settings]
border-top     = 40p
border-bottom  = 17p
border-left    = 12%
border-right   = 5%
border-image-1 = {decor1}  zone:123  horizontal-align:center  vertical-align:top
border-image-2 = {decor2}  zone:4    horizontal-align:left    vertical-align:top
border-image-3 = {decor3}  zone:6    horizontal-align:left    vertical-align:top
border-image-4 = {decor4}  zone:7    horizontal-align:left    vertical-align:top
border-image-5 = {decor5}  zone:9    horizontal-align:left    vertical-align:top

[icons]
decor1 = my_image1.jpg
decor2 = my_image2.jpg
decor3 = my_image3.jpg
decor4 = my_image4.jpg
decor5 = my_image5.jpg

Example 3:


# chatserv.ini

[settings]
border-top     = 20p
border-bottom  = 20p
border-left    = 20p
border-right   = 20p
border-image-1 = {decor1}  zone:12346789  horizontal-align:stretch  vertical-align:stretch

[icons]
decor1 = my_image1.jpg

After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.


J.5. desactivate the image pseudos

To desactivate the image pseudos of the chatters and make them appear under their simple pseudo (in grey), use the option :

# chatserv.ini

[settings]
pseudo-icon = no

After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.



J.6. freeze all animated pseudos or all animated gif images

To freeze all animated pseudos but still allow animated gif images, use the option :

# chatserv.ini

[settings]
animated-gifs = after

To freeze all animated pseudos and freeze all animated gif images, use the option :

# chatserv.ini

[settings]
animated-gifs = no

After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.



J.7. change the chat server system messages

To change the chat server system messages, use the following options in chatserv.ini :
[system-message]
0 = has joined the conversation.
1 = has joined the conversation.
2 = has left the conversation.
3 = has left the conversation.
4 = has been disconnected.
5 = has been disconnected.
6 = is absent.
7 = is absent.
8 = has returned.
9 = has returned.
10 = takes his toc.
11 = takes her toc.
12 = drops his toc.
13 = drops her toc.
14 = is speaking on the (mic).
15 = is speaking on the (mic).
16 (obsolete)
17 = Host
18 = kicked
19 = :
20 = was teleported.
21 = was teleported.
To remove a message (number 0 to 15, or 20 to 21 only), specify an empty text, for example:
[system-message]
0 =
After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.



J.8. Create a room without webcams

To create a room without webcams, use option :

# chatserv.ini

[settings]
cams = no ; makes webcam and sun icons disappear from the menu

After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.



J.9. Hide the counters under the webcams

To hide the counters under the webcams, use option :

# chatserv.ini

[settings]
webcam-counters = HIDE     ; SHOW or HIDE counters under webcams

After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.



J.10. hide the black bar between icons webcam and sun

To hide the black bar between icons webcam and sun, use option :

# chatserv.ini

[settings]
webcam_sun_bar = HIDE     ; SHOW or HIDE bar between icons webcam and sun

After modifying the file chatserv.ini, click on button Reload of the chat server to reload it.



K. Manage the group associated to the chatroom

The button allows to surf on an internet site linked to the chatroom.

Description of the group

The group contains a message forum, a page to the chat, and a Tools page that allows to manage the menu's pages.

The forum allows everyone to post messages; however you need to be in the chatroom so that the forum knows the nickname of the person who posts the message. On the other hand, it's not necessary to be in the chatroom to simply read the forum, provided you have opened the chat to the outside world by using the option world-access = yes (see below).

If you can't get in the group, check that :
1) you accept cookies (the forum uses one cookie) and
2) in Internet Explorer, the security options "Submit Data of non-encoded forms" and "Active Scripting" are set to "Activate".
Click here to configurate your Internet Explorer correctly.

In the menu Messages, Managers having a toc can add/rename/delete message pannels or delete messages and discussions. The creator of a message can delete it. The creator of a discussion can delete the discussion if it contains only a single message. Older messages can be retrieved using an integrated search engine.


In the menu Tools, Managers having a toc to add/modify/rename/mask/delete a page, or to change the order of the pages in the menu (the groupe always starts by displaying the first page at the top of the menu). The menu Tools also allows to add a separator whose purpose is to group together several menu entries. Renaming a separator creates a menu title.

Finally, the room owner having the server can also put HTML files (or an entire web site) in the sub-directory www/ of the server and link these pages to the menu with the option Tools/"Add Link". for example if he has created a page home.html in www/ he must specify home.html as link name.

By default, access to the group is given only to the chatters who are in the chatroom, this allows you to keep a control on the persons who access the site, and also avoid that some people create links to your site, which would seriously make the chat "lag".

The access speed to the page can be controlled by using the same button as for the webcams, so if too many people visit the website and make the chatroom lag, decrease the speed.

All the group (messages, images, etc ...) is stored in the file group.db in the server's directory. To avoid an important loss of data in case of an accidental or intentionnal delete by a manager (yes that happens), the file group.db is copied once a day (from Monday to Sunday) to the backup files (group.db.day_1.backup to group.db.day_7.backup). The room owner can thus go back up to a week by manually copying the selected backup file to group.db

Attention: to avoid an important loss of data in case of crash of the disk, it is recommanded to regularly take a copy of the group.db file or of the backup files; to take a copy of group.db, you have to stop the chat server first because it locks the file.
Your HTML pages who are in www/ don't make part of the group and must be saved too; these pages are only changeable by the PC owner. The file group.db can also be transfered from one PC to another in case of a server transfer from one manager to another.

Parameters of the group

The following optional parameters in the section [group] of chatserv.ini allow to change some options :

ParameterValues Default ValueFunction
server on, off on on=internet server active, off=internet serveur inactive
access chat,group,both chat chat=normal
group=desactivation of the chatroom, a button is added to the left of the room list -> the chatroom no longer exists : by clicking on a line of the room list, you directly enter the group.
both = a button is added on the right of the room list -> combined room and group : if you click on a line, you enter the chatroom, but if you click on the button, you directly enter the group without passing in the room.
fullscreen yes, no no no=normal, yes=internet explorer starts in fullscreen
database filenamegroup.dbname of database file containing the group
database-backup-dir directory directory name where the group's database is saved each day, must end with \
Example: f:\chat_backup\
www directoryc:\chatserv\www\path to directory www
show-titleyes,no yes yes=show title, no=don't show
banner image filename (.gif,..) display the banner (max 900 x 21) as group title
menu-width0 to 2000120width of menu (in pixels) (0 = no menu)
menu-text-color 000000 to FFFFFF666699pen color for the menu
menu-border-color000000 to FFFFFFECF1F6background color for the menu
menu-hover-color000000 to FFFFFFCC6600color when passing the mouse on the menu
menu-title-color000000 to FFFFFFF17827color of the renamed separators in the menu
world-accessyes, no no yes = group can be accessed outside from the chat,
no = group can be accessed only through the chat.
remark1: a private group or group with password always has value 'no'.
remark2: to modify a group or write on the forum, you must always pass through the chat.
remark3: the group is ALWAYS accessible from the PC where the server runs (ip 127.0.0.1)
max-discussions10 to 10028number of discussions displayed per page.
max-messages3 to 10010number of messages (of a discussion) displayed per page.
message-background-color000000 to FFFFFFFFFFFFdefault background color for new messages
message-background-image0000000000.jpg default background image for new messages.
To specify an image, click on Properties (right mouse button) of an image that is already on the group, and copy its name (that must have 10 digits and the extension .jpg) in the parameter.


Examples:

to change the menu color to white :

[group]
menu-border = FFFFFF# white menu border


After you've modified chatserv.ini, click on button 'Reload' on the chat server to reload it.


It's possible to replace the default files group.html and/or group.css by your own files. All you have to do is put your file in the www server sub-directory. Don't forget however to erase the Internet Explorer cache otherwise it will keep the old copies.

If you created your own file group.html, you can use the following variables in the html code :

  $START-PAGE$ is replaced by a link to the first menu page,
  $MENU-WIDTH$ is replaced by the menu width.



Access from outside the chat

By default, the group site is accessible only through the chatroom or from the local PC. To allow a consultation from the outside, set the option world-access to yes.
The URL of the group is indicated in the address bar in internet explorer.

Example: http://62.197.65.220:12005/group.html

This URL can be simplified in several ways :
1) the suffix /group.html is optional
2) the suffix port (here :12005) can be removed provided you change your server's installation to make it use port 80 (it's the standard port number reserved for protocol HTTP), see the chapter H. "how to create several rooms".

so what remains is : http://62.197.65.220

The IP normally changes each 24 hours; in order to have a fixed URL, you must reserve a DNS name at some provider, for example : http://www.no-ip.com/ who offers this service for free, but be careful, this is reserved for specialists; this includes installing a software on your PC that alerts the provider each time your PC changes its IP so that the DNS name gets updated.

So, in the end, your site can have a name like : http://newchatrooms.zapto.org


Add a visit counter on your group

To add a counter for the number of visitors, create a page (Tools/Add Page), click on button "C" on the toolbar, and select :

counter number(you can create several counters)
Pen Colorfont color
Background Colorbackground color
nb digitsnumber of digits
height(in pixels)



L. "3D" Room Style

To create a 3D room, you need to create a file named WORLD.TXT describing all objects of your world. This file must be stored in the chat server's directory; if you change the file, you need to stop and restart the chat server.

Here's an example file :

; world.txt

; ground
.1    -32768  32767   0
.2     32767  32767   0
.3     32767 -32768   0
.4    -32768 -32768   0
/ 1 2 3 4  {sable1}

; wall
.5      -300   -400   512
.6       200   -400   512
.7       200   -400     0
.8      -300   -400     0
/ 5 6 7 8 {welcom} bt

The example hereabove describes 2 types of things :

. 3-dimensional coordinates (x,y,z)
. polygones dressed with an image texture


* * *


To create your 3D world, you have two alternatives :

a) use a 3D editor software (see chapter M hereafter).

b) create your file WORLD.TXT by hand. For this, take a sheet of paper and start by drawing a map seen from above (like a satellite photo).

Draw points on the map, number them (starting at 1), and then join them together by drawing lines.

Example: a squared ground floor that covers all map.
       ^
       |
       |     1                  2
       |     .------------------.
       |     |                  |
+32767 |     |                  |
       |     |                  |
       |     |                  |
  to   |     |                  |
       |     |                  |
       |     4                  3
-32768 |     .------------------.
       |
  y:   |
       .-------------------------->
           x : -32768   to     +32767

Your map has coordinates going from -32768 to +32767.
The 4 points hereabove have thus the following (x,y) :
   point 1 :  (-32768, +32767)
   point 2 :  (+32767, +32767)
   point 3 :  (+32767, -32768)
   point 4 :  (-32768, -32768)
The 3th coordinate (z) indicates the altitude of the point.
On the chat, the ground floor is at altitude 0.

To define 4 points at ground level, we shall have :

; ground floor
.1    -32768  32767   0
.2     32767  32767   0
.3     32767 -32768   0
.4    -32768 -32768   0

We must now join the 4 points and select an image texture to dress it; this is done by the following command :
/ 1 2 3 4  {sable1}
The texture must be defined in chatserv.ini, as for an image icon.

remark
the order of the points (1,2,3,4) is important !
Indeed, the points must be given in the order of the pointers of a watch in order for the texture to be visible in the front.
If you want to define a ceiling similar to the ground but at an altitude of 512, you must define the points in the opposite order (12,11,10,9), otherwise your ceiling will remain invisible and will only be visible to flying birds !

Example:
; ceiling
.9    -32768  32767   512
.10    32767  32767   512
.11    32767 -32768   512
.12   -32768 -32768   512

/ 12 11 10 9  {plafon}
Another solution to avoid the trouble with the order of points (if however you want to use the same texture on both sides) is to use option b (both) that has the effect of making the texture visible on both sides.

Example:
/ 12 11 10 9  {plafon}  b
You can define floors and ceilings; they are always flat, so all their points have the same z.

You can also define vertical walls in a similar way :

Example:
; wall
.5      -300   -400   512
.6       200   -400   512
.7       200   -400     0
.8      -300   -400     0

/ 5 6 7 8 {welcom} bt
For a classical wall, you see 2 points with a Z of 0 (bottom of the wall) and 2 other points with a Z of 512 (top of the wall).
Here, the wall goes from (-300,-400) to (200,-400); you see that the Y does not change, it is thus a wall going from north to south on the map.


* * *

Here's a list of limitations of the 3D engine and some additional explanations :


Point Limitations

  1. the coordinates (X,Y,Z) vary from -32768 to +32767.

  2. the coordinate (Z) indicates the altitude (the ground is at 0, the eye of the chatter is at 141, and an actor (chatter) can pass through a corridor of height 282).

Polygone Limitations

  1. In the definition of a polygone such as :
             / 1 2 3 4  {sable1}
    
    the number of points must be between 3 (triangle) et 8 (octogone);

    example:
       / 1 2 3  {triang}
    

  2. the polygone built by joining all points in order must be :
    • flat (all points must be on the same 2D surface),
    • convexe (no intern angle must exceed 180 degrees)
    if these rules are not followed, then the result will have defects !
    (note that a triangle is always, by nature, flat and convexe)

  3. the polygone must be horizontal (floor, ceiling) or vertical (wall);
    other forms (like a oblique roof) are possible, however they slow down the chat especially if they have a large surface.

  4. the points of a polygone must be listed in the order of the pointers of a watch so that the texture is visible in the front.

Texture Limitations

  1. the maximum dimensions of a texture image are 2048 x 2048, the size of an image file (jpg, gif, bmp, pcx, png) defined in chatserv.ini is limited to 127K. Animated GIFs and semi-transparent PNGs are supported.

  2. The following options exist :
    example:
            / 1 2 3 4  {sable1}  btns
    
    Option b (BOTH) : the texture is visible on both sides (front and back), whatever the order of the points.
    Option t (TRANSPARENT) : the color black of the texture is used as transparent color.
    Option n (NO COLLISION) : your character can walk through the polygone.
    Option s (STRETCH) : the texture is stretched to cover the entire polygone's surface.
    Option d (DOUBLE) : the texture is applied with double precision (points are thinner). Doesn't work with STRETCH.

    Options for 3D objects only:

    Option M (MERGE) : merges several textures on an almost flat object (not compatible with option STRETCH). You need to specify option M on all textures you want to merge. The first texture with M will be the base texture on which the texture is applied normally. On the following textures with M and having the same texture name, textures will be applied with orientation and offset of the base texture, which can stretch the texture in case of important slope.

    Option V (VELOCITY) : allows to move the texture on the object at a given speed with the command object_texture_velocity.

  3. If you haven't used option 's' and the surface of the polygone is larger than the texture, then the texture will be repeated several times to cover the whole of the polygone's surface; but attention, in this case the 3D engine imposes a limitation : the dimensions of the texture must be powers of 2 (for example 128 x 256) otherwise the 3D engine will add a white background (or transparent if option t) to fill the gap.

    this means that only the following dimensions are possible : 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 or 2048.


  4. several textures (up to 3) can be specified, they will then alternate irregularly with a period of 0.5 sec.
    example:
             / 1 2 3 4  {sable1} {sable2} {sable3}  bt
    

How to change your appearance

When you enter the room, you appear at coordinates (0,0,0) with a direction of 0 (facing north). The eye is at (0,0,141).

By default, you walk in the 3D world with a box having a webcam screen on the front.
Each chatter can also design his/her own 3D appearance composed of multiple polygones by creating a file named actor.txt in the chat's directory; If you change the file, you must stop and restart the chat.

Example:
; actor.txt

.1      159      0    119
.2     -160      0    119
.3     -160      0   -141
.4      159      0   -141
.5        0   -106   -141
.6        0   -106    -13

/  1 2 3 4  {webcam} {soleil} {toquer} b
/  5 3 2 6  {floor1} b
/  4 5 6 1  {floor1} b

To draw your appearance, you have an available space (X,Y) from -160 to +160 and (Z) from -141 to +141 that you can fill with polygones; in the example hereabove, we defined 6 points and 3 polygones; the actor's space(X,Y,Z) is unlimited for the bot.

The texture {webcam} is special : it's a texture that need not be defined in chat.ini because it's created dynamically and filled with the webcam image of the chatter; the option t (transparent) will make all black colors transparent.

In the first polygone, we have specified 3 textures : the first one {webcam} is displayed by default, the 2nd {soleil} is displayed when the chatter goes away (in cup), the 3rd {toquer} is displayed when the chatter takes its toc;

The room owner can also modify the default actor by putting a file actor.txt in the server's directory. He can also put different files per chatter kind : actor.m.txt, actor.f.txt and actor.c.txt

If both (chat client and server) have placed actor files, then the chat has priority over the server.

The script function
b = actor_customized (session_key);
allows to test if a chatter has changed its actor. This function yields 1 if the chatter has changed its actor, or 0 if it's a default actor or server-defined actor. This allows the bot to not attach objects on client-customized actors. A small technical note : the function actor_customized gives an error if called in response to an action 128, you need to use action 228 (arrival in room of an actor) instead.


How to move your bot using a script

The following script commands have been added to support the 3D world:

  1. The following functions :

        bot_x(), bot_y() and bot_z()

    are used to obtain the x, y and z position of your bot.

    Example:
         if (bot_x() > 30000)    // we're almost leaving the map here
    

  2. The function :

        bot_dir()

    is used to obtain the direction of your bot, from 0 to 359 :
       
    0 = north (to the top of the map)
    90 = east (to the right)
    180 = south (to the bottom)
    270 = west (to the left)

  3. The procedures :
       
    turn (dir); with dir between -360 and +360 allow changing your bot's direction
    move (pas); with pas between -65535 and +65535 allow to make your bot go forward or back
    lift (altitude); with altitude between -32768 .. +32767 allow to change the bot's altitude

    These procedures allow you to make your bot move alone.

  4. The procedures :
       
    teleport (session_key, x, y, z, dir); with dir between -360 and +360 allows the bot to move a player
    teleport (session_key, x, y, z, dir, port); port = server's port allows the bot to teleport a player in another room on the same PC or router
    teleport (session_key, x, y, z, dir, port, ip$); with ip$ = IP address or DNS name allows the bot to teleport a player to another room
    set_gravity (session_key, gravity); with gravity between -255 and +255 (-10=rises, 0=flies, 10=falls normally) allow the bot to change earth attraction
    give_ammo (session_key, ammo); with ammo between -100 and +100 allows the bot to give/take away ammunition
    give_health (session_key, health); with health between -100 and +100 allows the bot to give/take away health points

    These procedures allow a bot with toc to move a player, to give him ammunition or health points.


    Besides, clicking on an actor generates an action 912 containing in line$ the session_key of the clicked chatter, in 10 digits.

  5. You can create a procedure event_3D that will be called each time a chatter changes its position; this allows for example the bot to follow a chatter, to move in front of him, possibly to kick him if he moves where he's not allowed to;

    Example:
         proc event_3D (session_key, x, y, z, dir)
         {
            if (x > 16000)
              kick (session_key, "it's not allowed to go there !");
         }
    

  6. lastly, here an example script.txt to make the bot move:
    var dir;
    
    proc timer ()
    {
      if (dir == 0)
        turn (0);
      else
        turn (180);
    
      move (10);
    
      if (bot_y() > 30000)
        dir = 1;
      else if (bot_y() < -30000)
        dir = 0;
    
      set_timer (1);
    }
    
    


How to create 3D objects

The bot can create 3D objects that you can make move and react when a chatter clicks on them. A chatter can 'sit' on an object : if the objet moves, the chatter will move with it. An object can be used as a obstacle (wall, fence, cage) because the chatter cannot go through it (except if option n).

To create a 3D object, you need to put a file OBJECTS.TXT in the bot's directory which contains all your object definitions. Here we created a bird and a door :


# OBJECTS.TXT

[bird]              ; horizontal plane
.1 -141 307 0
.2  141 307 0
.3  141   0 0
.4 -141   0 0
/ 1 2 3 4 {bird01} btn

[door]              ; vertical plane
.1 -276 0 512
.2  276 0 512
.3  276 0   0
.4 -276 0   0
/ 1 2 3 4 {wood01} b

To allow a correct rotation, your objects must be centered in (0,0,0) and face north.
Coordinates (X,Y,Z) are limited between -32768 and +32767.


To make your objects appear and move, you need to write a script like the following one, and put it in the bot's directory :

// script.txt : example script pour 3D object bird

proc timer ()
{
 object_shape (1, "bird");
 object_move (1, 0,     0, 12000);                     // initial position
 object_move (1, 0, 10000, 12000, 0, 0, 0, 10000, 1);  // final position
}

The following script commands are defined for 3D objects :


object_shape (nr, "bird");
object_shape (nr, "bird", "OBJECTS.TXT");
  • selects the shape "bird" (see OBJECTS.TXT) for the object number nr.
  • nr indicated the object number that you can freely select between 0 and 65535, you can thus create up to 65536 objects (per script and per bot).
  • an object can change shape as often as wished.
  • if you don't specify a file, it's OBJECTS.TXT by default.
object_move (nr, x, y[, z[, direction[, height[, transversal [, duration[, repeat]]]]]]);
  • moves an object to coordinates (x,y,z) with angles (direction, height, transversal).
  • brackets [] indicate that most parameters are optional, so for example to change only (X,Y) of object number 1 you can simply write: object_move (1, 100, 200);
  • direction : direction (angle 0 to 360, 0 = north).
    height : nose up (angle 0 to 360, 0 = normal).
    transversal : head on left/right shoulder (angle 0 to 360, 0 = normal).
  • duration : time that the movement to its new position will take, in 1/1000 seconds (0 = immediate, 1000 = 1 second, 600000 = 600 seconds).
  • repeat : (0 = do not repeat the movement, 1 = when the object has reached its new position, put it back at the start and start over).
  • Values -18000 to +18000 are allowed for angles direction, height and transversal so that you can make several 360° turns while the object moves forward.
object_face_actor (nr, option);
  • orients automatically the object so that it always faces the chatter !
  • That's very useful if you have an 'flat' object like 'doom ennemy' or 'fireball' which must always face the player so that nobody sees they have no depth.
  • Each chatter will thus see the object in a different orientation.
  • option
    1 = always orient the direction angle towards the chatter,
    2 = always orient the direction and height angles towards the chatter,
    0 = desactivate the automatic orientation.
object_face_to (nr, x, y [, z]);
  • orient the object so that it 'looks' at point (x,y,z).
  • This method of orienting the object is easier than calculating the angles in the command object_move.
  • This command also desactives the automatic orientation (see object_face_actor).
  • If you specify only coordinates x and y, only the 'direction' angle is changed, if you specify also the z coordinate, the height angle is also modified.
object_clickable (nr, option);
  • makes the object 'clickable', meaning that if a chatter clicks on it with the mouse an event (action 915) will be sent to the script that created the object.
  • This action will contain the object's number in line$, as 1-to-6 digits.
  • options :
    1 = makes object clickable,
    0 = no longer makes object clickable
object_soap (nr, slippery);
  • makes the object slippery, meaning that if the object is turned vertically and an actor is on it, he will slip and risks falling off the object.
  • slippery : 0 to 255 :
    0 = no slippery (actor sticks to the object),
    10 = normal slippery,
    255 = strong slippery.
  • the slippery factor depends also on gravity (see command set_gravity)
object_scale (nr, scale_x, scale_y, scale_z);
  • expands or shrinks the objet.
  • scale : between 1 and 65536 :
    128 = half size,
    256 = normal size,
    512 = double size.
object_texture_velocity (nr, velocity_u, velocity_v);
  • allows to move the textures having option V on the object at a given speed
  • velocity_u, velocity_v : between -2047 and +2047 pixels per second
object_skybox (nr, on_off);
  • creates an object of type skybox which position is automatically centered on the coordinates of each actor which enables you to create a cube object with a background at infinite distance.
  • on_off : 0 = normal object, 1 = skybox object
object_attach_actor (nr, session_key, mode);
  • attaches an object to an actor. The object will then follow all the actor's movments.
  • 'mode' can have the following values :
    0 = detach (becomes again a normal object)
    1 = attach to screen (only the chatter having the session key can see the object)
    2 = attach to actor (all chatters can see the object except the one having the session_key)
    3 = 1 & 2 combined.
object_attach_object (nr_objet_child, nr_objet_parent);
  • allows to attach a (child) object to a (parent) object. The (child) object will then follow all moves of the (parent) object.
  • This allows to design objects in several parts that can move independently (displacement, rotation, scaling) while remaining attached (body, arm, hand, finger).
  • note: the number of the child object must always be larger than the number of the parent object.
object_delete (nr);
  • deletes object (it will thus disappear).
object_sound (nr, "{son001}" [,distance]);
object_sound (nr, "son.wav" [,distance]);
object_sound (nr, "son.wav");
  • enable object nr to make a sound. The parameter 'distance' is used to specify a distance in points. Chatters further away than 'distance' points from the object will not hear the sound.


How to specify a background

There are 3 ways to specify a background to the 3D world :
  1. the following parameter in chatserv.ini allows you to choose a background color :
       [3D]
       sky_color = 102,190,253
    
  2. the following script command allows you to modify the background color dynamically :
      set_sky_color (r,g,b);   // change 3D sky color
    
  3. create a skybox : a skybox is a big cube surrounding the 3D world and that allows you to specify a background image.
    • create a 3D object 'cube' (-32768 to 32767 per side),
    • multiply its size by two with object_scale to obtain a cube of 131072 per side,
    • center it onto each actor with the command object_skybox so that the actor always remains in the center of the cube.

Other Options

You can freeze animated GIF textures in your chat client by :
# chat.ini
[3D]
animated-gifs = no  ; freeze animated GIFs in 3D textures


M. 3D Edition Software

To create your file world.txt automatically :

1) click here to download the 3D editor (version 23). Please Notice: click on Save and not on Run ! Download the software on your harddisk, then copy it in your chat server's directory (usually c:\chatserv) and finally start it by clicking on it.

2) start by drawing a floor For this, click on "Texture" to select a texture, then click on "Mode" to select mode 'FLOOR', then click on the map to draw a big square around the pink sign and the red triangle (the red triangle indicates your start position). If you make a mistake, click on key Escape to cancel your last clicked point. To close your square, click again on the first starting point. Your square should now become blue.

3) You see a small blue circle in the center of the map. If you click on it, it will select your floor and display various modifiable attributes (height of floor, texture, options T=Transparent, B=Both, N=No_Collision, S=Stretch). A button 'Delete' allows to delete the floor.

4) to draw walls, select a texture (button Texture), then select mode 'WALL', click then on the map to draw one or several walls of a room in a clockwise sense ! (indeed, each wall has two sides and each side has its texture and its height). To start a new wall, click on key Escape. To delete a wall, click on its green circle to select it then on the button 'Delete'. You can also change its texture or its height.

5) the mode CEILING is used to create a ceiling similarly to a floor. For the ceiling's points, it is recommanded to take existing wall or floor points, because otherwise the points will remain invisible (to display them, you'll need to change the minimum and maximum heights on the display in the upper left corner so that the minimum be equal to the ceiling's height).

6) the mode EDIT is used to move points or change attributes without creating anything. A message "Error: angle < 180°" appears if you create a floor or ceiling having an angle larger than 180°, which is disallowed; move then the point to make the message disappear.

7) to create a second floor, change in the upper left corner the maximum height to 1024, then the minimum to 512. You will then see only objects defined within these two limits. Similarly, you can create stairs.

8) click and move the mouse on the upper right window to navigate in your new world; any object created or changed option will be immediately shown. If your change your minimum altitude (upper left corner), your character will go to this altitude.

9) click on the X in the upper right corner to quit the editor, which will automatically save your world in a file world.txt




N. Irc Chatrooms

Irc (Internet Relay Chat) is a rather old chat protocol, but it is still widely used by many chat sites.

If you own a chatroom on an Irc server, it is possible to open a room on The New Chatrooms that will act as a gateway and send the chatters from here to your Irc room. Of course, the available functionnality will be greatly reduced : no banners, no writing color, no profiles, no webcam or micro. You can only write and talk in private.

Furthermore, you'll have to expect technical problems as the Irc protocol varies somewhat from one server to another. You may be blocked on some servers because you need a password or an adult option. We offer you this only as an experimental feature.

To open a gateway to an Irc server, add this in chatserv.ini :

[irc]
server      = www.coolsmile.net  ; name of Irc server
channel     = ##my-room          ; room name (always put ## at the start !)
port        = 6667               ; port of Irc server
nick_suffix = _s                 ; pseudo suffix (optionnal)

The nick_suffix is a suffix that will be appended at the end of the chatters's pseudo who arrive through the gateway, this allows you to distinguish them from the others. This parameter is optionnal.

In Irc rooms it is common when talking to someone (for example Loulou), to begin your phrase with "Loulou>". To obtain this effet, you only need to select the chatter you want to talk to before typing your phrase.

To talk in private, you need to trigger the yellow phone on the chatter while you speak to him/her : all phrases that you send will then only be sent to him/her. Be careful because contrarily to the chat here, whispers are often recorded and sometimes monitored; you risk a bann if you make publicity or give your msn.


O. Ftp access

You can remotely access all files of your chat serveur using the FTP (File Transfer Protocol) protocol.

For this, add the following lines in chatserv.ini :


  # chatserv.ini

  [ftp]
  port = 21                       ; port number for ftp access
  user = your_user_name
  pass = your_password            ; at least 8 characters !

Use a complicated user and password to avoid you room being hacked !

Using an Ftp tool (standard on any computer), you can then read and write all files in your chat server's directory (but nowhere else on the PC).

Warning: you need to open port 21 on your firewall and your router. More, on the PC where you call from, an arbitrary port will be opened by the Ftp protocol. It is thus often necessary to open all ports there (search for ftp documentation on internet for more details).


To see how to install a bot, click here

go back to main page