Skip to main content

Entity Page Info

Entity pages are automatically dumped from game FGD files using EntityPageTools.exe, they can be edited by adding an override file in the /fgd_dump_overrides folder.

Entity Page Overrides

Entity page overrides allow for editing of autogenerated pages in case of wrong/incomplete information, or if adding extra annotations is needed.

info

To make an entity override, you can add a new file in the /fgd_dump_overrides folder, the name of the file must follow one of the two conventions:

  • {entity_classname}.json for a global override for this entity in all games
  • {entity-classname}-{game_name}.json for a game specific override

Available game names are:

  • cs2 (for Counter-Strike 2)
  • hla (for Half-Life: Alyx)
  • dota2 (for Dota 2)
  • steamvr (for SteamVR Home)
tip

Global overrides are applied before game specific ones!

Entity Page Override Structure

Entity page overrides are JSON files which can override or add new page properties, inputs/outputs and annotations.

An example of a basic global entity override:

/fgd_dump_overrides/light_environment.json

{ 
"EntityType": "Point",
"Description": "Custom edit example.",
"IconPath": "fgd_dump/img/cs2/env_shake.png"
}

If you wanted to make it only apply to Counter-Strike 2 you would name the file light_environment-cs2.json

A complex override, this one will only apply to Counter-Strike 2:

/fgd_dump_overrides/light_environment-cs2.json

{ 
"EntityType": "Point",
"Description": "Custom edit example.",
"IconPath": "fgd_dump/img/cs2/env_shake.png",
"Legacy": "true",
"PageAnnotation":
{
"InternalName": "light_environment_annotation",
"Type": "info",
"Message": "Do not stare right into it."
},
"Properties":
[
{
"FriendlyName": "Keyvalue override example",
"InternalName": "bouncescale",
"VariableType": "Int",
"Description": "A test for overriding keyvalues in entity pages.",
"Options":
[
{
"Name": "option example",
"Description": "example of a keyvalue option"
}
],
"Annotations":
[
{
"InternalName": "light_environment_bouncescale_annotation",
"Type": "danger",
"Message": "Very dangerous."
}
]
}
],
"InputOutputs":
[
{
"Name": "InputExample",
"Description": "This is a new input.",
"VariableType": "String",
"Type": "Input"
},
{
"Name": "OnUser1",
"Description": "This is an overriden output.",
"VariableType": "String",
"Type": "Output"
}
]
}

Available Override Properties

A list of all the possible properties and classes that can be used in a page override:

EntityType <enum>

The type of the entity.

{ 
"EntityType": "Point"
}

Possible values:

  • Point
  • Mesh

Description <string>

The description of the entity.

{ 
"Description": "My Entity."
}

IconPath <string>

The path to a .png file for the entity icon, if you're adding a new icon, try to aim for a size of max 64x64.

{ 
"IconPath": "fgd_dump/img/cs2/env_shake.png"
}

Legacy <bool>

Marks this entity page as legacy, if an entity page is marked as legacy, the entire entity document is marked as legacy!

{ 
"Legacy": "true"
}

PageAnnotation <Annotation>

An annotation for adding extra info to the page.

{
"InternalName": "light_environment_annotation",
"Type": "info",
"Message": "Do not stare right into it."
}

See Annotation

Properties <PropertyList>

A list of properties.

{ 
"Properties":
[
]
}

Property <Property>

An entity property (kayvalue).

{
"FriendlyName": "Keyvalue override example",
"InternalName": "bouncescale",
"VariableType": "Int",
"Description": "A test for overriding keyvalues in entity pages.",
"Options":
[
{
"Name": "option example",
"Description": "example of a keyvalue option"
}
],
"Annotations":
[
{
"InternalName": "light_environment_bouncescale_annotation",
"Type": "danger",
"Message": "Very dangerous."
}
]
}

Property->InternalName <string>

The raw name of the property, the one that the game uses internally, when looking for properties to override this is also what they are matched against.
If this doesn't get matched the property is added as an extra.

{
"InternalName": "bouncescale",
}

Property->FriendlyName <string>

The friendly name of the property, the one that hammer will display in smart edit mode.

{
"FriendlyName": "Keyvalue override example",
}

Property->VariableType <VariableType>

The type of the property.

{
"VariableType": "Int",
}

