Breaking Changes
Drop support for Windows 7
While Compile Pal should continue to work, a warning will be displayed and certain features may not work as expected. Known issues include not being able to automatically check for updates
Preset file format
Presets are now saved in a single meta.json file instead of multiple CSV files. Presets created on older versions of Compile Pal will be converted to the new format on load. The old format is now deprecated and support may be removed in a future update.
Features
UI
Output window now uses a fixed width font (Cascadia Code) when available (#205)
Added Settings window
- Can configure error source and cache duration. See Interlopers and Compile Pal error parsing for more information on how to make custom error sources
Improved visibility of the map list expander and made it easier to click (#168)
Map list height is persisted after reopening the window (#168)
General
Improve GameInfo.txt parsing (#224)
Improved error message when reading compressed BSPs
Added link to compiled map at end of compile log
All KV parsing now uses the ValveKeyValue library
Packing
Added support for packing:
- TF2 TC round overview files (#198)
SetCountdownImageI/O referenced materials (#198)- Momentum Mod/Strata PBR textures
point_worldtextfontsskybox_swappersky materials by @bottiger1 in #207$portalmasktextureand$portalcolortexture(#214)- TF2 upgrade files by @Brain-dawg in #216
color_correction_volumetextures by @Brain-dawg in #216func_dustcloudtextures by @Brain-dawg in #216func_dustmotetextures by @Brain-dawg in #216- VScript precached sounds and models
- CSC:S radar materials (#259)
- mvm-specific
mvm_level_sound_tweaks.txtfile for MvM maps @Brain-dawg in #269 trigger_particleandtf_generic_bombparticles by @Brain-dawg in #269PlayVORed/PlayVOBluesounds by @Brain-dawg in #269SetOverlayMaterialI/O referenced materials by @Brain-dawg in #269SetCustomModel/SetCustomModelWithClassAnimationsI/O referenced models by @Brain-dawg in #269- materials with fallback shaders (#259)
Added comment hints for packing VScript dependencies that can't be automatically resolved. For more information, see VScript Packing Hints
// !CompilePal::IncludeFile(internal_path: str)
// !CompilePal::IncludeDirectory(internal_path: str)Added support for packing assets referenced in VScript RunScriptCode I/O @Brain-dawg in #269
IncludeScript/DoIncludeScriptSetSkyboxTextureSetScriptOverlayMaterialEmitSound/EmitSoundEx/EmitAmbientSoundOn- All
SetModelrelated functions DispatchParticleEffect
Error logging for invalid strings in VScript I/O @Brain-dawg in #269
Added No .sw.vtx parameter to Pack by @Brain-dawg in #216
- Skips packing unused .sw.vtx files to save filesize
Added Add Source Directory parameter to Pack (#208)
- Allows you to specify additional source directories to search when looking for content to pack, supports glob patterns
Add -renameparticlemanifest by @RealBerke in #283
- Renames
maps/mapname_particles.txttoparticles.txt. Allows the particle manifest to be found even if the map name doesn't match, similar toembed.navfor NAV files
VRAD
Added -dumppropmaps VRAD param (2013 MP only) by @SirYodaJedi in #217
Added Normal Priority parameter to VBSP, VVIS, and VRAD for running with normal process priority
- Normally these processes are run with a below normal priority to prevent them from freezing your computer when they run, but sometimes this can sometimes cause slow compiles for processors with E-Cores
Added -noextra VRAD parameter
Clean up some VRAD command descriptions by @SirYodaJedi in #231
VVIS
Added Normal Priority parameter to VBSP, VVIS, and VRAD for running with normal process priority
VBSP
Added Normal Priority parameter to VBSP, VVIS, and VRAD for running with normal process priority
Add -nodrawtriggers to VBSP by @SirYodaJedi in #231
Added -allowdynamicpropsasstatic parameter to GMod VBSP (#253)
Cubemaps
Added Iterations parameter to Cubemaps step (#185)
Plugins
Added WorkingDirectory parameter for plugins
Added support for autoloading plugins defined in GameConfig.txt
Bugfixes
General
Fixed BSP v25 (Momentum Mod/Strata) parsing (#203)
Fixed bin folder detection for Momentum Mod/Strata
Compiler working directory is now set to the bin folder (#228)
- Fixes issue where TF2C instances would not compile correctly
Remove control characters from COMPILE_PAL_SET commands (#226)
Fixed parsing for BSPs with no entities (#246)
Fixed parsing entities with escaped quotes (#246)
Fixed parsing for VMTs with no line breaks (#237)
Disable -nosound by default in cubemap and nav processes, added parameter to reenable it
Fix crash on startup if game configuration fails to parse (#275)
Improved parsing of GameConfig files with lowercase keys (#280 )
UI
Fixed missing scrollbar in preset list (#201)
Fixed copy and pasted compile output not displaying properly in discord
Fixed active game configuration not being shown in title during/after compile
Packing
Fixed extensionless VScript files being packed without the .nut extension (#202)
Fixed packing failing if there is a command with no spaces in the parameters by @bottiger1 in #207
Fixed packing single material skyboxes by @bottiger1 in #207
Fixed regression when manually including files
Fixed issue with packing relative internal paths (#199)
Fixed entity textures failing to pack due to key value case sensitivity
Fixed crash when saving/loading custom compile steps that contained commas in their arguments
Fixed tf_logic_robot_destruction res file packing (#244)
Fixed crash related to packing worldtext $basetexture (#246)
Fixed regression packing RES file images
Fixed crash when packing a file that has already been added (#247)
Improved detection of referenced content by ignoring case when looking for keywords in vmts, soundscapes, etc (#249)
Fixed color correction files incorrectly being parsed as textures (#258)
Remove leading "materials/" from sprite materials by @bottiger1 in #260
Skip invalid vmt files by @bottiger1 in #260
Fix blend materials not being packed by @bottiger1 in #261
Added recursive search in /particles for directories by @Natanxp2 in #271
Fixed improper parsing of particles with version 5.2 by @Natanxp2 in #270
Improved packing support for models and sounds referenced by tf_logic_player_destruction
Fixed mvm level_sounds pack renaming not working correctly by @Lizard-Of-Oz in #279
Fix typo in item_teamflag packing by @CzechMate09 in #281
Improved MvM map name check to check if map name contains "mvm" instead of checking if map name starts with "mvm_" when packing MvM soundscripts by @RealBerke in #283
Cubemap
Fixed crash when building cubemaps for CS:S (#256)
Cubemap step is now run after pack step (#255)
NAV
Mark NAV step incompatible with GMod
Engineering
Migrated to .NET 10.0
New Contributors
- @dependabot[bot] made their first contribution in #210
- @Brain-dawg made their first contribution in #216
- @SirYodaJedi made their first contribution in #217
- @Lizard-Of-Oz made their first contribution in #235
- @MAGNAT2645 made their first contribution in #250
- @Natanxp2 made their first contribution in #271
- @CzechMate09 made their first contribution in #281
- @RealBerke made their first contribution in #283
Full Changelog: v028...v029