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.
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)
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