Skip to content

Path and File Structure

Aciz edited this page May 1, 2022 · 6 revisions

ET: Legacy no longer requires the genuine mp_bin.pk3 in the etmain folder.

Introduction

Unlike vanilla ET, on Windows ET: Legacy split files between install files and game data files. This was already the case for the Linux version of ET but this wasn't done for the Windows version.

Thus, game data are now stored:

  • in %%userprofile%%\Documents\ETLegacy (Windows)
  • in $HOME/.etlegacy (Linux and macOS)

Note: do not use the same fs_homepath for both vanilla ET and ET: Legacy.

This split structure on Windows ensure:

  • an easier way to remove unwanted pk3 files that have been downloaded on random servers
  • a more robust way to run listen servers
  • administrator privileges are no longer required to launch the game, as the Program Files directory doesn't need to be written in.

Basepath - fs_basepath

Defaults on:

  • Windows 32-bit: C:\Program Files\Enemy Territory - Legacy
  • Windows 64-bit: C:\Program Files (x86)\Enemy Territory - Legacy
  • Linux: @$HOME/etlegacy (official binaries install path, distribution packages should use the default /usr/lib/etlegacy path)
  • macOS: /Applications/ET Legacy/ containing ETL.app

Important: The install path of mods is fs_basepath. If you want to install third party mods on your server, put the installation files of the mod into fs_basepath similarly to the path structure of the Legacy mod path.

fs_basepath content

Windows:

etmain/
├── campaigncycle.cfg
├── etl_server.cfg (server/engine cfg file)
├── etl_server_comp.cfg (competitive server/engine cfg file)
├── legacy.cfg (mod config file)
├── lmscycle.cfg
├── mapvotecycle.cfg
├── mapvoteplayerscount.cfg
├── objectivecycle.cfg
├── pak0.pk3 (vanilla ET assets)
├── pak1.pk3 (vanilla ET assets)
└── pak2.pk3 (vanilla ET assets)
legacy/
├── lualibs/ (optional - WolfAdmin)
│   ├── legacydb.lua
│   └── toml.lua
├── luascripts/ (optional - WolfAdmin)
│   └── wolfadmin/
├── omni-bot/ (optional - Omni-bot)
│   ├── et/ 
│   ├── global_scripts/
│   └── omnibot_et.dll/.so/.x86_64.so (Omni-bot lib)
├── banners.toml (optional - WolfAdmin)
├── description.txt
├── GeoIP.dat (optional - GeoIP)
├── greetings.toml (optional - WolfAdmin)
├── legacy_<version>.pk3 (Legacy mod pack)
├── qagame_mp_i386.dll (Legacy game binary)
├── rules.tml (optional - WolfAdmin)
└── wolfadmin.toml (optional - WolfAdmin)
<INSTALLED_MODS>/
└── <INSTALLED_MODS_FILES>
COPYING.txt
etl.exe
etlded.exe
INSTALL.txt
uninstall.exe

Linux:

applications/
└── com.etlegacy.ETLegacy.desktop
doc/
└── etlegacy/
    └── INSTALL.txt
etmain/
├── video/
│   └── etintro.roq
├── campaigncycle.cfg
├── etl_server.cfg (server/engine cfg file)
├── etl_server_comp.cfg (competitive server/engine cfg file)
├── legacy.cfg (mod config file)
├── lmscycle.cfg
├── mapvotecycle.cfg
├── mapvoteplayerscount.cfg
├── objectivecycle.cfg
├── pak0.pk3 (vanilla ET assets)
├── pak1.pk3 (vanilla ET assets)
└── pak2.pk3 (vanilla ET assets)
icons/
└── hicolor/
    └── scalable/
        └── apps/
            └── etl.svg
legacy/
├── lualibs/
│   ├── legacydb.lua
│   └── toml.lua
├── luascripts/
│   └── wolfadmin/
├── omni-bot/
│   ├── et/ 
│   ├── global_scripts/
│   └── omnibot_et.dll/.so/.x86_64.so (Omni-bot lib)
├── banners.toml
├── description.txt
├── GeoIP.dat
├── greetings.toml
├── legacy_<version>.pk3 (Legacy mod pack)
├── qagame.mp.i386/x86_64.so (Legacy game binary)
├── rules.toml
└── wolfadmin.toml
licenses/
└── etlegacy/
    └── COPYING.txt
man/
└── man6/
    ├── etl.6
    └── etlded.6
metainfo/
└── com.etlegacy.ETLegacy.metainfo.xml
mime/
└── packages/
    └── etlegacy.xml
<INSTALLED_MODS>/
└── <INSTALLED_MODS_FILES>
etl
etlded
etl_bot.sh
etlded_bot.sh
librenderer_opengl1_i386/x86_64.so

macOS:

etmain/
├── video/
│   └── etintro.roq (optional)
├── pak0.pk3 (vanilla ET assets)
├── pak1.pk3 (vanilla ET assets)
└── pak2.pk3 (vanilla ET assets)
legacy/
├── legacy_<version>.pk3
└── qagame_mac
<INSTALLED_MODS>
└── <INSTALLED_MODS_FILES>
ETL.app (client)
etlded (dedicated server)

Homepath - fs_homepath

Contains all downloaded pk3, log, config and extracted binary files.

Defaults on:

  • %userprofile%\Documents\ETLegacy\ (Windows)
  • $HOME/.etlegacy (Linux)
  • ~/Library/Application Support/etlegacy (macOS)

fs_homepath content

etmain/
├── dlcache/
│   └── <maps/other assets downloaded from servers>
├── profiles/ (profile path used for etmain)
└── etkey (file containing your unique GUID)
legacy/
├── demos/
├── dlcache/
│   └── <legacy mod packs/other assets downloaded from servers>
├── profiles/ (profile path used for legacy mod)
├── screenshots/
├── stats/
├── cgame<platform extension> (Legacy client game module, automatically extracted from pk3)
├── crashlog.txt
├── <config>.log
└── ui<platform extension> (Legacy ui module, automatically extracted from pk3)
<DOWNLOADED_MOD_PATHS>
└── <DOWNLOADED_MOD_FILES>
cacert.perm
etl.db
omnibot_<map>.log (Omni-bot map specific log)

Custom maps and pk3s on servers

  • Custom maps, rotation config and campaign pk3 files should always be copied into the etmain folder of fs_homepath to ensure the files can be read by all mods. If you put maps into mod folders, users would have to download maps for each mod.
  • Copy all other custom pk3s (sound, skin or whatever packs) into the mod folders. Many pk3s are mod related so better not to put these into etmain.