                 Welcome to the QUAKE GRAPHICS EDITING FAQ!   
                              Ver. 1.21  7/4/97 (few revisions)
           *NEW* with simpler language for the mentally challenged
                      *even NEWer* with more information
                               by Dan Bickell
                             danbickell@loop.com

This document covers the editing and creation of graphics to be used in the
incredibly amazing and stupendous id software game QUAKE.  Quake is perhaps
the single most editable game that currently exists, and the ways in which
the game can be altered are numerous.  Within this "FAQ", we will focus
soley upon the editing of graphics to be used in the game.  We will explore
the entire process of creating or editing "skins" for the  3D models in Quake
and textures for the walls and ceilings in Quake levels.

Yes, this is a real FAQ (frequently asked questions). All of the questions
are real questions that people have asked me in email.  (Well, at least most
of them)

Contents:
*-denotes new or expanded material as of v.1.2
$-new as of v.1.21
         I. Skins
            A. What is a skin?
            B. How do I create or edit a skin?
               1. How do I get the graphics to edit? -
                  a. .pak file basics part 1
                  b. extracting the skin
               2. What kind of graphic editors do I need?
               3. What can or can't I do?
             * 4. What colors can I use? -or- What is the Quake palette?
            C. How do I see the skin in Quake?
               1. What utilities do I need to make something useful from
                  this graphic?
               2. How do I see my graphics after I've made something useful
                  from them? -.pak file basics part 2
          * D. How can I use multiple player skins in one game?
          * E. How are QuakeWorld skins different?
            F. How can other people see my neato work?

          II. Level textures
            A. How do the textures work in Quake levels?
            B. How can I make my own textures to use in the new Quake map
               that I am building?
             * 1. Do they have to be a certain size?
               2. What about the palette?
               3. How do water and sky textures work?
               4."How do I make the textures line up right when they tile?
            C. How do I make the textures usable for my Quake map?
        * III.  Miscellaneous



Chapter I.   SKINS

A. "What is a skin?"

        A "skin" is a 2d graphic that is wrapped around one of the 3d models
in Quake in a process referred to as texture mapping.  All of the objects in
Quake, including all of the monsters, the player, the weapons, the ammo, and
the power-ups, are all 3d models.  Each one of these has an .mdl file.  This
file contains the data for the 3d model, all of the animation for that model,
and a 2d graphic which has the textures that are seen on this object in the
game.  With a special utility this 2d graphic, or "skin", can be extracted
from the .mdl file and modified and then put back to give this object a new
look.

B.  "How do I create or edit a skin?"

        The first step in creating or editing a skin is to extract the
original skin from the .mdl file of the object that you wish to modify.

"But I don't see any .mdl files anywhere in my Quake directory!?"

   .pak file basics part 1

        There are two .pak files in your Quake\id1\ directory.  These are
pak0.pak and pak1.pak.  These files contain all of the resources that Quake
uses.  The .pak files can be "unpacked" using various available .pak file
utilities.  When upacked, there will be some subdirectories under your
quake\id1\ directory.  One of these subdirectories will be titled "progs".
In your progs subdirectory are all of the .mdl files.
  
"Okay, but the .mdl file won't load up in my graphics editor!?"

    Extracting the skin

    Before you can edit the skin, you must extract the bitmap from the .mdl
file.  You can use a utility such as QuakeME, MeDLe, or AdQuEdit to extract
the skin.  This will result in a .pcx or .bmp format bitmap.  It doesn't
matter what format it is.  You will be able to change the format easily.

2. "What kind of graphics editor do I need?"

        If you don't have an exspensive graphics application such as Corel
Photopaint or Photoshop or any of those other incredibly exspensive behemoth
programs, don't fret.  You don't need them.  I have them and I don't use
them.  "Can I use Windows Paint?"  Nope.

        The only thing you need for all of your Quake graphics needs is
