Skip to content

Compile Pal V028

Latest
Compare
Choose a tag to compare
@Exactol Exactol released this 08 Mar 00:01
· 55 commits to master since this release
aa8a572

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.

image

image

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

image

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

image

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

image

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

image
image

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 and DoIncludeScript
  • 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

Full Changelog: v027...v027.35