This article's documentation is for anything that uses the Source engine. Click here for more information.

$keyvalues

From Valve Developer Community
Jump to navigation Jump to search

$keyvalues is a QC command available in all Source Source games. It embeds a block of arbitrary keyvalues into the .mdl file.

Note.pngNote:Since the values are arbitrary, studiomdl can't check that they are correct when it compiles the model.

Programmers can access the $keyvalues block with modelinfo->GetModelKeyValueText(GetModel()) and the KeyValues class.

Syntax

$keyvalues
{
    keyvalue data
}

Common KeyValues

See Category:QC Keyvalues for a complete list.

prop_data
Defines various properties for models for use in Valve's prop_* entities - usually prop_physics.
physgun_interactions
Defines any non-standard interactions with the Gravity Gun.
particles
Attaches particles.
door_options
Configures the model for use with prop_door_rotating.
vehicle_entry
Positions where the player will enter into a vehicle, where the player's camera will blend into the vehicle's camera position ( eyes ). It is defined by attachments with a number to indicate the hitbox group, set previously on any hitbox within a hitbox set called "entryboxes".
vehicle_exit
Positions where the player will exit from a vehicle. Defined by the name of an attachment and if is intended to be used while the vehicle is upright ( "upright" ) or upside down ( "upsidedown" ).
vehicle_escape_exit
Positions where the player will exit from a vehicle in case there are problems ( underwater, upside down, other events... ). Same definitions as in vehicle_exit.
AddedAmbientScale <int>
Softens the ambient lighting received by this model. Present in L4D2 infected.

Example

$keyvalues
{
	prop_data
	{
		base              Wooden.Small
		dmg.bullets       0
		explosive_damage  100
		explosive_radius  100
	}
	physgun_interactions
	{
		onfirstimpact 	break
		onfirstimpact 	paintsplat
		onlaunch 	spin_zaxis
		onbreak 	explode_fire
	}

	// hud_name has been made up as an example of a one-dimensional custom KV.
	// (If you were being picky, you might point out that it ought to be localised ...)

	hud_name "Rubber chicken with a pulley in the middle"
}


$keyvalues
{
 vehicle_entry
 {
  "enter1" "1"
  "enter2" "2"
  "enter3" "3"
  "enter4" "1"
  "enter5" "2"
  "enter6" "3"
  "enter7" "1"
 }
 vehicle_exit
 {
  "exit3" "upright"
  "exit4" "upright"
  "exit6" "upsidedown"
 }
 vehicle_escape_exit
 {
  "exit1" "upright"
  "exit2" "upright"
  "exit5" "upsidedown"
  "exit7" "upright"
  "exit8" "upsidedown"
 }
}