Jump to content

[FGD] Team Fortress 2 Beta FGD


e-freak

Recommended Posts

I've just finished the first beta of my Team Fortress 2 Beta FGD and the Game Configuration and Game Info.

Known Bugs: The Textures don't display correct in the 3D-View of Hammer atm.

The GameConfig.txt in the folder sourcesdk/bin has to be updated with this text:

		"Team Fortress 2"

		{

			"GameDir"		"steampath\steamapps\Account\team fortress 2\tf"

			"hammer"

			{

				"GameData0"		"steampath\steamapps\Account\sourcesdk\bin\tf2.fgd"

				"TextureFormat"		"5"

				"MapFormat"		"4"

				"DefaultTextureScale"		"0.125000"

				"DefaultLightmapScale"		"16"

				"GameExe"		"steampath\steamapps\Account\team fortress 2\hl2.exe"

				"DefaultSolidEntity"		"func_capturezone"

				"DefaultPointEntity"		"item_teamflag"

				"BSP"		"steampath\steamapps\Account\sourcesdk\bin\vbsp.exe"

				"Vis"		"steampath\steamapps\Account\sourcesdk\bin\vvis.exe"

				"Light"		"steampath\steamapps\Account\sourcesdk\bin\vrad.exe"

				"GameExeDir"		"steampath\steamapps\Account\team fortress 2"

				"MapDir"		"steampath\steamapps\Account\sourcesdk_content\tf\mapsrc"

				"BSPDir"		"steampath\steamapps\Account\team fortress 2\tf\maps"

				"CordonTexture"		"tools\toolsskybox"

				"MaterialExcludeCount"		"0"

			}

		}
You then create a new file "tf2.fgd" in the same folder with this text:
//====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======

//

// Purpose: TEAM FORTRESS 2 game definition file (.fgd) - beta release by HLPortal.de | e-freak

//

//=============================================================================


@include "base.fgd"


//-------------------------------------------------------------------------

//

// Base Classes

//

//-------------------------------------------------------------------------



@BaseClass = Target 

[ 

	target(target_destination) : "Target" 

]


@BaseClass = TeamNum

[

	TeamNum(choices) : "Team Number (int)" : 0 =

	[

		2 : "RED"

		3 : "BLU"

	]

	input SetTeam(integer) : "Changes the entity's team"

]


@FilterClass base(BaseFilter) size(-8 -8 -8, 8 8  = filter_activator_team :

	"A filter that filters by the team of the activator."

[

	filterteam(choices) : "Filter Team Number" : 2 : "The team number to filter by.  If the filter mode is Allow, only entities whose "+

		"team number matches the given team will pass the filter. If the filter mode is Disallow, "+

		"all entities EXCEPT those whose team number matches the given team will pass the filter." =

	[

		2 : "RED"

		3 : "BLU"

	]

]


//-------------------------------------------------------------------------

//

// Classes

//

//-------------------------------------------------------------------------


@SolidClass base(EnableDisable) = func_regenerate : "Regeneration Area"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can benefit?" =

	[

		0 : "Both"

		2 : "Red"

		3 : "Blu"

	]

	associatedmodel(string) : "Model used" : "insert" : "The Model (prop_dynamic) which shall do the animation"

]



@SolidClass base(EnableDisable) = func_capturezone : "CTF Capturezone"

[

	capturepoint(integer) : "Capturepoint Nr." : 1

	targetname(string) : "Target Name" : "capturezone_red" : "Give the capturezone a name to relate other entities to it"

	TeamNum(choices) : "Team relation" : 0 : "Which team does the capturezone belong to?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]


	output OnFlagCaptured(void) : "Send when Flag has been captured"

	output OnEnterZone(void) : "Send when entering the capturezone"


	add_timer_seconds(integer) : "Add To Timer (sec)" : 0 

]



@SolidClass base(EnableDisable) = func_respawnroomvisualizer : "TF2 Respawnroomvisualization"

