Here all the things i learned in my mapping works and reading editing topics.
I divided it in two part.
The first part explain structure of pk3,
the second part show some hints.
The guide name is - How to make a map pk3, Giuseppe way -
this means there is some my personal idea.
First part
Pk3 is a compressed archive in ZIP format.
It contains all the file necessary to play the map,
and the files are organizzed in folders.
The most important file is the BSP,
I set the name of this file xxxxx only for the pourpose of this guide
(the extension is bsp of course).
pk3 folders
- maps
maps/xxxxx
scripts
textures
models
sound
sound/cdtracks
gfx
env
docs
Only some fast info here.
The name of red folder is fixed as request from the game and isnt possible use custom one.
Textures folder is the default one used from net radiant, so is recommendated use that.
Dont put in model folder the 3d data of custom model (md3, pbj, ase,...),
is already in bsp, just put textures of models if u have there.
Sound folder is used to store custom audio files of map (wav or ogg).
Env usually is used for custom skybox.
Docs folder can be used for documentation files, like readme.txt and license.txt.
maps folder contains
- xxxxx.bsp : this is the map compiled / must be in pk3
xxxxx.mapinfo : simple text file format / required
xxxxx.jpg : a screenshot of map / required
xxxxx.waypoints : way points for bots / recommendated
xxxxx.waypoints.cache : more way points make faster load bots / recommendated
xxxxx.ent : here only substitutive entities for the map
xxxxx.rtligths : data for real time lights
/xxxxx : is subfolder for external lightmap / required
All the elements must have the same name of bsp! (xxxxx)
bsp must be in pk3, of course in a map pk3 we have to put the map.
Mapinfo and the jpg are required to have the map properly in create menu.
Waypoints and cache improve the use of bots and are recommendated.
Ent file is used for ex to change the entities of a map from others games like quake3.
Rtligths if the mapper want add some real time ligths, but can reduce fps performance.
The xxxxx sub folder is for maps that use external ligthmap. Is required, but can increase a lot pk3 size.
Others folders:
if the map needs custom textures, let's add these textures in pk3
with correct relative path of course in textures folder.
Put texture in textures/xxxxx/ is a good idea.
If custom shader are used in map we must put shader file/files in scripts folder, skybox shader also here.
For team gametype we can add the file xxxxx_radar.tga, this file must be in gfx folder,
and must have same name of bsp.
If we want use a custom music track for the map, this file (wav or ogg) must be
in sound/cdtracks folder, (and add in mapinfo cd loop <musictrack>).
At the end is good idea add a text file (classic readme.txt) to describe our work
and define the license of the map, and add also the text of license.
pk3 name, map name:
really no rules to chose the name of pk3, but if we use xxxxx its easy know
wich map the pk3 contains.
Is recommandated use a suffix for the map name
with a progressive number to have an ordered list of all versions of the map, and
recognize easily the last realase of the map in the list.
Suffix examples:
_b## (b means beta)
_v##r## (v means version, r means realase)
_alliwantwrite## (alliwantwrite means custom suffix but no so long

now xxxxx = mapname+suffix
second part
shader file:
a good way to eliminate (maybe) pk3 conflicts is imo
use only a shader file named xxxxx.shader and all the definition of custom shaders inside like this:
textures/xxxxx/shadername {...}
In this way the new versions of shaders will not work on previous version of map.
xxxxx.jpg
the max video resolution of nexuiz is 2048x1536 px
and xxxxx.jpg is shown max around 25% of video resolution.
So is useless put a xxxxx.jpg over 512x384 px
about textures
only if really we need alpha channel we must use tga or png format,
otherwise jpg is very good at 90-95% of quality;
against pk3 conflict is the use of textures/xxxxx/ subfolder.
About license
If we use a gpl license is good idea to realase also the source files of map.
I mean the MAP file and others file used to obtain the map like for ex 3d model files (ase, md3, obj).
I think is good idea put this files in an additional archive.
Almost all the gpl mapper include this files directly in pk3, but if the pk3 pourpose is
play the map, i think better realase those files separately.
The name of this archive can be xxxxx_source and the format 7z is great.
A nice zip and 7z archiver
I recommend strongly use 7-zip software to make our pk3 in zip and others archives in 7z.
PS: my pk3s are outdated, but my next will follow the guide

what u think about my guide?
tecnical and language aspect ...