VPKEdit
VPKEdit copied to clipboard
Global case renaming (patch)
Since last year's Source Engine updates (20th HL2 Anniversary / 64 bit-support, etc.), maps on Linux require custom content to match case sensitivity from references in many cases. For reference, see https://github.com/ValveSoftware/Source-1-Games/issues/6868.
A practical example of this issue I've noticed from my Linux server is you can now pass through some static props. Opening the map with some archive tool (like this one or GCFScape) shows the related collision file (.phy) starts with an upper character, while the .mdl is fully lower case, hence leading to the problem:
Would it be feasible to implement a button that turns all assets into lowercase? I'm not sure if the casing would still have to match entity field references, such as the "model" from props, but the proposed solution would likely assist fixing the issue greatly faster than manually when there may be multiple instances of the issue within a map.
Thanks.
Good news: any paths in-engine like in KeyValues fields are case-insensitive. The case sensitivity issue in the paklump is because the engine now expects packed filenames to be lowercase, just like how they were always expected to be lowercase in VPKs.
More good news: the backend library VPKEdit uses automatically converts input filepaths to lowercase when loading BSP paklumps, so all I need to do is add a button "Mark modified" which will let users save pack files without making any changes to their contents.
Implemented the feature in the next release. All you need to do to fix a BSP with varying case files is:
- Open BSP
- Press
Ctrl+Mor clickEdit > Mark Modified - Press
Ctrl+Sor clickFile > Save - Close BSP