VPKEdit

A CLI/GUI tool to create, read, and write several pack file formats.

MIT License

Stars
199
VPKEdit - v3.4.2

Published by craftablescience 11 months ago

GUI Changes

  • Fixed Linux Qt XCB platform backend failing to load the Qt OpenGL library from the system
  • Added exclamation point onto the end of the remove file error dialog

General Changes

  • Applied some ReSharper fixes from CLion Nova to clean up the code. Realistically this does nothing for end users, but it did improve a lot more of the codebase than I thought it would, so worth a mention
VPKEdit - v3.4.1

Published by craftablescience 12 months ago

GUI Changes

  • Spruce up the text preview:
    • Display line numbers for all files
    • Apply syntax highlighting to KeyValues text files
  • Hide status bar when no VPK is loaded
  • Show the project logo and name in lieu of a blank space when no file is being previewed
  • Show VPK version in status bar
  • Add action to change loaded VPK version under the Edit menu
  • Add "Add Folder" action under the Edit menu
  • Unify icons in the Edit menu with the icons in the entry context menu

General Changes

  • Removed special handling of CS2 beta VPKs aside from one check to skip their modified signature section
    • There was no point to having it be a different version in code, it was a lot of unnecessary checks. These VPKs will still load, but they'll appear for all intents and purposes identical to v2 VPKs

For Developers

  • Added library methods:
    • std::uint32_t VPK::getVersion() const
    • VPK::setVersion(std::uint32_t version)
VPKEdit - v3.4.0

Published by craftablescience 12 months ago

GUI Changes

  • Main Window
    • Fix "New" actions being hidden after failing to load a VPK
    • Add an "Add Folder" action in the context menu shown right-clicking a folder
    • Sync the entry tree and directory preview so they always match after modifying the VPK
    • Arrow keys can now be used to navigate the entry tree
    • Scroll to selected entry in entry tree when navigating in directory preview
  • Previews
    • Add the entry tree context menu to the folder preview
    • Add several more text formats to the text preview supported formats list
    • Port the Alpha and Tile VTF preview controls to the image preview
    • Scroll wheel now zooms in/out of images and VTF files
  • Search
    • Split search queries into words instead of checking for the entire phrase
    • Search queries are now also applied when the text box loses focus instead of only when Enter/Return is pressed
    • Apply search queries to folder preview
      • Currently folders are always visible in the folder preview regardless of search query, since the preview has no idea what their contents are

For Developers

  • On Linux:
    • Qt libraries are not copied to the build directory if a custom Qt install is not set (if not, it will use system libraries)
    • Qt libraries are now bundled into the installer directly from the build directory if a custom Qt install is set
    • GitHub CI automatically fixes the RPATH of Qt libraries in the installer, negating the need for a custom launch script and hopefully allowing it to work on more Linux distros (thanks @JJL772!)
VPKEdit - v3.3.5

Published by craftablescience about 1 year ago

GUI Changes

  • Add alpha checkbox in the VTF preview controls to hide/show the alpha channel of a texture (thanks @Trico-Everfire!)
  • Add tile checkbox in the VTF preview controls to display the texture tiled
  • Add label to zoom slider in the VTF preview controls

General Changes

  • Improve file handling to only request read or write access to a file when necessary. This should improve trying to read from a VPK when another process, like Hammer or a Source engine game, is using the VPK at the same time
VPKEdit - v3.3.4

Published by craftablescience about 1 year ago

GUI Changes

  • Fix installed releases creating a config.ini file next to VPKs opened through double-click
VPKEdit - v3.3.3

Published by craftablescience about 1 year ago

General Changes

  • Fix Windows directory separators being prefixed to filenames when creating a VPK from a folder (thanks @Rythyrix!)
VPKEdit - v3.3.2

Published by craftablescience about 1 year ago

GUI Changes

  • Add progress bar for extracting directories (or entire VPK contents)
  • Consistently temporarily disable features of the application which may break it while a long operation is taking place

For Developers

  • Add a function VPK::getRealFileName, identical to VPK::getPrettyFileName but it adds _dir on the end if present in the real filename
VPKEdit - v3.3.1

Published by craftablescience about 1 year ago

GUI Changes

  • Standalone versions now create a text file config.ini to store options in instead of using the registry
  • Fix a bunch of bugs related to installing Qt networking libraries (forgot a few things)

Note: if you're using the standalone version, this release will clear your old options. This shouldn't be much of a problem seeing as there are 4 of them right now.

VPKEdit - v3.3.0

Published by craftablescience about 1 year ago

GUI Changes

  • Rename "New..." to "Create Empty..."
  • Add new function "Create From Folder..." to create a new VPK from a folder
  • "Check For Updates..." now pings GitHub's web API to get the latest release information and displays the results in a popup
  • Fix error preview showing instead of directory preview (forgot to delete test code)
  • Fix directory preview crashing when it displays a file with a name that is all extension (e.g. .gitignore)
  • Fix malformed Linux installer files

