Compilepal v20 - improved paking

fubarFX

The "raw" in "nodraw"
aa
Jun 1, 2009
1,721
1,985
So I've fixed matty's issue, added support for localized briefing text, fixed rope texture not getting added. also fixed a problem with soundscript files.

I'd like to figure out model skins before submitting my changes for the next version so now's a really good time to tell me if I'm missing anything (as far as paking goes).
 

worMatty

Repacking Evangelist
aa
Jul 22, 2014
1,259
999
The Gun Mettle update added some functionality to VBSP, Hammer and VRAD. But the only thing that is relevant to CompilePal is what's detailed in Geit's thread about repacking. Perhaps you could add support for repacking?
 

Geit

💜 I probably broke it 💜
aa
May 28, 2009
598
1,161
The Gun Mettle update added some functionality to VBSP, Hammer and VRAD. But the only thing that is relevant to CompilePal is what's detailed in Geit's thread about repacking. Perhaps you could add support for repacking?

I actually got started on trying to make a standalone BSP packer in C#, I got decompression nearly done with the exception of Lump 40 (the pakfile itself, which shouldn't be too hard as it's literally just a .zip 6.3 format file). I'll do some more work on it tonight and see if I can get it finished.
 
Last edited:

fubarFX

The "raw" in "nodraw"
aa
Jun 1, 2009
1,721
1,985
I'm not sure we're going to tackle repacking with compilepal for now (I know I'm not).

so, GOOD NEWS! I've had a major breakthrough in understanding mdl files and I'll be able to figure out what skins to include depending on their usage in the map. Add all the recent fixes to that and we've got ourselves the best automatic paking ever made. I'm really hyped right now guys.

And again, if you have any feedback on the paking tool, now's your time. we'll be rolling an update soon.
 

worMatty

Repacking Evangelist
aa
Jul 22, 2014
1,259
999
That is great news! If in future we only ever have to say to people "Use CompilePal," it will get rid of a whole load of possible problems.

Not to worry about the repacking. We have to add cubemaps anyway. It was just a thought for a side feature. But the option might confuse some people who think they have to do it as part of a compile. If you are building cubemaps in TF2 you can use bsp_repack right afterwards.

Fubar you say you fixed a problem with soundscript files. Did that problem cause the errors I quoted previously? Today I tried to compile a map using v20 and have found that I do not get the errors if I temporarily remove my level_sounds.txt file.

With this map I had a soundscape file that referred to a custom MP3. The soundscape file was packed but the MP3 was not. The soundscape file is tf/custom/wormatty/scripts/soundscapes_dr_steam_works_extreme_b3.txt. The soundscape entry that refers to my custom sound is:
Code:
"Castle.Gallery"
{
	"dsp"	"1"

	"playlooping"
	{
		"volume"	"0.5"
		"pitch"		"100"
		"wave"		"dr_castle_steveh/left_bank_two.mp3"
	}
}
and my custom sound is stored in tf/custom/wormatty/sound/dr_castle_steveh/left_bank_two.mp3.

I'm happy to report that my menu_photo files were packed :)

Feedback: Any way to stop the output window from resetting its position to the bottom every time it produces a line of text, if I am reading something earlier in the log?

Feedback: Option to suppress the two errors:
Code:
Can't load skybox file [sub:1] to build the default cubemap!
I presume the Interlopers stuff is fetched from their web site each time these come up?

Hammer hasn't been inserting black cubemaps in to any maps I've been working on recently so I can't test if CompilePal is removing them.
 

fubarFX

The "raw" in "nodraw"
aa
Jun 1, 2009
1,721
1,985
yeah the crash you experienced was related to soundscapes/soundscripts (having one or the other was fine but having both caused an issue. and there was an other issue where it would not pick up custom sounds. all that got fixed. next version's gonna be pretty good!

and yeah, I'm not sure how ruarai does the log checking but I'm pretty sure he pulls data from interlopers.
The scrolling thing is noted, it bugs the hell out of me as well.
 

worMatty

Repacking Evangelist
aa
Jul 22, 2014
1,259
999
I tried compiling with the GAME thing enabled and I got an error:
BHlhMgx.png:
 

ruarai

L1: Registered
Jul 13, 2015
3
5
Hey guys, I'm the original developer of Compile Pal.

It's great to see all this feedback! The packing feature of Compile Pal was very shoddy until fubarFX came along.

I've just pushed a new release which contains a lot of fixes for things mentioned above, also all by fubarFX.
https://github.com/ruarai/CompilePal/releases/latest

I tried compiling with the GAME thing enabled and I got an error:
BHlhMgx.png:

This looks to be one of the many issues Compile Pal has with the new Steam pipeline games. It was never designed with this in mind, and I'll look into fixing it ASAP.

In the meantime, you can try editing the gameConfigs.json by hand - it's a bit scary but you should be able to manually specify the executable files by hand.

This is an example of what it should look like.
Code:
[
  {
    "GameFolder": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\csgo",
    "VBSP": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\bin\\vbsp.exe",
    "VVIS": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\bin\\vvis.exe",
    "VRAD": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\bin\\vrad.exe",
    "BSPZip": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\bin\\bspzip.exe",
    "GameEXE": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\csgo.exe",
    "MapFolder": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\csgo\\maps",
    "SDKMapFolder": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\sdk_content\\maps",
    "BinFolder": "E:\\SteamLibrary\\steamapps\\common\\Counter-Strike Global Offensive\\bin",
    "Name": "Counter-Strike: Global Offensive"
  }
]
 
Last edited:

worMatty

Repacking Evangelist
aa
Jul 22, 2014
1,259
999
Thanks ruarai (can't believe I typed your name right the first time).

EDIT: When I launch CP 20 and Launch with the TF2 settings, I get this:
T1mvPTL.png


I presume it's the update notice. The Output tab says it's outdated so it doesn't matter.
 
Last edited:

worMatty

Repacking Evangelist
aa
Jul 22, 2014
1,259
999
What I think might be a cool option for a 'compile pal' is to have a way for the user to save some notes for a specific compile that they'd have to OK before the compile starts. I sometimes forget to enable the clip visgroup or to unhide objects before -final compiles.
Maybe CP could scan the VMF and tell you if any auto visgroups are disabled before it begins compiling?
 

henke37

aa
Sep 23, 2011
2,075
515
Heck, if you are willing to go that far, why not just tell it to set the desired visibility automatically?
 

UKCS-Alias

Mann vs Machine... or... Mapper vs Meta?
aa
Sep 8, 2008
1,264
817
not yet, it's actually impossible to do with the current documentation. I have it almost figured out but there's one missing puzzle piece I can't quite put my finger on. I'll have to take a closer look at the binaries and see what I can make out of it. We're in uncharted territories.
Even then, its still dangerous to assume a skin isnt used. Entity work can dynamicly change a skin on a dynamic prop. You would have to scan for static props specificly, and also scan if that prop isnt also existing as dynamic object. And who knows if a mod wouldnt spawn the prop? Even if that mod contains the same model and did send it to the client, the map one would override it and for that reason actualy break the mod. Still, i can only think of prophunt on that one, and its unlikely that such prop would be used for prophunt.
Having all skins in, even if unused might be a waste of space, but to me it sounds safer to do so.
Heck, if you are willing to go that far, why not just tell it to set the desired visibility automatically?
Because for a debug compile you might set it off deliberately. And 2 common ones i can imagine for that: hints, areaportals
 

fubarFX

The "raw" in "nodraw"
aa
Jun 1, 2009
1,721
1,985
Even then, its still dangerous to assume a skin isnt used. Entity work can dynamicly change a skin on a dynamic prop. You would have to scan for static props specificly, and also scan if that prop isnt also existing as dynamic object.
dynamic props get all skins included for this reason. These things have already been figured out.
And who knows if a mod wouldnt spawn the prop? Even if that mod contains the same model and did send it to the client, the map one would override it and for that reason actualy break the mod.
that's not really how things go down. omitting a vmt and vtf doesn't override anything. It's on the mod to distribute the assets it requires.
Heck, if you are willing to go that far, why not just tell it to set the desired visibility automatically?
I really don't want to edit vmfs because that's hammer's ballpark but I could read it and send warnings in the log.
 

worMatty

Repacking Evangelist
aa
Jul 22, 2014
1,259
999
I really don't want to edit vmfs because that's hammer's ballpark but I could read it and send warnings in the log.
And stop the compile from going ahead, if you can :)
 

Izotope

Sourcerer
aa
May 13, 2013
698
764
dynamic props get all skins included for this reason. These things have already been figured out.
I'm using a prop ported from Alien Swarm that uses 3 skins, 1 of which is never included in the packing process.
How exactly does the scanning work if it misses that skin?
The 3 material/texture names are:
panel02a_unlocked
panel02a_locked
panel02_skin <- this is the excluded file.
 

fubarFX

The "raw" in "nodraw"
aa
Jun 1, 2009
1,721
1,985