[

	spawnflags(flags) =

	[

		1 : "vrad_brush_cast_shadows" : 0

		2 : "StartDisabled" : 0

		4 : "Solidity" : 1

		8 : "Rendermode" : 0

		16 : "disablereceiveshadows" : 0

		32 : "disableshadows" : 0

		64 : "InputFilter" : 0

	]


	respawnroomname(string) : "Respawnroom Name" : "respawnroom_red_round1" : "Give the Respawnroom a name to relate other entities to it"

	rendercolor(color255) : "Rendered Color" : :

	renderamt(integer) : "Renderamt" : 255 : "Integer-Value from 0 to 255 allowed"

	rendermode(integer) : "Rendermode" : 0

	renderfx(integer) : "Render-Effect" : 0

]



@SolidClass base(EnableDisable) = func_respawnroom : "Respawnroom"

[

	spawnflags(flags) =

	[

		1 : "StartDisabled" : 0

	]

	targetname(string) : "Target Name" : "respawnroom_red_round1" : "Give the Respawnroom a name to relate other entities to it"

	TeamNum(choices) : "Team relation" : 0 : "Which team does the capturezone belong to?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]

]



@SolidClass base(EnableDisable) = trigger_capture_area : "CP Capture Area"

[

	spawnflags(flags) =

	[

		1 : "StartDisabled" : 0

		2 : "team_cancap_3" : 1

		4 : "team_cancap_2" : 0

	]

	area_time_to_cap(integer) : "Capturetime" : 3 : "in Seconds"

	area_cap_point(string) : "CP Name" : "cap_red_1" : "Relation-Name"

	team_numcap_3(integer) : "Blu Players" : 1 : "Number of Blu-Players to capture or defend the Area"

	team_numcap_2(integer) : "Red Players" : 1 : "Number of Red-Players to capture or defend the Area"


	output OnCapTeam2(void) : "start_timer,AddTime,270,0.01,-1"

	output OnCapTeam2(void) : "sign_cap_1,Skin,2,0,-1"

	output OnCapTeam2(void) : "area1_camera,Disable,,0,-1"

	output OnCapTeam2(void) : "cap_1,Skin,2,0,-1"

]



@PointClass base(EnableDisable,Angles) = item_teamflag: "CTF Flag"

[

	spawnflags(flags) =

	[

		1 : "StartDisabled" : 0

		2 : "GameType" : 0

	]

	targetname(string) : "Target Name" : "flag_red" : "Give the Flag a name to relate other entities to it"

	TeamNum(choices) : "Team relation" : 0 : "Which team's Flag is it?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]

	model(studio) : "World Model" : "models/flag/briefcase.mdl"

	skin(integer) : "Skin" : 2 : "The model has multiple versions of its texture (related to the team). Change the number to fit the skin to the team."


	output OnFlagTaken(void) : "Send when Flag has been taken"

	output OnFlagDropped(void) : "Send when Flag has been dropped"

	output OnFlagReturned(void) : "Send when Flag has returned"


	input Skin(integer) : "Changes the model skin to the specified number."

]



@PointClass base(EnableDisable,Angles) = info_observer_point : "Observer Point"

[

	targetname(string) : "Target Name" : "obs_A" : "Give the Observer Point a name to relate other entities to it"

	associated_team_entity(string) : "Associated Entity" : "cp_A" : "Which Entity is this parent-related to?"

]



@PointClass base(EnableDisable,Angles) = info_player_teamspawn : "Player Spawn"

[

	spawnflags(flags) =

	[

		1 : "StartDisabled" : 0

	]


	targetname(string) : "Target Name" : "spawn_red_first" : "Give the Playerspawn a name to relate other entities to it"

	controlpoint(string) : "Related Controlpoint" : "cp_A" : "If the Spawn is Neutral and shell belong to the Controlpoint owning team, fill the CP' name in here"

	TeamNum(choices) : "Team relation" : 0 : "Which team does the Spawned player belong to?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]

	team_no(integer) : "Team Number" : 2

	round_redspawn(string) : "Red's turn" : "round_1" : "If your map is Round-based write in which round the Red-Team owns the spawn"

	round_bluespawn(string) : "Blu's turn" : "round_2" : "If your map is Round-based write in which round the Blu-Team owns the spawn"

	group_no(integer) : "Group Number" : 1 : "If teams shall be splitted in different groups (e.g. coop-map target reached) write here"

	goal_state(integer) : "Goal State" : 1 

	goal_result(integer) : "Goal Result" : 1

	goal_activation(integer) : "Goal Activation" : 1

	activate_goal_no(integer) : "Activate Goal" : 23 : "Activate a specific goal when spawning here"

]



