github craftablescience/VPKEdit v4.0.0

latest releases: v4.2.1, v4.2.0, v4.1.3...
4 months ago

4.0 Highlights

  • Added support for editing BSP paklumps
  • Added a command-line VPK packer
  • Tons of bug fixes and improvements to the UI

General Changes

  • Add support for editing BSP pakfiles and ZIP (uncompressed, LZMA) files
  • When failing to load archive VPKs, try to load the directory vpk instead
  • When creating a VPK from a directory, don't crash processing files with non-ASCII names
  • Don't keep the contents of unbaked entries in memory if added though a file path
    • If the file is moved/deleted before the VPK is baked, it will be empty in the VPK
    • This saves a massive amount of RAM when creating VPKs from folders
  • Fix trying to write to a wonky path when saving an archive to the same folder as the VPK
  • Fix two bugs with using relative paths in different places
  • Fix the archive paths that will be copied when re-saving an existing VPK to a different folder
  • Add a code of conduct and issue templates to the GitHub page
  • Add badges to README.md for license, build status, and associated Discord server
  • Add better screenshots to the readme, and added a custom social preview image

GUI Changes

  • Add icons to entries in the entry tree
    • Add option to disable icons in the entry tree
  • Add "File > Open Recent" menu to open recent files
  • Add a progress bar when saving VPK
  • Add a progress bar when creating a VPK from a folder
  • Add new VPK creation properties to VPK creation dialog
    • Save to single file - when creating a VPK from a folder, save all the files to the directory VPK
    • Preferred chunk size - size of archive VPKs created when adding files to the VPK
    • Generate per-file MD5 entries - generate MD5 hash information for each file when saving VPKs
  • Add new pack file properties under "Edit > Properties"
    • Currently this is just the VPK version property, but it provides a framework for more properties in the future
  • Add new entry properties to Entry Properties dialog
    • Use Compression - In BSP/ZIP files, entries can optionally use LZMA compression
  • Make Delete (and Shift+Delete) remove entries from entry tree or folder preview
  • Add a list of keyboard controls
  • Fix some bugs when opening or closing a pack file and selecting "cancel" or "discard", where the internal state would no longer match the GUI
  • Fix menu items staying disabled after failing to load a pack file
  • Fix crash after viewing more than 512 items without closing the VPK
  • Fix crash when Steam is installed but no Source games are found
    • Also, don't show the "Open In" menu if no Source games are found
  • Fix Source 2 games not appearing in "Open In" menu
  • Center text in info previews
  • Bundle credits text into the application, so Help > About dialog still works if CREDITS.md isn't present
  • Update the status text at the bottom of the window more consistently
  • When creating a VPK from a folder, append "_dir" to the default name if it is a chunked VPK
  • Don't append _dir to a VPK filestem if the folder it is being created from ends in _dir
  • Fix files not being easily overwritable
  • Fix entry options dialog not using the correct maximum preload bytes value
  • Fix entry options dialog using inverted wording interacting with files versus folders
  • Fix filenames not always being lowercased in the GUI compared to the VPK in memory
  • Fix entry options inverting saving to dir vs archive
  • Fix leaking memory when dialogs are closed successfully
  • Use release name instead of release tag in the update checker dialog
  • Always check the latest GitHub release in the update checker dialog
  • Properly display beta versions (versions with a tweak number) as beta
  • Properly display RC versions (versions where the tweak number matches this regex: ^99+$)

CLI Changes

  • Create CLI executable!
    • -h. --help, or no arguments - print usage and program information
  • Convert directory to VPK (pack)
    • -v, --version - specify version
    • -c, --chunksize - specify chunk size
    • -p, --preload - accepts a list of file extensions and/or filenames to preload in the directory VPK
    • -s, --single-file - pack to single file
    • -o, --output - specify output VPK path
    • --gen-md5-entries - enables generating per-file MD5 hashes to store in the directory VPK
    • --allow-caps - stops automatically lowercasing filenames (filenames are now lowercased when packing by default)
      • Only pass this if you know what you're doing! Files with uppercase letters will not be loaded by Source

Installer Changes

  • Add the CLI program to the installer
  • BSP extension is now registered to VPKEdit using the installer
  • When using the Linux installer, symlinks for the GUI and CLI are now created in /usr/bin, which puts the programs on the PATH
    • This was documented in INSTALL.md by @Nbc66
  • Add VPKEdit to the WinGet package registry
  • Create a PPA to serve VPKEdit packages over apt
  • Create binaries for bundling into Strata Source games (made for Portal 2: Community Edition)

For Developers

  • Completely refactored the libvpkedit library. It would be faster to describe what hasn't changed, so rather than describe it here, I added a bunch of comments to the library. To use it now, call PackFile::open on the pack file, rather than the filetype-specific open method (unless you're using a nonstandard file extension)
  • Move version header from GUI to libvpkedit
  • Split up project CMake for readability
  • Stop uploading artifacts produced by clang in GitHub Actions
  • Strip binaries of debug symbols in Linux installer creation process
  • Fix edge case where it would write to an incorrect path if saving to the same place it was loaded from, when that path was manually specified in the PackFile::bake parameters
  • Use a more reliable check for if a filesystem entry is a file or not

Don't miss a new VPKEdit release

NewReleases is sending notifications on new releases.