I can't extract the "propdata.txt" script from ...

javierdl

2009-10-24 06:09:33

My source engine.gcf file :(

I get the error below:

"Error writing C:\Users\Javier\Desktop\propdata.txt
(Error: Unexpected end of GCF stream (0 B of 12187 B).
Has the GCF file been completely acquired?)"


Which is consistent with the pale look (like greyed out) of every file inside that gcf.
Image

That is also consistent with the unfinished progress bar below too:

Image

Every time I have opened that gcf I have closed Steam first just in case.
What do you think?

I have already deleted this gcf file to get Steam to download it, at least 3 times. So this is not helping. In fact I erased HL2DM from that Steam Games window, from the My Games tab, right-clicked on it and chose "Delete Local Content...", and redownloaded it again.

I'll appreciate any feedback, thanks a bunch.

DPC

boshed

2009-10-24 15:30:46

IIRC this is because you don't have any games installed that need that specific GCF.

Think only HL2 uses that one so check your HL2 is properly installed and fully up to date.

javierdl

2009-10-25 01:29:27

Think only HL2 uses that one...
Mmm, good to know.
Then... if I'm making a map for DM, which GCF file should I refer to look at the "propdata.txt file" ?

JDL

javierdl

2009-10-26 05:16:14

Boshed.
I haven't reinstalled HL2 ever since I removed it, since you said it probably wasn't needed anyway. But whenever I run HL2DM it attempts to find definitions that are not present:

DrPepperCan connected
class C_PhysPropClientside 'models/props_wasteland/controlroom_desk001b.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
class C_PhysPropClientside 'models/props_wasteland/controlroom_filecabinet002a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.


I only posted 2 lines, but the list can be very long.

I guess I'll reinstall HL2....

JDL

javierdl

2009-10-26 06:02:49

Mmm, this is not fun :(

I just reinstalled HL2 and played it a bit too. After that I tried HL2DM but unfortunately it's still having the same problem :(

The actual list of "no matching entries" was longer...

maxplayers set to 2
Heap: 256.00 Mb
Parsed 23 text messages
Couldn't find custom font file 'resource/HL2EP2.ttf'
Couldn't find custom font file 'materials/vgui/fonts/buttons_32.vbf'
Hud element 'CHudHDRDemo' doesn't have an entry 'HudHDRDemo' in scripts/HudLayout.res
Hud element 'CHudFilmDemo' doesn't have an entry 'HudHDRDemo' in scripts/HudLayout.res
Hud element 'CHudCommentary' doesn't have an entry 'HudCommentary' in scripts/HudLayout.res
execing config.cfg
Can't use cheat cvar cl_upspeed in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar cl_forwardspeed in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar cl_backspeed in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar dsp_dist_max in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar dsp_dist_min in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar r_ambientfraction in multiplayer, unless the server has sv_cheats set to 1.
4 CPUs, Frequency: 2.2 Ghz, Features: AuthenticAMD SSE SSE2 MMX 3DNow RDTSC CMOV FCMOV
execing valve.rc
] map dm_lockdown sv_lan 1
Network: IP 70.81.142.3, mode MP, dedicated No, ports 27015 SV / 27005 CL
Spawn Server dm_lockdown
Begin loading faces (loads materials)
End loading faces (loads materials)
execing skill_manifest.cfg
execing skill.cfg
Executing listen server config file
Precache of sprites/redglow1 ambigious (no extension specified)
Error reading weapon data file for: weapon_annabelle
prop_physics 'models/props_wasteland/prison_heater001a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/controlroom_desk001b.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/vent001.mdl' has a base specified as 'Metal.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_c17/oildrum001.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/vent001.mdl' has a base specified as 'Metal.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/controlroom_filecabinet001a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/CinderBlock01a.mdl' has a base specified as 'Stone.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/Shoe001a.mdl' has a base specified as 'Cardboard.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_heater002a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/controlroom_chair001a.mdl' has a base specified as 'Plastic.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/dockplank01a.mdl' has a base specified as 'Wooden.Large', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/Shovel01a.mdl' has a base specified as 'Metal.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/MetalBucket01a.mdl' has a base specified as 'Metal.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/plasticbucket001a.mdl' has a base specified as 'Plastic.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/garbage_glassbottle003a.mdl' has a base specified as 'glass.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/MetalBucket01a.mdl' has a base specified as 'Metal.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_junk/terracotta01.mdl' has a base specified as 'Pottery.Small', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_toilet01.mdl' has a base specified as 'Pottery.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_sink001b.mdl' has a base specified as 'Pottery.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_heater002a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_c17/oildrum001.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_heater001a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/laundry_cart002.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/laundry_cart002.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_debris/concrete_spawnplug001a.mdl' has a base specified as 'Stone.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_debris/concrete_spawnplug001a.mdl' has a base specified as 'Stone.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_heater001a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_toilet01.mdl' has a base specified as 'Pottery.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_heater001a.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_c17/oildrum001.mdl' has a base specified as 'Metal.Medium', but there is no matching entry in propdata.txt.
prop_physics 'models/props_wasteland/prison_sink001b.mdl' has a base specified as 'Pottery.Medium', but there is no matching entry in propdata.txt.


Section [Scenes]: 1096 resources total 17.54 KB, 0.84 % of limit (2.10 MB)
2 player server started
couldn't exec listenserver.cfg
Client "DrPepperCan" connected (127.0.0.1:27005).
Connected to 127.0.0.1:27015
Adding master server 72.165.61.136:27014
Adding master server 68.142.72.250:27011
Connection to Steam servers successful.
VAC secure mode is activated.

Deathmatch
Map: dm_lockdown
Players: 1 / 2
Build 3945
Server Number 1
No pure server whitelist. sv_pure = 0
CAsyncWavDataCache: 1 .wavs total 0 bytes, 0.00 % of capacity
Initializing renderer...
DrPepperCan connected

Any ideas?

JDL

javierdl

2009-10-26 19:37:53

I have noticed that my "half-life 2 deathmatch.gcf" file doesn't have a propdata.txt file. Which would explain why HL2DM can't find all these definitions.
The thing is, I don't know for a fact that the "half-life 2 deathmatch.gcf" file is supposed to have a propdata.txt file.
Could you (or anyone) check on this please?
For those that don't know:
You can check this using a program like GCFScape or Crafty

The GCF (Game Cache File) files are found here: C:\Program Files\steamapps\
There find a file called: "half-life 2 deathmatch.gcf". Double click it. Once open, use Ctrl-f to search using the word: propdata.txt

Thanks in advance for trying,

Btw, I finally succeeded extracting the propdata.txt file from the "source engine.gcf" file! I think what helped was doing a verification of the game cache integrity, as explained here. After I did that, I opened the source engine.gcf file and all its files inside no longer looked greyed out.

JDL

boshed

2009-10-26 20:50:12

javierdl wrote:Btw, I finally succeeded extracting the propdata.txt file from the "source engine.gcf" file! I think what helped was doing a verification of the game cache integrity
Ah I see, I assumed you would have already tried validating as thats usually the first thing to try when files go wrong. :wink:

HL2DM doesn't have its own propdata.txt in it's GCF, it uses the generic one. That doesn't appear to be the one in source engine.gcf as I haven't updated HL2 in months so the files in there are greyed out for me also - but my hl2dm works fine.

I suspect it uses the one in base source engine 2.gcf

Also double check you don't have a propdata.txt in your /hl2mp/scripts/ folder as that will override one from the GCF.

What do you need the propdata.txt for?

javierdl

2009-10-26 21:59:29

Hi Boshed, I'm glad you haven't given up on me :)

