$keyvalues: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
 Note:Since the values are arbitrary, studiomdl can't check that they are correct when it compiles the model.
Note:Since the values are arbitrary, studiomdl can't check that they are correct when it compiles the model.
		
	
| m (spam revert) | No edit summary | ||
| (24 intermediate revisions by 13 users not shown) | |||
| Line 1: | Line 1: | ||
| {{LanguageBar}} | |||
| {{this is a|QC command|name=$keyvalues}} It embeds a block of arbitrary [[keyvalue]]s into the .mdl file. | |||
| {{note|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 <code>modelinfo->GetModelKeyValueText(GetModel())</code> and the <code>[[KeyValues]]</code> class. | ||
| == Syntax == | |||
|  $keyvalues | |||
|  { | |||
|      ''keyvalue data'' | |||
|   } | |||
| == Common KeyValues == | |||
| See [[:Category:QC Keyvalues]] for a complete list. | |||
| ;<code>[[prop_data]]</code> | |||
| :Defines various properties for models for use in Valve's prop_* entities - usually {{ent|prop_physics}}. | |||
| ;<code>[[physgun_interactions]]</code> | |||
| :Defines any non-standard interactions with the [[Gravity Gun]]. | |||
| ;<code>[[Particles On Models|particles]]</code> | |||
| :Attaches [[:Category:Particle System|particles]]. | |||
| ; <code>[[prop_door_rotating#Custom Door Models|door_options]]</code> | |||
| : Configures the model for use with {{ent|prop_door_rotating}}. | |||
| ;<code>vehicle_entry</code> | |||
| :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 [[$hboxset|hitbox set]] called "entryboxes". | |||
| ;<code>vehicle_exit</code> | |||
| :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" ). | |||
| ;<code>vehicle_escape_exit</code> | |||
| :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. | |||
| ;<code>AddedAmbientScale <[[int]]></code> | |||
| :Softens the ambient lighting received by this model. Present in L4D2 infected. | |||
| == Example == | |||
|  $keyvalues | |||
|   { |   { | ||
|   	[[ |   	[[prop_data]] | ||
|   	{ |   	{ | ||
|   		base              Wooden.Small |   		base              Wooden.Small | ||
| Line 14: | Line 45: | ||
|   		explosive_radius  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" | |||
|   } | |||
|  } | |||
Latest revision as of 21:24, 18 July 2025
$keyvalues  is a   QC command  available in all  Source games. It embeds a block of arbitrary keyvalues into the .mdl file.
 Source games. It embeds a block of arbitrary keyvalues into the .mdl file.
 Note:Since the values are arbitrary, studiomdl can't check that they are correct when it compiles the model.
Note: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"
 }
}


























