Thought I'd post this here while it's still in my clip board. This is old but guess it's as relevant now as it was in the past.
Loading of paks - configs and autoexec
(Co-Author of Nemesis www.q3nemesis.com/
Q3 Mod )
Quake 3 PK3 Loading
A description of how pk3 files are loaded by quake 3 and in what order - taken from my posts on various forums
First off a pk3 file is just a zip file with a different extension. A program like winrar is great for examining the contents without actually unzipping it first.
pak0.pk3, pak1.pk3, pakX.pk3 (where X is a number) are standard quake pk3 files that contain all the game data such as models, maps and sounds.
When quake starts up it looks in baseq3 for any pk3 files. The ones it finds will be loaded in alphabetical order, so if two pk3 files contain the same named file the one which is loaded will come from the pk3 file with the latest alphabetical name. This is why id software released extra pakX.pk3 files with newer point releases - they just contain updates/additions to pak0.pk3 so as not to redistribute the whole 450mb!
The most common thing for mod developers to rewrite is the virtual machine files for game, cgame and ui. These 3 files (cgame.qvm, ui.qvm, game.qvm) are stored in the vm within a pk3 file. A mod like Nemesis needs to assure its pk3 file is loaded last which is why it is prefixed with zzz-, just like osp pk3 files.
Extra pk3 files may get loaded (servers running 1.11 don't force this) when you join a server which is running something other than standard quake 3. Mod folders are stored in a directory alongside baseq3 (i.e damned_arena) and when you join a server running a particular mod, it's pk3 files are also loaded.
For example, if I had zzz-nemesis-core.pk3 in a freezeplus mod directory quake 3 would start and act as normal. When I joined a server running freezeplus, Nemesis would get loaded from the pk3 file and I would be able to use it's commands.
Maybe this explanation will shed some light for some people. I hope you realise you don't often need to delete every pk3 file to get a particular mod to work, just rename them correctly or remove only the ones with similar files (e.g. a map pk3 will hardly ever interfer with a cgame modification like nemesis).
Quake 3 Configuration File Structure
A description of how quake 3 uses your file structure and how best to deal with configuration changes - taken from my posts on various forums.
Regardless of the directory you installed quake3 in, it follows a set subdirectory structure.
* Quake3 Install Directory
o Mod Directory 1
o Mod Directory 2
o Mod Directory 3
baseq3 directory is where most stuff exists. Within it pak0.pk3 and pak1.pk3 (which are actually just zip files with a pk3 extension instead of zip) contain all the standard quake data from maps to gun shaders.
Every mod you play will create its own directory at the same level as baseq3, so most of you will have other folders specific to the mods you play.
All configuration parameters are stored in a file called q3config.cfg and you will find this file exists in baseq3 and any mod directory. If you remove this file from a mod directory then next time you play that mod quake3 will copy the q3config.cfg file from baseq3 into the mod directory. If you remove the q3config.cfg file from the baseq3 directory then you'll lose all your settings and have to start again! Quake3 won't break, it'll just create a new q3config.cfg file, but it will be a default one without your tweaks in it.
When you join a server quake3 reads the q3config.cfg file from the relevent mod directory. This means you can have a different config for each mod if you like, but more often than not it means you have inconsistent settings between each mod because you'll altered a particular q3config.cfg file. Sometimes quake3 even goes a little haywire and trashes your q3config.cfg file, leaving you with the default one again!
When quake3 starts up it searches for q3config.cfg and autoexec.cfg in baseq3. If it finds autoexec.cfg it will use the settings in that file in preference to those in q3config.cfg. As quake3 will never touch autoexec.cfg (apart from to load it) that is where you should put all customisations. It means you'll have to fiddle around with notepad to edit it as the quake3 menus interact with q3config.cfg.
If you take a look in q3config.cfg you'll find huge amounts of stuff that you couldn't care less about so don't just copy and paste it all into autoexec.cfg. Once you've made your own autoexec.cfg remember to delete the q3config.cfg files out of each of the mod directories so they can be recreated next time you play than mod (and include your new changes!).