I checked every gcf file and I only found propdata.txt files in the following GCFs:

- source 2007 binaries.gcf
- episode two content.gcf
- base source engine 2.gcf
- source engine.gcf
I suspect it uses the one in base source engine 2.gcf
Well, I checked all the prop definitions that "according to the HL2DM console" were not found in the propdata.txt file (it doesn't say which one though). These materials were:
Metal, glass, Cardboard, plastic, wooden, and stone.

Here's a strange thing...
This is what I found: Metal and glass exist in all the GCFs list above. This suggests that HL2DM is not using the propdata.txt files from those GCFs. Which one then? This is why I had thought that my half-life 2 deathmatch.gcf file was missing its own.
And, these materials WERE NOT found: Cardboard, plastic, wooden, stone.
Also double check you don't have a propdata.txt in your /hl2mp/scripts/ folder as that will override one from the GCF.
Oh! I am so glad you suggested this!
I found that there was one indeed! WITH NOTHING IN IT!!! No wonder!
Ok, so now I just erased it, and ran HL2DM. SUCCESS!!! YES!! I no longer get those console messages saying it couldn't find blah blah blah...
The funny thing is now, there is no propdata.txt file in the "half-life 2 deathmatch.gcf" file, neither it is in the /hl2mp/scripts/ folder. Then, where is it reading the definitions for materials like Cardboard, plastic, wooden, and stone?
Well now that things are working as they should, this question is not as important, but I wouldn't mind knowing.

Thank you kindly Boshed for your help and patience :)

