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 you don't find the menu NAT, you an also enter your PC's local IP in the router menu "Default Server" or "DMZ".

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 at the bottom of the screen (the bottom one, be careful, there are two of them).

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 the icon above (the one above, be careful, there are two of them).

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 brown tocs to give 24h-tocs, add the following line in chatserv.ini :
[security]
brown-tocs-can-give-toc = NO
Gold tocs can still give them.


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 prefix #PRIV# 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 prefix #PASS# 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 Put an image as room title

To display an image as room title, you need an image of size 900 x 21 (max 63K) to be placed in the chat server's directory (c:\chatserv). To create it, follow the explanations in chapter 11 : "add your own icons" but with a few differences :


NumberFunction
0 Cup
1 Gold Toc
2 Brown Toc
3 Angel
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)

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

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-up 10% {sky001}
   or
20p {sky001}
size and icon of upper border (from 0 to 40%, or from 0 to 1024 pixels)
border-down 10% {sand01}
   or
20p {sand01}
size and icon of lower border (from 0 to 40%, or from 0 to 1024 pixels)
border-left 10% {tree01}
   or
20p {tree01}
size and icon of left border (from 0 to 40%, or from 0 to 1024 pixels)
border-right 10% {tree02}
   or
20p {tree02}
size and icon of right border (from 0 to 40%, or from 0 to 1024 pixels)

Example:


# chatserv.ini

[settings]
border-up    = 40p {sky001}
border-down  = 17p {sand01}
border-left  = 12% {tree01}
border-right = 5%  {tree02}

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 = :
To remove a message (number 0 to 15 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.



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
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 disable the web server, add in chatserv.ini :

[group]
server = off    # disable www server

to remove the title and change the menu color to white :

[group]
show-title = no# no title
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        0  65535  10000
.2    65535  65535  10000
.3    65535      0  10000
.4        0      0  10000
/ 1 2 3 4  {sable1}

; wall
.5      32368  33368  10290
.6      32886  33368  10290
.7      32886  33368  10100
.8      32368  33368  10100
/ 5 6 7 8 {welcom} bt

The example hereabove describes 2 types of objets :

. 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
       |     .------------------.
       |     |                  |
 65535 |     |                  |
       |     |                  |
       |     |                  |
  to   |     |                  |
       |     |                  |
       |     4                  3
   0   |     .------------------.
       |
  y:   |
       .-------------------------->
           x :  0    to     65535

Your map has dimensions of 65535 x 65535 points.
The 4 points hereabove have thus the following (x,y) coordinates :
   point 1 :  (    0, 65535)
   point 2 :  (65535, 65535)
   point 3 :  (65535,     0)
   point 4 :  (    0,     0)
The 3th coordinate (z) indicates the altitude of the point.
On the chat, the ground floor is at altitude 10000.

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

; ground floor
.1        0  65535  10000
.2    65535  65535  10000
.3    65535      0  10000
.4        0      0  10000

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 10400, 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         0  65535  10400
.10    65535  65535  10400
.11    65535      0  10400
.12        0      0  10400

/ 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      32368  33368  10282
.6      32886  33368  10282
.7      32886  33368  10000
.8      32368  33368  10000
/ 5 6 7 8 {welcom} bt

For a classical wall, you see 2 points with a Z of 10000 (downside of the wall) and 2 other points with a Z of 10282 (upside of the wall).
Here, the wall goes from (32368,33368) to (32886,33368); 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) of the map vary from 0 to 65535.

  2. the altitude (Z) on ground is 10000, the eye of the chatter is at an altitude of 10141, and an actor (chatter) has a maximum height of 10282.

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 strongly discouraged, especially if they have an important surface; they slow down strongly the chat because they are hard to compute for the 3D engine ! Moreover, the collision algorithme does not support oblique polygones so you should check each time if characters can walk through the polygone and possibly put an invisible (transparent) wall in front of it to block the way.


  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 1024 x 1024, the size of an image file (jpg, gif, bmp, pcx) defined in chatserv.ini is limited to 63K.

  2. The following options exist :
    example:
            / 1 2 3 4  {sable1}  bt
    
    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.

    The options b and t should be used with moderation as they slow down the 3D engine slighly.

  3. If 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 multiples of 2 ! (for example 128 x 256).

    this means that only the following dimensions are allowed : 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ou 1024,

    otherwise the 3D engine will add a white background (or a transparent one if t option used) to fill the gap, which can cause undesirable effects.

  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
    
  5. The special texture {board0} allows you to display a giant text screen where all the room conversations are displayed. Width : 704, Maximum Height : 648. It is possible to create an unlimited number of polygones with this texture.

How to change your appearance

When you enter the room, you appear at coordinates (32768,32768,10141) with a direction of 0 (facing north).

By default, you walk in the 3D world with a box having a webcam screen on the front.
The room owner can change this default appearance and transform it in a simple transparent webcam screen by using the following option in chatserv.ini :
# chatserv.ini

[3D]
actor = 1

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. This file must describe all objects of your appearance.

Example:
; actor.txt

.1      160      0    141
.2     -160      0    141
.3     -160      0   -141
.4      160      0   -141
.5        0   -120   -141
.6        0   -120      0

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


For draw your appearance, you have an available space from -160 à +160 that you can fill with polygones; in the example hereabove, we have defined 6 points and 3 polygones;

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;


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() > 50000)    // 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 1000 and 64000 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
    give_ammo (session_key, ammo); with ammo between 0 and 100 allows the bot to give ammunition
    give_health (session_key, health); with health between 0 and 100 allows the bot to give health points

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

  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 h, dir;
    
    proc timer ()
    {
      if (dir == 0)
        turn (0);
      else
        turn (180);
    
      move (10);
    
      if (bot_y() > 65000)
        dir = 1;
      else if (bot_y() < 500)
        dir = 0;
    
      set_timer (1);
    }
    
    proc event (session_key, userid$, sex$, has_photo, age, is_away,
                admin, cam_on, is_bot, toc_capab, signature$,
                action, is_myself, line$)
    {
    }
    


M. 3D Edition Software

To create your file world.txt automatically :

1) click here to download the 3D editor (version 9). 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 (because otherwise your character will fall into the blue depths). 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 and N=No_Collision). 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 10800, then the minimum to 10400. 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


To see how to install a bot, click here

go back to main page