the Shareware version of Paintshop Pro.  You can find this all over the
internet for free.  It is a simple to learn graphics application that just
happens to have everything needed for Quake graphics.  Specifically,
Paintshop Pro has features for using specific color palettes, which is an
absolute necessity and the most complicated aspect of doing Quake graphics.
That is why you can't use Windows Paint.  For our discussion, we will use
Paintshop Pro.

3. "What can or can't I do with the skin?"

        We will use the player skin from the player.mdl as our example,
because it is the most commonly modified skin.  You will notice that the skin
has a front and a back view of the player, with the rest of the background a
solid color such as black.  The colored portions are the parts that get
mapped onto the model.  You might notice that the image seems distorted in
areas.  This is normal.  This flat image has to wrap around a 3d model.
There is a 3d wireframe of the model that fits over the image.  The color
pixels that lie within each triangle of the wireframe are the ones that get
mapped onto that facet of the 3d model.  Those pixels will get stretched to
fit various sizes and shapes as the model animates.  You can see this
wireframe overlay with utilities such as QuakeME or MeDLe.  Drawing outside
of this wireframe will not affect anything.  Failing to fill up the wireframe
will result in nasty "seams" where the front and back portions meet.  Drawing
horns on the head outside of the wireframe will NOT add horns to the player.
The skin must remain the same size as the original skin that you extracted,
and the colored portions must remain in their original postions to work
correctly.

4. "What colors can I use?" -or- "What is the Quake palette?"

        Quake uses a 256 color palette for all graphics.  It is NOT the
standard 8-bit 256 color palette that most graphics applications and other
games use.  Instead, it is a special palette of 256 colors from the range
of 24-bit colors.  This allows Quake graphics to have more interesting and
subtle colors that look like they could be 24-bit (16.7 million colors) but
aren't.  This also makes for some limitations.

        You MUST use the Quake palette on all of your Quake graphics. (unless
you're doing a Total Conversion and intend to change the palette and every
single graphic that is going to be use is in this new palette- it's safe to
say that you're probably not going to do that)

"How do I get the Quake palette?"  Load up an original graphic or unaltered
screenshot in Paintshop Pro and then use the feature to extract the palette.  
In PSP, simply load the Quake graphic and "save palette" under the colors 
menu.
You will end up with a .pal format file.  Name this "quake.pal".  Paintshop
Pro will allow you to load this palette onto any graphic that you please.
Paintshop Pro will convert any color to the closes color in the Quake palette.

"Okay, I did that and some of the colors do some really funky stuff."

        There is a problem with just using any color in the Quake palette.
The last two rows of the palette are the "full bright" colors.  These always
appear at full brightness in the game.  This means that even if the object
is in a dark shadow in the game and the rest of the model is completely black,
any full bright pixels will appear to glow like a light.  This can be very
bad, but it can also be used for the forces of good.  If you want to have
something light up on your model, you can use these colors just for that
effect.  For example, if you wish to have glowing eyes, you could use these
colors to make them.  If you stood in the dark, you would be completely
invisible except for your glowing eyes.

        If you are skinning a model such as the player.mdl that can change
colors in the game, this can be an additional problem.  There are two rows in
the Quake palette that correspond to the player's shirt and pants colors. If
you use any of these colors on a player skin on accident, you will have a
surprise when you see the skin in the game, and speckles of your brown hair
are turning blue to match your pants color.  Like the full bright colors,
this can be used to your advantage if you wish to make items on the player
change color.  You could, for example, use the colors from one of these rows
to make a t-shirt for your player, and then you could select the color of your
t-shirt in the game.  The second row from the top of the palette are the
yellow/brown colors that correspond to the player's shirt color.  Also, note
that the darkest of the brown colors on the sixth line from the bottom is
the same color (same RGB values) as the darkest shirt color, so you may wish
to avoid using it.  The seventh line in the palette from the top are the
orange-pink/orange-yellow colors that correspond to the player pants color.

Here is what the Quake palette looks like:
(viewed in palette order)
There are 16 rows of 16 colors each.  Each row is defined (here) by a letter.

|---------------------------------|
| a*a a a a a a a a a a a a a a a |
| b#b b b b b b b b b b b b b b b |} This is the player top (shirt) color row
| c c c c c c c c c c c c c c c c |  (yellow\brown)
| d d d d d d d d d d d d d d d d |
| e e e e e e e e e e e e e e e e |
| f f f f f f f f f f f f f f f f |
| g g g g g g g g g g g g g g g g |} This is the player bottom (pants) colors
| h h h h h h h h h h h h h h h h |  (orange/pink)
| i i i i i i i i i i i i i i i i |
| j j j j j j j j j j j j j j j j |
| k k k k k k k k k k k k k k k k#|
| l l l l l l l l l l l l l l l l |
| m m m m m m m m m m m m m m m m |
| n n n n n n n n n n n n n n n n |  These are the fullbright color
| o o o o o o o o o o o o o o o o |} the "o" row is the fire colors,
| p p p p p p p p p p p p p p p p |} the "p" row is the yellow, blue, and
|---------------------------------|  red light colors
note: a* (top left) is black RGB 0,0,0
note: k# is the same color as b# (darkest top/shirt color), so be aware of it 


