VirtualFileSystem
Development < VirtualFileSystem
VFS
The Virtual File System is an unified layer to access (read-only) the different archives used at runtime. So you can access map, game & config files via the same interface.
Archive Hierarchy
When loading a new archive (sdz, sd7, sdd) it overrides existing file references in the VFS, so the order archives are loaded is very important. So here it is (in reverse):
- raw file system (only for unsynced data)
- map
- map archive itself
- map dependencies
- maphelper.sdz (engine supplied)
- game
- game archive itself
- game dependencies
- springcontent.sdz (engine supplied)
- bitmaps.sdz (engine supplied)
(top most are checked first when accessing a file -> map overrides game files!)
Extra Informations
Spring's VFS is lowercase only. Also it is extremely recommended to use linux style path separators, e.g. "foo/bar.txt" and not "foo\bar.txt".
Engine Read Files
The engine access a few files directly, most of them are lua files which access other files themselves. Here the list of files that must exist in the VFS (some of them don't have to be in the game/map archive cause there are fallback solutions in springcontent.sdz & maphelper.sdz):
- ./
- anims/
- gamedata/
- luagaia/
- main.lua
- draw.lua
- luarules/
- main.lua
- draw.lua
- luaui/
- main.lua
- shaders/
- ?
- luaai.lua
- mapinfo.lua
- mapoptions.lua
- modinfo.lua
- modoptions.lua
- validmaps.lua