JDL

boshed

2009-10-26 22:30:10

javierdl wrote:
- source 2007 binaries.gcf <- used by orange box engine
- episode two content.gcf <- used by hl2 episode 2
- base source engine 2.gcf
- source engine.gcf <- as we have seen, not used by hl2dm
So that leaves us with the one in base source engine 2.gcf

I've just extracted it and compared it to the default list and it corresponds perfectly, so I'm almost certain that's where HL2DM gets its prop info from.

You were getting missing propdata because your empty /hl2mp/scripts/propdata.txt was overriding the one from that gcf. If I'm not mistaken it works like this:

local filesystem >overrides> content packed into the map.bsp >overrides> content in the game's gcf (if it has one) >overrides> content from the base source gcf

There are a few exceptions (soundscapes being one that springs to mind, and sv_pure disallowing local filesystem content being another) but that seems to be the general rule.

javierdl

2009-10-26 23:00:05

Mmm very interesting.
One thing doesn't match though...
These materials, cardboard, plastic, wooden, stone, are not found in any of the 4 GCFs. Yet now that I have things working right and load the same maps to check, I don't get any more messages indicating that their respective definitions can't be found, meaning: they are being found. But where?

JDL

boshed

2009-10-26 23:08:03

javierdl wrote:Mmm very interesting.
One thing doesn't match though...
These materials, cardboard, plastic, wooden, stone, are not found in any of the 4 GCFs.
propdata.txt in base source engine 2.gcf

Cardboard:

Code: Select all

	"Cardboard.Base"
	{
		"dmg.bullets"		"0.5"
		"dmg.club"		"1.25"
		"dmg.explosive" 	"1.5"
	}

	"Cardboard.Small"
	{
		"base"		"Cardboard.Base"
		"health"	"10"
	}

	"Cardboard.Medium"
	{
		"base"		"Cardboard.Base"
		"health"	"20"
	}

	"Cardboard.Large"
	{
		"base"		"Cardboard.Base"
		"health"	"40"
	}
Plastic:

Code: Select all

	"Plastic.Base"
	{
		"dmg.bullets"		"1.0"
		"dmg.club"		"1.0"
		"dmg.explosive" 	"1.0"
		"health"		"0"
	}

	"Plastic.Small"
	{
		"base"		"Plastic.Base"
	}

	"Plastic.Medium"
	{
		"base"		"Plastic.Base"
	}
	
	"Plastic.Large"
	{
		"base"		"Plastic.Base"
	}
Wooden:

Code: Select all

	"Wooden.Base"
	{
		"dmg.bullets"		"0.75"
		"dmg.club"		"2.0"
		"dmg.explosive" 	"1.5"
		
		"breakable_model"	"WoodChunks"
		"breakable_skin"	"0"
	}

	"Wooden.Tiny"
	{
		"base"			"Wooden.Base"
		"health"		"6"

		"breakable_count"	"0"
	}

	"Wooden.Small"
	{
		"base"			"Wooden.Base"
		"health"		"20"

		"breakable_count"	"2"
	}

	"Wooden.Medium"
	{
		"base"			"Wooden.Base"
		"health"		"30"

		"breakable_count"	"4"
	}

	"Wooden.Large"
	{
		"base"			"Wooden.Base"
		"health"		"50"

		"breakable_count"	"6"
	}

	"Wooden.ExtraLarge"
	{
		"base"			"Wooden.Base"
		"health"		"100"

		"breakable_count"	"8"
	}

	"Wooden.Huge"
	{
		"base"			"Wooden.Base"
		"health"		"130"

		"breakable_count"	"10"
	}
Stone:

Code: Select all

	"Stone.Base"
	{
		"dmg.bullets"		"1.0"
		"dmg.club"		"1.0"
		"dmg.explosive" 	"1.0"
	}

	"Stone.Small"
	{
		"base"		"Stone.Base"
		"health"	"50"
	}

	"Stone.Medium"
	{
		"base"		"Stone.Base"
		"health"	"100"
	}

	"Stone.Large"
	{
		"base"		"Stone.Base"
		"health"	"200"
	}

	"Stone.Huge"
	{
		"base"		"Stone.Base"
		"health"	"400"
	}

javierdl

2009-10-27 01:26:22

:oops: Ooops!
That's embarrassing

I am still learning to use ConTEXT. I just learned that when doing a search it's important to pay attention to things like: "From cursor", "from the top", etc ;)
Needless to say, I found them now :)

JDL