C. "How do I see the skin in Quake?"

        When you are done editing the bitmap, you must put it back into the
.mdl file that it was designed for in order to see your work in the game.

1. "What utilities do I need to make something useful from this graphic?"

        You can use the same utility that you used to extract the skin to
import your new skin to the .mdl file. (ie. QuakeME, MeDLe, or AdQuEdit -
see Sec. I, part B about .pak file basics and extracting the skin)  

2. "How do I see my graphics after I've made something useful from them?"

 .pak file basics part 2 and "game" directories

        Now that you've imported your new graphics into your .mdl file, there
are two methods of using this newly modified .mdl file in the game.

        The first method involves replacing the original .mdl with your new
.mdl file in an "unpacked" copy of Quake.  If you have Quake unpacked, you can
simply copy the new .mdl file into the quake\id1\progs\ directory with the
rest of the .mdl files.  Then, if you delete or rename the .pak files in the
quake\id1\ directory, Quake will use the unpacked resources instead of the
resources that are in the .pak files when you run the game. "I did what you
said and I still see the old graphics!"  You fogot to delete or rename the
.pak files.  "Doh! Oh, sorry."

        There is another method that doesn't involve bothering with an
unpacked copy of Quake.  You can make a "game" directory under your Quake
directory.  For example, make a directory called "myskin" under your Quake
directory. ( ie. c:\quake\myskin\)  In this directory, create a "progs"
subdirectory. (ie. c:\quake\myskin\progs) This must be called "progs".
Put any modified .mdl files in the progs directory.  If you run the command
line parameter "quake -game myskin", quake will use the .mdl files in your
"game" directory instead of the ones in the .pak files.

"Okay, but I made a player skin, and I don't know how to see the player in
the game!"

        You mean you've been playing SINGLE player this whole time?  Sheesh.
Get on the net and into a deathmatch game and you'll see lots of players, all
of which will be wearing your skin.  "Okay, I got a life and started playing
deathmatch on the internet, or at least with my pals on a LAN, but I'm sick
of seeing the same skins of every player!"  Well, there are popular
modifications floating around the internet called Multiskin and Multiskin Pro
that have a player.mdl with multiple skins so different people can choose
different skins.  

D. Using Mutliple player skins in a game
        
        One of the most commonly asked questions that I get lately has been
"How can I have different skins on different players in deathmatch games?"
I'll tell you how it can be done.

First of all, let me try to explain something:  Quake was not designed for
this.  Quake was not even designed to have the skins modified in the first
place, much rather have a number of different skins on the same model.
Secondly, you have to understand that graphics are not transmitted back and
forth during multiplayer games.  Coordinates and vector information for all of
the entities (the players and monsters and power-ups, etc) are transmitted,
and each client-side computer builds the "world" based on this information,
using the resources (including graphic resources) on that individual computer.
If the graphics were transmitted, the lag would we worse than you could ever
possibly imagine with the current state of communications technology.  So, if
you alter the graphic resources on your system, (changing the skin on your
player.mdl for example) then that modification would only be apparent on your
system.  When your system renders all of the players, they would all use the
graphics that your system has on it for the player, so they would all look the
same.

