File Layout for NUTS 2.3.0 (as revised by Casey)
------------------------------------------------

I am going to assume that you are in the directory where all the talker 
files are kept for the rest of this document.

Directories:

helpfiles
messboards
profiles
roominfo
roominfo/atmos
userdata
usermail


Files:

banfile				(only if some sites have been banned)
blockfile			(only if some sites have been blocked)
init_data
mapfile
motd1				(optional but strongly suggested you have one)
motd2				(optional but strongly suggested you have one)
newsfile			(optional)
syslog				(only after the code has been started running)

These are all the files that you should have. Lets explain what they all 
are to you.


init_data
---------

This is the most important file. You can actually boot nuts with just 
this file, although no users will be remembered. It contains a list of 
all the rooms, their links and other important information required for 
the software to initialize itself. Note, this is the only file that 
requires you to reboot the talker for changes to take effect.

The format of the file is as follows:
<port num> <num of rooms> <atmos> <logfile> <newuser toggle> <mess life time>
<room name> <room links> <fixed status>
etc..

This probably doesn't make sense to you, so let me explain it a bit
better. The first line contains (separated by spaces) the port number that
you wish the talker to run from (eg. 5000), the number of rooms in the
talker, then toggle options for the atmospherics, log file and newuser
access (1 for on, 0 for off) and then the maximum message life time in
days (this is for the message boards - a good default value is 5).

