After 3 years in development, hopefully it will have been worth the wait
Breaking Changes
When batch compiling, each map now uses a separate preset. To choose a preset for a map, select the map in the map list and then select a preset. This differs from the previous behavior where the selected preset was used for all maps
In order to support preset map filters, this version of Compile Pal is not compatible with previous versions of mapfiles.json from Compile Pal 027.22 - 027.25. If upgrading, make sure to not copy the mapfiles.json file from your old version of Compile Pal
Presets using map filters (formerly map specific presets) from 027 prereleases may no longer work properly. To fix them, edit the preset and fill in the match regex.
Features
Preset Filters
Preset filters allow you to create presets that only appear for certain maps
If a map is currently selected when creating a new preset, the filter name and regex will automatically be filled out. Most version postfixes (a1, b2, rc, etc) will be removed from the prefilled regex.
Process and Parameter Compatibility Checks
Compile Processes and Parameters are now checked for compatibility with the currently selected game configuration
Processes and parameters that are incompatible are grouped into a hidden section, and presets that use them will display a warning
This is a visual warning only and will NOT prevent you from using processes/parameters that are marked as incompatible. All compatibility information was taken from the VDC
BSP Support
You can now directly select BSP files, allowing you to pack, generate cubemaps, and more without referencing the source VMF. Some steps are not compatible with BSP files and are disabled. A new Pack
preset has also been added for BSP files
Plugins (Beta)
Plugins allow developers to create and distribute their own compile steps. This has been possible for a while now, but it is now formally documented and improved in V28. Plugins are currently in a beta
state, so the format and structure are subject to change
USE PLUGINS AT YOUR OWN RISK, DO NOT INSTALL PLUGINS FROM UNTRUSTED SOURCES
For more information, see the Plugin Development Guide
General
Added support for detecting Hammer++ configurations (#175, #152)
Added ability to modify the current game configuration from custom compile steps. See the guide for more information (#97)
Added BSPZIP compile step (#194)
Improved folder browser
Improved bspzip, vbspinfo, and vpk path detection for games with nonstandard bin directories
Compile Window
Added elapsed time to compile window
Added bug report button
Added run checkbox to map list, unchecked maps are skipped when compiling
Added close confirmation dialog when trying to close window during a compile
Added delete confirmation dialog when trying to delete presets
Added copy output button
Added update notifications for prerelease versions
Updated compile log scrolling behavior to only autoscroll when user has scrolled to the bottom
Internal Compile Pal errors now show up in the post compile summary
Compile log summary is now ordered by severity
Game Selector
Added new windows to add, edit, and delete game configurations
Added button to refresh game configurations (you no longer have to restart Compile Pal when adding a new game)
Improved instructions when no game configurations are found
Added Command Line Argument
parameter to all executable compile processes
This allows you to pass direct command line arguments to build steps
Packing
Added support for packing:
- CSGO Panorama map icons
- .vsc soundscapes
- CSGO DZ tablets
- Models referenced by
SetModel
I/O - Textures referenced by
$ambientoccltexture
- Vscripts referenced by
IncludeScript
andDoIncludeScript
- L4D2 maps
- env_embers
Added support for detecting content in Chaos engine game mounts
Added new error message when BSPZIP exits with code -1073741819
, which indicates BSPZIP has crashed due to packing too many files (#168)
Added warning when packing files with file paths over 256 characters
Improved vmt keyvalue parsing (by @bottiger1 in #151)
Added Include Directory
parameter
Packs all files within a directory
Added Add File List
parameters
Packs all files in a file list
File lists should follow the BSPZIP file list format: https://developer.valvesoftware.com/wiki/BSPZIP#Adding_a_list_of_files
Added Exclude VPK Files
parameter (by @GameChaos in #132)
Prevents files from being packed if they are in the specified VPK
VRAD
Added StaticPropLightingOld
parameter
VBSP
Added StaticPropCombine
parameters
Cubemap
Added Width
and Height
parameters
Bugfixes
General
Fixed issue with parsing Game Configurations that used forward slashes
Fixed issue with parsing GameInfo.txt if it contained a wildcard |gameinfo_path|
Fixed crash when compile executable is not found (#140)
Fixed crash related to bad search paths (#144)
Fixed crash when parsing GameInfo.txt (#162)
Fixed user defined BSPZIP, VBSPInfo, and VPK paths being overwritten in gameConfigs.json
Fixed Launch button being enabled if no game configuration was selected
Stack traces are now always printed in English
Stop compiling after a VBSP leak in Portal 2 (by @Lpfreaky90 in #93)
Packing
Fixed issue with packing radar dds files
Fixed multi-level radar packing
Fixed issue with wildcard GameInfo paths
Fixed issue with packing maps that were compiled inside the game's map folder
Fixed issue with packing $iris
textures
Fixed issue with manually including files that had capital letters
Fixed issue with packing patch materials
Fixed issue with packing screen overlays referenced by r_screenoverlay
commands (#166)
Fixed materials in the material/
folder not being packed
Fixed materials used in LODs not being packed
Fixed door damage models not being packed
Fixed manually included res files not being packing
Fixed exclude and exclude directory parameters not working on BSP utility files such as nav, radar, etc
Fixed BSP file handle not being released on crash
Added -game to bspzip basis string (should fix crashes on Wine)
Fixed issue with packing multiple maps with dry run enabled
files.txt generated by dry run are now named BSPNAME_files.txt
All BSPZip files are now stored in the BSPZipFiles directory to prevent clutter
Cubemaps
Fixed step failing if VBSPInfo was not found
Fixed issue running Cubemap step for CSGO
NAV
Fixed issue running NAV step for CSGO
VRAD
Fixed Lights
parameter not using the file selector (by @tophattwaffle in #139)
Utility
Fixed duplicate files being added to manifest during particle manifest generation
Fixed issue with particle manifest generation when particles are not in the base game directory
Custom
Fixed typo in success message (by @lewisfff in #112)
Engineering
Migrated to .NET 6.0
The previous version was built using .NET 4.5, which reached end of support on April 26th, 2022. While there should be no noticeable difference while using Compile Pal, this has affected how the program is distributed. Unlike .NET 4.5, which is bundled with Windows, .NET 6.0 is not. From now on, the .NET runtime will be included in Compile Pal, which has caused the filesize to increase
Updated Project/Solution (by @ennerperez in #186)
Updated Mahapps.Metro from 1.4.3 to 2.4.9
New Contributors
- @Lpfreaky90 made their first contribution in #93
- @lewisfff made their first contribution in #112
- @GameChaos made their first contribution in #132
- @tophattwaffle made their first contribution in #139
- @bottiger1 made their first contribution in #151
- @ennerperez made their first contribution in #186
Full Changelog: v027...v027.35