"Great, so how do I get around this?"

        Well, as mentioned earlier, the first way is with a multiple-skinned
player.mdl mod such as Multiskin or Multiskin Pro.  These work by having a
player.mdl with multiple skins on it, (around 20 different skins) ie. skin #0,
skin #1, skin #2, etc.  There is also some simple Quake-c code to make the
skin number selectable by each player, and to have spawning and obitiuary
messages that are unique to each skin, ie. when the Terminator dies, he says
"I'll be back".
         You can use QuakeME or MeDLe (QuakeME has excellent multiple
skin support) to import new skins over the old ones in a Multiskin player.mdl
or to make your own multiple skinned .mdl from scratch.  If you simply copy
new skins over the old ones in the player.mdl that comes with a Multiskin mod,
and you don't change the number of skins that are there, you can copy that new
player.mdl onto all of the systems on your LAN and everybody will be able to
use the multiple skins without any further modifications.  The text messages
will all be wrong, but this can be easily fixed.
        Two Quake-c .qc files should come with the Multiskin mod that you get.
These are client.qc and weapons.qc.  You can edit them with any text editor,
and locate the Multiskin section (clearly labeled and obvious) and change the
text messges.  If you alter the # of skins, you would also have to modify the
looping code that says when a certain # skin is reached to go back to skin #0.
If you re-compile a new progs.dat with these modified .qc files, you can run
the new progs.dat on the server of your LAN games.

        With the advent of QuakeWorld, skin support has finally been built
into Quake.  By creating a "skins" directory under your quake\qw\ directory,
and placing all of the QuakeWorld skin set skins (available on many Quake
web sites such as QuakeWorld Central) into that directory, and set up your
player configuration with QSpy to use a certain skin, or type "name <skin name
without .pcx extension>" at the console in a QuakeWorld game, you will wear
that skin in your QuakeWorld game.  Everybody who is also set up for skins
(seems to be about 40% of the players) will see you wearing your skin, and you
will see them wearing theirs.  Note that everybody still has to have a copy of
that skin on their own system to see it.  You can put new skins in your
quake\qw\skins\ directory, and you will see it, but others won't unless they
get a copy of it somehow.  Future versions of QuakeWorld are supposed to
support dynamic downloading of skins.  

E. "How are QuakeWorld skins different?"
        QuakeWorld skins must be in a certain format.  The correct format is
.pcx (version 5 by the way) 320x200 pixels and in the Quake palette.  The
placement of the skin parts is exactly the same as the regular Quake format
(296x194 pixels) relative to the top left. (pixel 0,0)  The way to change
formats from regular Quake to QuakeWorld is to copy your skin and paste it
on to a 320x200 image with the Quake palette already on it, and line it up in
the top left corner.  To check, I remember that the very top left 2 pixels
on the player's head (front side) are (86,3) and (87,3).  With the extra room
on the bottom and right borders, you can put your name or clan logo on your
skin.

F. "How can everybody else see my neato work?"

        So you've made this really great skin, and you want to show it off
to people around the world?  Upload it to the internet.  For starters, try
ftp.cdrom.com.  They have a directory for incoming quake add-ons.  Also, try
sending it to the webmaster of your favorite Quake website such as sCary's
Sugar Shack or Blue's News.  sCary put up one of my skins once and it is the
only skin I've ever seen him post. Do you think yours is good enough?  It
wouldn't hurt to try.  At least you could read sCary's stories while you wait
for a response.  Oh yeah, and if people actually like it, be prepared to get
lots of email praising your masterful artwork and asking "How do I make
skins?" and "Will you make me a <insert rediculous impossible idea here>
skin?".

$        If you play QuakeWorld, then format your skin in QuakeWorld format
(see E. above) and email it to "qwc@stomped.com" to submit it for the
QuakeWorld skin sets, which are released every few months.  


