- Parses the map file, shaders, mapscript, etc. and discovers files are needed to play the map. Editorimages, misc_models etc. are left out of the archive (unless wanted)
- Everything is performed in memory without creating any intermediate files, or modifying the originals
- Support for renaming the map to create release versions such as
b1
, with automatic renaming of bsp, mapscript, levelshots, arena and more, while the original files are left untouched - Extensive logging to trace why each file was included in the pk3, including the exact line/byte offset where in the file the shader/file was referenced.
- Support for file discovery from pk3's and pk3dirs, such as
sd-mapobjects.pk3
or a texture/model pack extracted into a separate pk3dir to keep etmain clean - Warnings about possible pitfalls such as lightmaps from another compile, or image/audio formats not supported by ET 2.60b
Pack3r <map> [options]
<map>
Path to the .map file [required]
Destination of the packing, defaults to etmain
. Possible paths are filenames with pk3
or zip
extension, or directories.
File name in case of directory is mapname.pk3
, or .zip
if using --source
. This setting is ignored if using --dryrun
.
Example: -o C:/ET/mapreleases
Run the packing operation without actually creating an archive. Useful if you just want to discover what files would be packed or are missing, or want to see the size of the pk3.
Name of the map after packing. Can be used to create different versions without changing project names, e.g. mapname_b1
.
Among things renamed are BSP, mapscript, lightmap folder, levelshots files and shaders.
The threshold for log messages to be printed. Default is Info
, which may print too much or too little information depending
on your needs. Available options (from least to most verbose): None
, Fatal
, Error
, Warn
, Info
, Debug
, Trace
Creates the archive even if some files are missing. By default, missing files cause an error and don't result in a created file. Use this setting with care if you know some files are fine to be missing.
Pack a zip archive of source files instead of a map release, includes files such as .map, editorimages, misc_models, etc.
Writes the output file even if it already exists. By default Pack3r doesn't overwrite existing pk3/zip files.
Includes pk3s from mod folders when scanning for assets. Useful for things like tracemaps and speakerscripts that are
created in fs_game directory. Example: --mods etjump_dev
Prints detailed information about which shaders are required by the map, and where they are referenced (at least --verbosity Debug
needed)
Prints detailed information about which files are required by the map, and where they are referenced (at least --verbosity Info
needed)
Scan pk3 files and pk3dir-directories in etmain when indexing files (off by default for performance reasons).
Don't scan these pk3s/directories at all when indexing files. Example: --noscan skies_MASTER.pk3
Scan these pk3s/directories, but don't pack their contents. Example: --nopack pak0.pk3 pak0.pk3dir
Prints help about usage and possible options, and their default values
Prints the build version, include this in bug reports
- Usable only through CLI
- Only brush primitives map format is supported (NetRadiant default)
- Shaders/textures are coarsely parsed from
ase
,md3
,mdc
,skin
files. Other model formats such asobj
are not yet supported (open an issue). Models created by esoteric tools might not be parsed correctly even though radiant supports them terrain
shaders (1to2 etc) are not supported (open an issue)- For performance reasons only a subset of file extensions are packed:
tga
jpg
md3
mdc
mdm
ase
obj
fbx
shader
wav
roq
skin
pak0.pk3
(and other--nopack
pk3s/directories), if a file/shader is found there, it won't be included in the release- Files inside the relative
etmain
of your map file (directory contaning/maps
) etmain
, if the map is for example insome.pk3dir/maps/mymap.map
pk3dir
-folders inetmain
, in reverse alphabetical order BSP, lightmaps, mapscript, speakerscript, soundscript, etc. are always assumed to be in the same relative etmain as your map file.
Map is etmain/void.pk3dir/maps/void_b1.map
, the priority is:
pak0.pk3
-> etmain/void.pk3dir/
-> etmain/
-> any pk3 files in etmain
Mapscript must be in etmain/void.pk3dir/maps/
in this case and not directly in etmain
.\Pack3r 'C:\ET\etmain\maps\mymap.map'
.\Pack3r 'C:\ET\etmain\maps\mymap.map' -r mymap_b1
.\Pack3r 'C:\ET\etmain\maps\mymap.map' --rename mymap_b1
.\Pack3r 'C:\ET\etmain\maps\mymap.map' -d
.\Pack3r 'C:\ET\etmain\maps\mymap.map' --dryrun
.\Pack3r 'C:\ET\etmain\maps\mymap.map' -d -rd -v info
.\Pack3r 'C:\ET\etmain\maps\mymap.map' --dryrun --referencedebug --verbosity info
.\Pack3r 'C:\ET\etmain\maps\mymap.map' -s -l -o 'C:\mymap_source.zip'
.\Pack3r 'C:\ET\etmain\maps\mymap.map' --source --loose --output 'C:\mymap_source.zip'
.\Pack3r 'C:\ET\etmain\maps\mymap.map' --pk3 --noscan skies_MASTER.pk3