@PointClass base(EnableDisable,Angles) = game_intro_viewpoint : "Intro Viewpoint"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team's players will see from this Viewpoint?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]

	time_delay(integer) : "Time Delay" : 10

	step_number(integer) : "Step Number" : 2

	hint_message(string) : "Hint Message" : "#Intro_capturepoints"

	event_to_fire(string) : "Press Fire" : "controlpoint_pulse_element"

	event_delay(integer) : "Event Delay" : 3

]



@PointClass base(EnableDisable) = team_control_point_round : "Control Point Round"

[

	targetname(string) : "Target Name" : "round1" : "Give a round-name to relate other entities to it"

	cpr_restrict_team_cap_win(choices) : "Team relation" : 0 : "Which team can't capture this point?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]

	cpr_priority(integer) : "CP Priority" : 100 "The priority determines the row in which the CPs have to be taken"

	cpr_cp_names(string) : "Names" :  "cap_red_1 cap_red_2"


	output OnWonByTeam2(void) : "cap1,Trigger,,12,-1"

]



@PointClass base(EnableDisable) = game_round_win : "Game win"

[

	spawnflags(flags) =

	[

		1 : "switch_teams" : 1

		2 : "force_map_reset" : 1

	]

	targetname(string) : "Target Name" : "round1" : "Give a Target to relate to"

	cpr_restrict_team_cap_win(choices) : "Team relation" : 0 : "Which team wins?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]


]



@PointClass base(EnableDisable) = team_round_timer : "Team Round Timer"

[

	spawnflags(flags) =

	[

		1 : "auto_countdown" : 1

		2 : "force_map_reset" : 1

		4 : "start_paused" : 0

		8 : "show_in_hud" : 1

	]

	targetname(string) : "Target Name" : "start timer" : "Give a Target to relate to"

	timer_length(integer) : "Timer length" : 100 : "in Seconds"

	cpr_cp_names(string) : "Names" :  "cap_red_1 cap_red_2"

	setup_length(integer) : "Length of Setup" : 30 : "How long is the setupphase"	


	output onfinished(void) : "end_of_game,RoundWin,,0,-1"

	output OnSetupFinished(void) : "relay_stage1_gates,Trigger,,0,-1"

	output OnSetupFinished(void) : "relay_stage2_gates,Trigger,,0,-1"

	output OnSetupFinished(void) : "relay_stage3_gates,Trigger,,0,-1"

	output On5MinRemain(void) : "5minutes_warning,PlaySound,,0,-1"

]



@PointClass base(EnableDisable) = filter_activator_tfteam : "Filter Team"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can't pass?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]

	targetname(string) : "Filter used" : "filter_blue_team" : "Related Triggerblock"

	Negated(string) : "Negation" : "Allow all entites that match criteria"

]



@PointClass base(EnableDisable) = team_control_point : "Team CP"

