-
Notifications
You must be signed in to change notification settings - Fork 7
Specification of the IEMOD file format
ALIENQuake edited this page Jun 22, 2021
·
4 revisions
Tools for creation IEMOD packages:
- Infinity Auto Packager - automatically generate mod packages when you publish a release
- For mods that are not hosted at GitHub, local version of Infinity Auto Packager can be requested.
Version 0.11.0
The IEMOD format is intended to be a platform-independent distribution format for modifications for games using the Infinity Engine.
An IEMOD file:
- must be ZIP archive
- must have .iemod file extension
- must use compression with the DEFLATE algorithm or no compression
- must have all files and directory names encoded in UTF-8, without BOM
- must not be encrypted
- must not have self-extraction
- must not constitute or contain patched data
- must not span across multiple files
- must not be segmented
- should exclude files and directories listed in the table 'should-exclude'
The folders and files inside IEMOD file:
- must not include names containing characters listed in 'forbidden-characters' table
- must not be listed in case-insensitive 'forbidden-files-directories-all-levels' table
- must not contain names starting with prefixes listed in case-insensitive 'forbidden-files-directories-all-levels-starting-with' table
- must not, in its top-level, contain directories listed in case-insensitive 'forbidden-toplevel-directories' table
- must not, in its top-level, contain files listed in the case-insensitive 'forbidden-toplevel-files' table
Of the files contained within the archive, if WeiDU TP2 file exist, it must be located within a directory that is itself located in the toplevel and it's name must exactly match the name of the directory.
<
>
:
"
/
\
|
?
*
\0 # escaped null character
Example:
".:</*Good?|Evil?*\>:." # literal folder name
".:</*Good?|Evil?*\>:.".tp2 # literal file name
AUX | COM0 | COM1 | COM2 | COM3 | COM4 | COM5 |
COM6 | COM7 | COM8 | COM9 | CON | CONIN$ | CONOUT$ |
LPT0 | LPT1 | LPT2 | LPT3 | LPT4 | LPT5 | LPT6 |
LPT7 | LPT8 | LPT9 | NUL | PRN |
Example:
CON # mod data directory
CON\CON.tp2 # WeiDU tp2 file
CON # weidu executable
AUX. | COM0. | COM1. | COM2. | COM3. | COM4. | COM5. |
COM6. | COM7. | COM8. | COM9. | CON. | CONIN$. | CONOUT$. |
LPT0. | LPT1 | LPT2 | LPT3 | LPT4. | LPT5. | LPT6. |
LPT7. | LPT8. | LPT9. | NUL. | PRN. |
Example:
AUX.test # folder name
AUX.test\AUX.test.tp2 # file name
CD0
CD1
CD2
CD3
CD4
CD5
CD6
cache
characters
data
debugs
dlc
lang
movies
mplayer
mpsave
music
override
portraits
save
script compiler
scripts
sounds
temp
tempsave
workshop
baldur.ini
MConvert.exe
BGConfig.exe
bgmain.exe
bgmain2.exe
charview.exe
chitin.key
decrypt.dll
dialog.tlk
dialogf.tlk
engine.lua
icewind.exe
icewind.ini
Icewind2.ini
icewind2.exe
idmain.exe
iwd2.exe
SiegeOfDragonspear.exe
torment.exe
torment.ini
weidu.log
weidu.conf
__macosx/
$RECYCLE.BIN/
backup/
# all files starting with dot
.*
*.bak
*.iemod
*.temp
*.tmp
Thumbs.db