Resources
Gothic VDFS
Gothic uses his own virtual file system also known as VDFS.
The VDFS loads addons with extensions like .vdf
and .mod
on game startup, mainly from Data/
directory.
Multiplayer VFS
Gothic 2 Online provides extra layer of virtual file system, on top of existing Gothic VDFS.
The additional layer separates addons between servers, thanks to it addons will not override each other.
Every addon can be automatically downloaded and loaded, thanks to built in downloader.
Downloaded addons are placed into Multiplayer/Store/IP_Port
or Multiplayer/Store/Group
directory, in case if server owner wants to share files between servers.
Important note! Addons loaded by multiplayer virtual file system has priority over standard ones. This means that files from standard addons are overwritten by files from addons loaded by multiplayer.
Currently supported extensions: .vdf
, .mod
, .zip
.
Format characteristics
VDF
It's worth to mention that .vdf
/.mod
files have flat structure, meaning that the game doesn't see their subdirectories, instead the file can be loaded from any directory. This has some problems though, for example, you can't more than one file with the exact same name.
ZIP
Important note! Files & folders located in the .zip resource must be written in CAPITAL CASE! Otherwise they won't be found by the game.
Compared to VDF, .zip
files have real nested structure. In short, this means that the files needs to be located in the proper folder. This lifts up the limitation of not being able to have more than one file with the EXACT NAME.
This format also supports password
property, you can encrypt the archive using ZipCrypto
algorithm, the only limitation is that your password can't contain $
sign.
Unfortunately in some cases game might not be able to locate the specific file, this is because the path to specific resources isn't always set. Here are common scenarios when it might be better to use .vdf
over .zip
:
- Patching existing files
- Using files that gets loaded from flat path (cases where the game doesn't update the virtual path)