[

	spawnflags(flags) =

	[

		1 : "team_timedpoints_3" : 0

		2 : "team_timedpoints_2" : 0

		4 : "StartDisabled" : 0

	]

	team_previouspoint_3_0(string) : "Previous Blu CP" : "cap_red_1"

	team_previouspoint_2_0(string) : "Previous Red CP" : "cap_blu_1"

	team_model_3(studio) : "Blu CP Model" : "models/effects/cappoint_hologram.mdl"

	team_model_2(studio) : "Red CP Model" :"models/effects/cappoint_hologram.mdl"

	team_model_0(studio) : "Neutral CP Model" :"models/effects/cappoint_hologram.mdl"

	team_icon_3(material) : "Blu Obj Sprite" : "sprites/obj_icons/icon_obj_blu"

	team_icon_2(material) : "Red Obj Sprite" : "sprites/obj_icons/icon_obj_red"

	team_icon_0(material) : "Neutral Obj Sprite" : "sprites/obj_icons/icon_obj_neutral"

	team_bodygroup_3(integer) : "Bodygroup Blu" : 0

	team_bodygroup_2(integer) : "Bodygroup Red" : 1

	team_bodygroup_0(integer) : "Bodygroup Neutral" : 3

	targetname(string) : "CP Name" : "cap_red_1" : "Related CP"

	point_warn_sound(sound) : "CP Warning" : ControlPoint.CaptureWarn : "To be played sound when CP is under attack"

	point_printname(string): "Printed CP Name" : "#Dustbowl_cap_1_a"

	point_index(integer) : "CP Index Nr" : 1

	point_group(integer) : "CP Group" : 0

	point_default_owner(choices) : "Team relation" : 0 : "Which team holds the point by default?" =

	[

		0 : "Neutral"

		2 : "Red"

		3 : "Blu"

	]

]



@PointClass base(EnableDisable,Angles) = item_ammopack_small : "Small Ammo"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can benefit?" =

	[

		0 : "Both"

		2 : "Red"

		3 : "Blu"

	]

]



@PointClass base(EnableDisable,Angles) = item_ammopack_medium : "Medium Ammo"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can benefit?" =

	[

		0 : "Both"

		2 : "Red"

		3 : "Blu"

	]

]



@PointClass base(EnableDisable,Angles) = item_ammopack_full : "Full Ammo"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can benefit?" =

	[

		0 : "Both"

		2 : "Red"

		3 : "Blu"

	]

]



@PointClass base(EnableDisable,Angles) = item_healthkit_full : "Full Health"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can benefit?" =

	[

		0 : "Both"

		2 : "Red"

		3 : "Blu"

	]

]



@PointClass base(EnableDisable,Angles) = item_healthkit_medium : "Medium Health"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can benefit?" =

	[

		0 : "Both"

		2 : "Red"

		3 : "Blu"

	]

]



@PointClass base(EnableDisable,Angles) = item_healthkit_small : "Small Health"

[

	TeamNum(choices) : "Team relation" : 0 : "Which team can benefit?" =

	[

		0 : "Both"

		2 : "Red"

		3 : "Blu"

	]

][/code]






And finally, you have to change the GameInfo.txt in the folder \team fortress 2\tf from

[code] Game |all_source_engine_paths|hl2
to
			Game				|hl2

.

No warranty yet and please change your GameInfo.txt back to the former line before playing on a VAC Server (i'm not sure what it does!)

Link to comment
Share on other sites

noes - I have done all this for nothing? :shock:

none the less: I've updated the above post with the corrected version (should now work (i changed some lines before releasing it and it screwed all over)

Edit: I had a look at the "official" FGD and it looks like a leak or something but not as if valve would have wanted this to come out - there are even unreleased prefab parts of ep2 and portal in there o_O

Link to comment
Share on other sites

Have you ever seen 3d mike's VIP mod for counter-strike source?

Do you really think there won't be any chance for a Hunted Mod for TF2 IF! Valve doesn't plant it with a patch?

When I asked Torsten (Valve) at the GC about the maps he said what is obvious:

>>Valve has never left a game's maplist untouched after release.

You can be quite sure there will be new maps with the patches and I could imagine that these will bring multi-team support and/or the hunted.

Link to comment
Share on other sites

Hi there,

While I realize this isn't technically a support thread, it was the closest I could find to a TF2 mapping thread.

I've been fiddling with the source SDK in an attempt to get it to work with TF2, but I've had no luck so far. I can get Hammer to work just fine with standard HL2, but as soon as I create the TF2 game configuration, restart Hammer and try to load Hammer up with the TF2 config selected, it tells me it can't find any Steam Content Servers (see pic).

Now, I've triple checked everything, all the settings *should* be correct as far as I know. I've also tried restarting Steam, tried deleting clientregistry.blob and restarting steam, I've tried praying, nothing seems to work.

Any advice would be greatly appreciated!

errormsg.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...