For Developers

  • Rename VPK::new to VPK::createEmpty
  • Add function VPK::createFromDirectory
VPKEdit - v3.2.0

Published by craftablescience about 1 year ago

GUI Changes

  • Show an error preview when a file cannot load (perhaps due to another process using the VPK)
    • Fixes #6

For Developers

  • Change VPK::readBinaryEntry and VPK::readTextEntry to both return a value wrapped in std::optional instead of the plain value
VPKEdit - v3.1.1

Published by craftablescience about 1 year ago

The project has been renamed to VPKEdit to better describe the library and GUI tool, and to stop competing with the 8 other VPKTool repositories on GitHub (no seriously, it was literally 8 at the time of writing). No other changes have been made from v3.1.0 in this release.

VPKEdit - v3.1.0

Published by craftablescience about 1 year ago

GUI Changes

  • Allow user to select VPK version when creating a new VPK
  • Add standard keyboard shortcuts for important actions
  • Follow the selected item in the entry tree when navigating in the directory preview
  • Format credits a bit better

General Changes

  • Fixed two separate bugs where VPKs could be written to and read from an incorrect path
VPKEdit - v3.0.0

Published by craftablescience about 1 year ago

This update includes write support, allowing both library and GUI users to arbitrarily add and remove files from VPKs and save the changes to disk!

GUI Changes

  • Add necessary menu bar entries and context menu entries for adding and removing files
    • Menu bar:
      • New
      • Save
      • Save As...
      • Add File...
    • Left pane context menu:
      • (For files) Remove File
      • (For folders) Add File..., Remove Folder
      • (For root folder) Add File...
  • Files are added through a popup that allows you to set the path within the VPK...
  • ...and if you have Advanced Mode enabled in the options, you can also set if the file is saved to the directory VPK or an archive VPK, as well as the preload bytes size
  • Create a Linux .deb installer for Debian-based operating systems
  • Install folder is now VPKTool on Windows (instead of vpktool)
  • Properly set application metadata for Linux desktop files
  • Bundle credits and license files with installers, display credits in Help > About
  • Sort games alphabetically in File > Open In...
  • Add toggleable option to open folders with a single click in the left pane
  • Add acf and rc formats to text preview
  • File extensions are now case-insensitive

General Changes

  • Fix bug where reading the vpk might skip some whitespace
  • Fix bug where too much data was attempted to be read if the entry was partially preloaded
  • Use internal FileStream class to handle all file operations instead of standard library
  • Add vpk write support to libvpktool

For Developers

  • Allow specifying a custom Qt install path on Linux
  • Clean up CMake
VPKEdit - v2.3.0

Published by craftablescience about 1 year ago

GUI Changes

  • Allow previewing more text files:
    • VDF
    • GM
    • PY
    • JS
    • TS
  • Allow previewing raw images:
    • TGA
    • JPEG/JPG/JFIF
    • PNG
    • BMP
    • WEBP
  • It is now possible to navigate through VPKs by double-clicking entries in the directory preview pane
  • Add user-facing settings:
    • Theme select
    • Start maximized

General Changes

  • Improve CMake script to be more Qt version-agnostic on Linux (thanks @Trico-Everfire)
  • Update project license with current year and name
VPKEdit - v2.2.1

Published by craftablescience about 1 year ago

GUI Changes

  • Hotfix: fix extracting singular files (used the wrong path)
  • Added a "Check for updates..." button
VPKEdit - v2.2.0

Published by craftablescience about 1 year ago

GUI Changes

  • Update to Qt 6.5.2
  • Add a submenu to open a VPK inside a Source 1 or 2 game's install folder by @Trico-Everfire
  • When extracting individual files, you can now set the name of the file
VPKEdit - v2.1.2

Published by craftablescience over 1 year ago

GUI Changes

  • Convert path to forward slashes so the vpk name will never have the whole path in it
  • Automatically close if opening a file through the command-line (or double-clicking) results in an error
VPKEdit - v2.1.1

Published by craftablescience over 1 year ago

GUI Changes

  • Prettify application slightly
  • Added text to status bar to display loaded VPK file path
  • Added progress bar to status bar, to display VPK loading progress
  • Added basic file search bar
VPKEdit - v2.1.0

Published by craftablescience over 1 year ago

GUI Changes

  • Add version to window title
  • Automatically load a VPK when passed as the first argument to the program
  • Update application logo
  • Create installer application for Windows
    • This registers VPKTool as the default application for opening VPKs
  • Clean up a visual bug with the entry tree
  • Fix VTF preview to allow displaying the highest quality mipmap
  • Add button to close the open VPK
  • Add a directory preview (shows contents of a directory in the content pane)
  • Reword about text slightly
VPKEdit - v2.0.0

Published by craftablescience over 1 year ago

  • Effectively rewrote library to be faster and more reliable
  • Added a GUI application to extract files and preview their contents