See VariableType

Property->Description <string>

The description of the property.

{
"Description": "A test for overriding keyvalues in entity pages.",
}

Property->Options <OptionsList>

A list of property options.

{
"Options":
[
{
"Name": "option example",
"Description": "example of a keyvalue option"
}
],
}

Property->Option <Option>

A property option, these usually show up as a dropdown selection in hammer on a keyvalue.

{
"Name": "option example",
"Description": "example of a keyvalue option"
}

Property->Option->Name <string>

The name of the option, this is also used to match options when overriding.

{
"Name": "option example",
}

Property->Option->Description <string>

The description of the option.

{
"Description": "example of a keyvalue option"
}

Property->Annotations <AnnotationList>

A list of property annotations.

{
"Annotations":
[
{
"InternalName": "light_environment_bouncescale_annotation",
"Type": "danger",
"Message": "Very dangerous."
}
]
}

See Annotation

InputOutputs <InputOutputList>

A list of inputs and outputs.

{
"InputOutputs":
[
{
"Name": "InputExample",
"Description": "This is a new input.",
"VariableType": "String",
"Type": "Input"
},
{
"Name": "OnUser1",
"Description": "This is an overriden output.",
"VariableType": "String",
"Type": "Output"
}
]
}

InputOutput <InputOutput>

An input or output.

{
"Name": "InputExample",
"Description": "This is a new input.",
"VariableType": "String",
"Type": "Input"
},

InputOutput->Name <string>

The name of the input/output, this is also used to match inputs and outputs when overriding.

{
"Name": "InputExample",
},

InputOutput->Description <string>

The description of the input/output.

{
"Description": "This is a new input.",
},

InputOutput->VariableType <VariableType>

The type of the input/output.

{
"VariableType": "String",
}

See VariableType

InputOutput->Type <Type>

whether this is an input or an output.

{
"Type": "Input"
},

Possible values:

  • Input
  • Output

Annotation

An annotation.

{
"InternalName": "light_environment_annotation",
"Type": "info",
"Message": "Do not stare right into it."
}

Annotation->InternalName <string>

Only used internally by the override system, for example if two overrides exist in multiple files, they will use this name to match and override eachother.

{
"InternalName": "light_environment_annotation",
}

Annotation->Type <enum>

The type of the annotation.

{
"Type": "info",
}

Possible values:

  • note
  • tip
  • info
  • warning
  • danger
  • legacy

Annotation->Message <string>

The message of the annotation.

{
"Message": "Do not stare right into it.",
}

VariableType

Possible values:

  • Axis
  • Angle
  • AngleNegativePitch
  • Array
  • BodyGroupChoices
  • Bool
  • Boolean
  • Choices
  • Color255
  • Color1
  • Curve
  • Decal
  • FilterClass
  • Flags
  • Float
  • GameItemClass
  • GameUnitClass
  • InstanceFile
  • InstanceVariable
  • InstanceParm
  • Int
  • Integer
  • LocalAxis
  • LocalPoint
  • LodLevel
  • Material
  • MaterialGroup
  • ModelStateChoices
  • ModelAttachment
  • ModelBreakPiece
  • NodeDest
  • NodeId
  • NodeIdList
  • NPCClass
  • Origin
  • Other
  • ParentAttachment
  • ParticleSystem
  • PointEntityClass
  • RemoveKey
  • Resource
  • ResourceChoices
  • Scale
  • Scene
  • Script
  • ScriptList
  • Sequence
  • SideList
  • Sky
  • Sound
  • Sprite
  • String
  • Studio
  • SurfaceProperties
  • TagList
  • TagListDynamic
  • TargetDestination
  • TargetNameOrClass
  • TargetSource
  • TextBlock
  • Vecline
  • Vector
  • Void
  • WorldPoint
  • PropDataName
  • ModelBodyGroup
  • ModelClothEffect
  • ModelBone
  • ModelMorphChannel
  • VDataChoice
  • SubclassChoice
  • NPCAbilityName
  • PathNodeClass
  • Color255Alpha
  • ParticleCfg
  • ModelClothVertexMap
  • Kv3
  • Vector2d
  • PanoramaImage
  • Struct
  • AnimGraph
  • AnimGraphEnum
  • Cpp
  • CollisionProperty