Now after this you have lots more lines (one for each room). These 
again are separated by spaces and start with the room name (eg. 
entrance_lobby), then they have a list of links (I'll come back to this) 
followed by the FIXED status of the room (either 1 which means room can 
be made private or public, or 0 to mean the room is always public). Now 
the list of links looks something like this ACD ie. a list of capital 
letters. To create this list, give each room a letter starting from the 
first one as A and the second one as B to the bottom of the list. Then 
write where the links go the letters of the rooms you may go to. Let me 
show you an example:

Example init_data:
5000 4 1 1 1 5
main_room BC 0
spare_room A 1
public_room A 0
hidden_room D 1

A map for this place would look like this:
    +-------------+   +-----------+   +------------+   +-------------+
    | public_room +---+ main_room +---+ spare_room |   | hidden_room |
    +-------------+   +-----------+   +------------+   +-------------+
So people can lock the spare_room and hidden_room, yet you need special 
privileges to enter the hidden_room.

The order that the rooms are listed is important, as it defines the order 
that they are output by the .rooms command and it determines the names of 
their associated message board and atmospheric files.

NEW FOR NUTS 2.3.0 revision 2.8 and above

In init_data, if you supply a - before a room name it becomes marked so 
that users cannot use .search to read the notice board there. Also you 
should place a * in front of one room to indicate it is a jail, so that 
.arrest and .unarrest will work. If you add two - signs before a room 
name then users cannot enter this room unless .moved by a WIZARD or 
invited by a WIZARD (I'm not too sure on the invited thing though).

NEW FOR talkerd 1.8:

The first line could also be (ignoring line breaks):

<port number> <number of areas> <atmos on> <syslog on> <newusers on> 
<message life time - days> <max login trys> <login time out - seconds> 
<eyes glaze time - mins> <normal warning - mins> <normal time out - mins>
<afk warning - mins> <afk time out - mins>

If you want to define anything past <message life time> you have to 
define them ALL, if you don't they get default values from config.h

Note: The toggle options are: 1, yes, y, on
                              0, no,  n, off
This is better than just writing 1 or 0 :)

mapfile
-------

Once you have created your init_data, you will want people to be able to 
see the layout of your talker. The mapfile is just a file of text that 
can be used to show this. Many people like to fill it with ascii art. 
Remember that the lines should only be at most 80 characters long and the 
screen for most users is only about 23 lines deep, although the mapfile 
is paged (ie. press return for more). The map I drew above could be 
pasted into the mapfile and used quite happily. Be aware that the 
software turns single ^ characters into bold on/off control codes, so you 
might not want these in the mapfile or any other text file the software uses.


roominfo/
---------

You can see where the rooms are and move around them, yet you would like 
to have some detail for each one, this is what you want to change next then!
Two types of file live in this directory, the room descriptions and the 
atmospherics for the rooms.

To enter a room description create a text file with the same name as the 
room you want it to be for (as specified in init_data) and just enter the 
description as text. If a file doesn't exist for a room then it has no 
description. To see a rooms description type .look or enter the room from 
another.


roominfo/atmos
--------------

The atmospheric files are slightly more complicated. Take the rooms in 
the order they are listed in init_data and number them from 0 upwards. 
Then for each room that you want to add atmospherics for create a file 
called atmos<num> (eg. atmos1 for the 2nd room in the list and atmos0 for 
the first one). This file consists of pairs of lines:

<percentage>
<atmos>

The percentage should be a number between 0 and 100 and indicated the 
likely hood of that particular atmospheric being triggered (I'll explain 
how they are triggered in a second) and the next line should be the 
atmospheric itself. Don't let your atmospheric be longer than one line or 
the software will get confused.

How do atmospherics work? In the code there is a definition of a constant 
called ALARM_TIME. This is defaulted to 30 seconds. Every ALARM_TIME 
seconds the atmospheric function is triggered. This looks at the 
atmospheric file for each room that has people in it and goes through the 
pairs of atmospherics in that file. For each pair it creates a random 
number and <percentage> of the time it will trigger that atmospheric, and 
then continue on the next room. So if you have 3 pairs of atmospherics in 
a file and each was set to 5% of the time, an atmospheric would be 
triggered (on average) about every 5 minutes.


messboards/
-----------

This directory contains a file for every message board, which contains 
its contents as ascii text. The boards are named in the same was as the 
atmospheric files (eg board0 for the first room board1 for the second room 
etc.). If the directory is missing people won't be able to read or write 
to the message boards.


motd1 & motd2
-------------

These are plain text files (like mapfile) that are just shown on the 
screen. Neither of them are paged. motd1 is shown when you first log into 
the talker and before you are asked to input your name, it is customary 
for it to contain the name of the talker. motd2 is shown as you log in, 
I've not actually seen anyone use it for anything useful as it tends to 
scroll by too quickly. Again, either file can be missing, it just means 
nothing will be displayed.


newsfile
--------

This is displayed when you type .news, it is paged and should be plain 
text. If it doesn't exist, the software will display "There is no news" 
when people type .news.


banfile
-------

This contains a list of all banned sites as banned by .bansite and 
unbanned by .unbansite. You shouldn't alter this file.


syslog & syslog.bak
-------------------

Whenever you start the talker syslog is created and if there already 
existed a syslog file, this is renamed to syslog.bak. It contains useful 
information like when the talker was started and who had logged on and 
off. Every entry is time stamped.


helpfiles/
----------

This directory contains all the helpfiles. These are plain text and 
called after the command you wish them to refer to (eg. go move quit). 
Also in this directory are two special helpfiles: general and rules. 
These are follow the same format as normal helpfiles but to access them 
you type .help general or .rules. If you try to access a help file for a 
command that you may not use, the software refuses to let you read it.


profiles/ & userdata/ & usermail/
---------------------------------

Theses three directories contain all the userfiles. Each directory is 
split into 26 subdirectories labeled A-Z, and each subdirectory contains 
only information for userfiles beginning with that letter. Profiles end 
in .P, userdata files end in .D and mail files end in .M. For example if 
we had a user named janitor, then his user files would be:

profiles/J/Janitor.P
userdata/J/Janitor.D
usermail/J/Janitor.M

Remember that upper/lower case matters. The profiles are just plain text 
and are entered with .entpro, the mail files are just the users mail 
(again plain text - so don't be tempted to read them) and the data files 
follow a special format:

Note: This format has been updated since this document was written, the 
new format is documented in the file UserdataFile.txt in this directory.

<password>
<last login time>
<last login site>
<.desc>
<level>
<number of read mail messages>

The password is encrypted so you can't find out what it is. The last 
login time and site are self explanatory, as is the .desc. Now the level 
is a number between 0 and 3. The levels are DUNCE=0, USER=1, WIZARD=2, 
SU=3, so you can manually change peoples levels from here. (Note data 
files are saved with their current state when a user .quit's from the 
talker, so if you demote/promote someone from their file while they are 
logged on, their old level (the one they have when logged on) will 
overwrite whatever you changed it to. The number of mail messages is used 
by the software to decide whether or not you have newmail.



