The cnf file is what holds a Kiss together. You have to identify each item in the Kiss by name, and its place in the Kiss. Lines in a Kiss that you do not want to appear as code can be preceeded by a semi colon(;). Some viewers place lines in the beginning of the Kiss to tell information, like which viewer was used. You can also add the ; in the middle of a line, anything after the ; will be ignored (except in FKiss, when certain information is preceeded by a ;). Some people add information about cels with the ; or tell people information in the cnf instead of writing a .txt file.
The first thing you have to tell your Kiss is what size the window it appears in should be. You list the width,height in pixels, like this:
The second thing you have to identify in the Kiss is the palette file(s). You do this, by "calling" the palette file like this:
%palette.kcf (please note that it will be named whatever your palette file is instead and then .kcf)
If you have more than one palette file, you list them in sequence:
You can tell the Kiss what color the border surrounding it should be. This is a function not in use by a great majority of viewers, but is still usually included in the code, just in case. I always just leave it at zero.
Then you get to start "calling" the cels. You have to list the cel names, in order of how high you want the item to be. The first cel is at the top, and they go down until the last cel, which is the bottom. Patterned or picture backgrounds are often the last cel listed. The cels also have to be associated with numbers, starting at zero, although you do not have to use all the numbers, you can leave some out if you wish for any reason. Any two cels that have the same number will be connected, at the top left hand corner. For cels to not be connected, they have to have different numbers.
In this example, the hat is the top item in the picture, and the shirt is above the skirt, and both those and the hat are above the body. shirt and _shirt are connected, with _shirt being behind the body (you can incude the inside back of the shirt this way, with things like tags if you want). You can also tell the cels how many clicks it takes to release them, by adding a decimal point/period and a fix value.
In this case, the corset will not move until it has been clicked 5 times. The boots will move without having to click on it first (no value is equal to 0). The red ponyfalls (redfall.cel) will only move after being clicked 10 times, since it has been fixed in _redfall.cel. As long as _redfall.cel is visible, skirt will not move until it has been clicked 10 times. If is is not visible, flufskrt will move without havign to be clicked on 10 times. The body will not move at all on some viewers (some viewers enable you to move a cel no matter the fix value, but generally it is accepted that any value above 99 is considered permanently fixed).
You also list next to each item which palette each item uses, if there are multiple palettes. You count the palettes in the order in which they are listed when you originally call them at the top of the cnf, counting from zero. Any cel using the first palette does not need a number after it, but any cel using any of the other palettes needs to be told to use that palette instead.
#3 flufskrt.cel *1
In this case, both peices of the body, and the corset, boots, and fishnets use the first palette in the list (but my earlier count, palette1.kcf, tho I will name it 1.kcf instead). The skirt is colored using the second palette, palette2.kcf (2.kcf). Calling the extra palettes is only necessary in a Kiss with multiple palettes, otherwise you can leave this step out.
You also list which sets each item appears in next to the items. Once again, the first set is referred to as zero, and there are 10 sets in a Kiss (0-9). The sets are the windows of the Kiss, each can be arranged differently to show off your kiss.
#3 flufskrt.cel *1
#1 boots.cel : 0 1 3 9
#4 fishnet.cel : 0 4 5 6 7 8 9
#0.999 lilbod.cel : 0 1 2 3 4 5 6 7 8 9
#5.10 _redfall.cel :
The fishnets only appears in sets 0, 4, 5, 7, 8, and 9. The boots appears only in sets 0, 1, 3, and 9. The front of the skirt, the body, and the back of the shirt appear in all sets, the addition of : 0 1 2 3 4 5 6 7 8 9 after the body is redundant, as nothing after the cel has the same effect. The back of the ponyfalls do not appear in any sets, because it has the colon, which says that this cel only appears in the following sets, and is not followed by any numbers.
You can also choose to add information about each cel that is not important to the viewer, but only to be seen if someone opens your cnf file, but preceeding the information by a ;.
#5 redfall.cel ; these are red curly ponyfalls so the doll can have cute add-on hair!
#2.5 corset.cel ; this is a corset
#0 lilboda.cel ; this is the doll's arm
#3 flufskrt.cel *1 ; this is a fluffy skirt
#1 boots.cel : 0 1 3 9 ; this is a pair of boots
#4 fishnet.cel : 0 4 5 6 7 8 9 ; this is fishnet tights
#0.999 lilbod.cel : 0 1 2 3 4 5 6 7 8 9 ; this is the doll's body
#5.10 _redfall.cel : ; this is the back of the ponyfalls, but it doesn't appear anywhere
After you have listed all of your cels, they have to be told where to appear. In this example:
$0 166,96 * 60,265 61,282
The $0 tells which palette is taken. This is not the same as the palettes you indexed above, this instead refers to multiple palettes that are actually embedded in a single palette file. If you do not have a multiple palette, you have to leave it at 0 or it messes up the colors. If you do, you can change the number to the number of the embedded palette you desire, and can give each set a different color scheme (once again you treat the first palette in the embedded palette as 0 and count up from there).
The numbers that follow are the coordinates where each cel is placed in the window. Each set has its own coordinates, so cels can be placed in different configurations in each set. The first set of coordinates, in this case 166,96, tells the Kiss where cel #0, in this case lilbod.cel (and lilboda.cel), is placed, with the top left hand corner of the window being 0,0, and counting from there. Some Kiss programs allow cels to have negative coordinates and have parts located outside the window, but others do not, only allowing cels to be referenced or even moved within the bounds of the window. A * indicates that the cel is located at 0,0, in this case cel #1, the boots. The next set of coordinates tell you where cel #2 is located, and so on. The coordinates count up from 0, and never skip a location even if the cel is not in the set (usually it is then represented by a *), there have to be placeholders for each number in order.
You have to have the $0 (or $ other number) and coordinates for each set you wish to appear in the Kiss, otherwise it will not have all sets represented.
That is the anatomy of a basic Kiss, if you follow these rules with your own items, you should have a regular Kiss. FKiss adds other commands for different reasons, and is a little more complex.