You may have noticed that since a few weeks your main menu looks wonderfully clean. This is due to the container system which was initially introduced in ET: Legacy 2.77 and fixed in the 'Recapture the City!' 2.77.1 hotfix. In short, this system isolates all paks downloaded from an ET server and ensures your client looks clean and most importantly, remains usable on launch.
This is a major change addressing a long-standing issue, which we probably all are familiar with. After playing on a server the main menu has been tampered with in one form or another. This raises several issues for regular players. For example could it be that the main menu was translated by the previous server (quote6.png below), it also raises security concerns (quote7.png below) as those modifications to the game client happen without permission, but in general, it's probably simple annoyance (quote3.png below) by the constant alterations.
Unfortunately, @stealth6 (quote2.png below) put it quite well, as the ET community lost the battle. However, Radegast, our founder, indicated plans to fix this issue (quote4.png below) once and for all and we finally did!
8 years later, but we got you Radegast! Your plans and vision for this project are in good hands. At least we hope so!
"Players. Admins. PK3s. Developers. Long ago, the four parties lived together in harmony. Then, everything changed when the Admins discovered the tilde
~. Only Radegast, founder of ET: Legacy, could stop them, but when the Players needed him most, he rightfully took a well-deserved retirement. Eight years passed and the current ET: Legacy dev team developed a new way to protect Players, the
dlcache container system. And although our motives were good, we botched the early tilde block attempt in 2.76. But, We believe the
dlcache container system can save the Players."
When connecting to a server, the pk3 get downloaded to your
fs_homepath. Historically, all files from all the servers you connect to, get put either into etmain or the mod directory (e.g. legacy, silent,...), which are the same directories the game pulls the content from when launching the game. This enabled server admins to force players to download pk3 containing the aforementioned custom menu files, which the game then uses to initialise the main menu on launch. Because all the files from all the servers got put into the same respective directory, a war broke out between servers for who can put more
Z or tilde
~ characters in front of their custom menu pk3. This was done because the game goes through the respective directory on launch alphabetically and overwrites previously loaded files with whatever comes after it. In other words, the game loads
pak0.pk3 and finds a menu file. It then loads
z_custom_menu.pk3 and finds a menu file which it uses to overwrite the one from
zz_custom_menu.pk3 comes along and even after all the Zs the tilde (
~~custom_menu.pk3) pk3 come along overwriting everything ones again. Hence, in 2.76 we tried to implement an early measure against all of that, by blocking the pk3 with the tilde
~ character from being downloaded. This, however, prompted righful backlash by our community as it also prevented you from joining those servers even if you understood and accepted the risk. Another solution was required and here we are.
Now, pk3 get downloaded into a new sub-directory called
dlcache rather than the base directories (e.g. etmain, legacy,...). This means that for example maps get downloaded into
fs_homepath/etmain/dlcache instead of
fs_homepath/etmain and server pk3 get downloaded into
fs_homepath/legacy/dlcache instead of
fs_homepath/legacy. These new sub-directories do not get initialised on game launch, which means that custom paks do not get loaded. This is different to the initial plan of the per-server container system described in the initial proposal here as that would have required players to always download all pk3 when connecting to a new server, because even maps would have been stored in each per-server container separately. That would have presented an immense inefficiency for your required disk space, which is why we are even more happy with the current implementation.
Things to keep in mind
Exception to this are third-party mods (e.g. silent, nq,...) as changing the folder structure is very likely going to break functionality of those mods. Therefore, it is recommended to keep legacy as the default mod on game launch (
+set fs_game legacy).
The good news is that you can still manually install custom menu files for quick access to your favourite server. Simply check the pk3 from your favourite server or ask your server admins which of them contains the custom menu and move that to
fs_homepath/etmain. Ideally, to minimise any risk, that pk3 should only include the necessary menu files, so please double check with your server admins if you have any concerns.
When trying to host a game locally or when simply using
/devmap the contents of
dlcache are not considered. You will have to manually pull those maps that you wish to test/play locally from
fs_homepath/etmain/dlcache and put them into
For further questions as well as if you, dear player, server admin, interested follower or else, are interested in contributing to this project, we are always looking for helping hands to speed things up, so please don't hesitate to reach out to us on Discord.
written by Kemon 6 months ago