Chapter II.     Level Textures


A. "How do the textures work in Quake levels?"

        Quake levels, or maps as they are most commonly knowns, are .bsp
files.  The .bsp contains the data for the map itself and the wall and ceiling
and floor textures that are used in the map.  When the .bsp file is generated,
it references a .wad file.  This .wad file has all of the textures.  

B. "How can I make my own textures to use in the new Quake map that I am
   building?"

        You can make textures using the same methods as for creating skins.
See the above sections on skin creation.

1. "Do they have to be a certain size?"

        Textures should be square, and have dimensions that are multiples of
16, ie. 16x16, 32x32, 64x64, or 128x128.  Different sizes can be used, such
24x24, or other funky sizes I have heard of, but stick to multiples of 16 to
be safe.

2. "What about the palette?"

        As is the case with creating skins, map textures must also use the
Quake palette.  See the above section (Section I, part B #4) for information
about the Quake palette.  With map textures, the player pants and shirt
colors are not a concern.  You may use these colors with no problem.  The
full bright colors still work correctly, so only use these colors if you
intend to make lights or glowing things.

3. "How do water and sky textures work?"

        Water textures are simply 64x64 pixel textures.  To make them animate
in the game, you have to name them with an "*" at the start in the .wad file
Note: it doesn't matter what you name the bitmap file itself, just what you
name the texture within the .wad file.  (ie. *water)

$       Sky textures are actually two 128x128 textures side by side, making
up a 256x128 texture.  The right half if the background, and the left half is
the foreground texture.  The foreground texture must have transparent portions
to see through to the background as it moves.  This require that the sky
texture have an altered palette.  For these textures only, the black color in
the upper left-hand corner of the palette is transparent (on the left side of
your sky texture only).  
Use the new black color for the transparent portions on the left
side foreground texture.  You must name the texture within the .wad file
starting with sky, such as sky1, or sky2, etc.  

4. "How do I make the textures line up right when they tile?"

        Ah, now that is the real trick to making good map textures.  It is
not very hard once you understand how it works.  What you must do is create
a base texture, perhaps from a scan, first.  Then, start with the right side.
Select the first two or three vertical rows of pixels on the far right.  Copy
this selection, paste it on the very left, and then mirror it.  Now, the
pixes on the right edge will match the ones on the left edge.  Now do the same
for the top and bottom rows of the texture.  Finally, blend the insides all
together, but don't alter the outer most rows of pixels much.  If this is done
well, your texture will tile seamlessly.

C. "How do I make the textures usable for my Quake map?"

        To use these new textures, you must create a .wad file.  We will use
Pcx2wad.exe as our .wad file utility example.  Assemble all of the textures
that you wish to use in an entire map in one directory.  Place pcx2wad.exe
in this directory.  Extract the palette.lmp from the .pak files that came with
Quake.  Put the palette.lmp in the directory with your textures.  Now you must
write a script file.  Make a new text file called "script.txt".  This text
file is nothing but a list of all of the .pcx format textures that you wish
to use, followed by a few spaces and the name of the texture as you wish it
to appear in the .wad file.  (ie. daysky.pcx     sky1)  At the top of the list
you must list the palette.lmp.  (ie. palette.lmp    palette)  Use pcx2wad to
compile the .wad file once you have all of this done, and then use the .wad
with your favorite Quake map editor.


Chapter III.      Miscellaneous

"Do you have any tips?"

        Yeah.  Avoid the brighter shades of colors.  Even though they aren't
the full bright colors, some still appear to be bright in the dark, and
really bright in the light.  As a general rule, make your Quake graphics
darker and they will look better in the game.

        Remember, it doesn't hurt to go outside the lines on skins.  Even if
you fill everything out to the wireframes, sometimes you will still get a
black seam where the two halves of the skin meet.  Just continue the color
outside the wireframe a pixel or two to correct the problem.

        A useful trick I have found for dealing with the Quake palette is to
make alternate versions of the palette without certain colors that you wish
to avoid.  I have palettes without the full bright colors, without the player
colors, and without both.  I also have palettes with just the player top
colors, and just the player bottom colors.  You can use these to work in
24bit-color and then load on one of these palettes without ending up with
colors that you don't want.  When you're done, just load the Quake palette
back on and you should have no problems.  You can use Paintshop Pro to edit
the Quake palette yourself, by loading the palette and then choosing "edit
palette" under the "color" menu.  The easiest way is to simply copy black
(RGB 0,0,0) over the colors that you don't want such as the fullbrights, and
then saving the new palette with a different name.

"How come so many skins don't work right, especially a lot of the ones in the
QuakeWorld skin sets?"

        Remember that for QuakeWorld format, your skins MUST be in the Quake
palette, and .pcx format, and lined up correctly, and 320x200 in size.
There are currently hundreds of skins in the QuakeWorld skin sets, and
unfortunately a very large number of them have failed in one of these
respects, rendering the skin useless.  Also, it is very common for people to
have used the Quake palette without regard to the player top/bottom colors or
especially the fullbrights (I've seen some skins that are almost entirely
fullbright colors- boy will they glow!) and so they look horrible in the game.

"How come my clam logo comes out backwards in the game?"

        Another very common mistake that many skin designers over look is the
fact that the backside of the player skin is reversed.  Notice that the gun
is in the right hand of the front view, and the left hand of the back view.
Any text or asymetrical garb must be reversed left/right for it to appear
correctly in the game.

"Who the hell are you anyway, and where do you get off telling us this stuff?"

        Hi. I'm Dan.  I started working on Quake graphics back in Febuary '96
When the Quake Deathmatch test was released.  I did some of the very first
Player skins, such as my original Boba Fett skin and my Terminator skin.
Since then, I've done dozens of skins (and got a lot better at it, boy I
think my older skins suck now) and become well known for it.  Several internet
sites have my skins on them, and my skins have been featured in both
Multiskin, and Multiskin Pro.  I currently have over 30 skins in the
QuakeWorld skin sets.  I have done clan skins for number of clans, and
have even been paid to do so. (I charge $50 US for a custom clan skin)  I
recently learned that my old Star Wars player skins are selling in Germany
for $15.  (too bad I don't see any of that)  I also was working with the
Quake Command guys (you know, the incredible team who brought us such neat
mods as the aircraft and throwing axe) until they were both hired at Valve
Software and no longer could pursue any further Quake Command projects.  (too
bad this company doesn't need a graphics guy)  I am not a professional
graphic artist.  I am a college student (biology major), and just do this
stuff for a hobby and a little money on the side.  I get a lot of email about
my skins, and I wrote this FAQ because I got really tired of answering
"How do you make Quake graphics?".   Currently, I'm working with QuakeLab 
Productions on our project "the Apocalypse".

"Are you gonna keep this FAQ up to date?"

        Yeah.  I plan to add to it as time passes.  I want to familiarize
myself with the various editing utilities that are available, and possibly
present those in this FAQ. (hasn't happened yet, and frankly I don't think
it really matters anymore.  One utility or other, it doesn't really matter.
I think I'd rather try to be a bit utility unspecific)
        Yeah, I just did revise the FAQ.  Sorry it took 5 months.  I've been
busy making skins.

"Uh, I read this whole thing, and I still can't get it right.  Can I email
you with questions?"

        Yeah sure.  danbickell@loop.com.  At least I won't have to explain
everything from the beginning.  It would actually be kind of nice.

Credits:
        id software, inc.   www.idsoftware.com

        Paintshop Pro Shareware v.4.1  JASC Inc.

        QuakeME v.2.3   Rene Post      renep@xs4all.nl

        MeDLe v.1.7     Brian Martin   brian@phyast.pitt.edu

        Pcx2wad.exe     ac447@rgfn.epcc.edu

        AdQuEdit.exe    Cable Hicks    hicks@goldrush.com
       





