Entity Article Template: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Added a tip for Keyvalues in selected games.)
m (Split IO template links)
 
(29 intermediate revisions by 14 users not shown)
Line 1: Line 1:
<nowiki>{{DISPLAYTITLE:Entity Name}}</nowiki>
{{LanguageBar|title = Entity Article Template}}
<nowiki>{{{<game acronym> <point/brush>|<entity class name>}}}</nowiki>
{{Multiple issues|
{{Orphan|date=January 2024}}
{{Update|How a page as important as this is as out of date as it is in incomprehensible. Should be update as soon as possible. {{tl|lang}} and {{tl|entity}} are both out of date.}}
}}


{{tip|If the entity is available everywhere, use "base" as game acronym.}}
{{Back|Help:Page Creation}}
These are (optional) templates for the first text of an entity page. Find other useful templates at [[Help:Templates#Notice Templates]].
{{Note|1=The template that is marked with a character "<strong style="color: yellow; ">*</strong>" is required for the entity page.}}
{| class=wikitable
| <strong style="color: yellow; ">*</strong>{{Code|1=<nowiki>{{</nowiki>[[Template:This is a|This is a]]{{!}}<entity type>{{!}}name=<entity classname>{{!}}game=<full game name><nowiki>}}</nowiki>}}
| Creates a first sentence with a link to the game.
{{syntax2 |in=<nowiki>{{This is a|point entity|name=ammo_57mm|game=Counter-Strike: Source}}</nowiki>|out={{this is a|point entity|name=ammo_57mm|game=Counter-Strike: Source|nocat=1|notitlechange=1}}}}
{{tip|If the entity is ''available in all Source games'', don't use {{Code|style=1|{{Param|game}}}}. If available in multiple games, use {{Code|style=1|{{Param|game1}}}} (See [[Template:This is a|the documentation of the template]] for details).}}{{Note|See [[Template:This is a|the documentation of the template]] for the details of entity types.}}
|-
| {{T|LanguageBar}} || Adds the flags on the top right for language pages and adds this page to an appropriate language [[Help:Categories|Category]].
|-
| {{T|Distinguish|{{P|Other Page Name}}}} || Adds a note with a link to a page that this page should not be confused with.
|-
| {{T|Stub}} || Adds a notice and a category for incomplete pages.
|-
| {{T|Ent not in fgd}} || Adds a notice for entities that are not available in Hammer. Its text contains a link to a section "FGD Code" on the same page where code can be provided to make it available in Hammer. If it shouldn't add the parameter <code>nolink=1</code>. If the entity is available in Hammer but not in the game, use {{T|Ent not in game}}.
|}


== Entity description ==
== Entity Description ==
This should be a plainly-worded but accurate description of the basic function of the entity. A basic description for most entities is included in the help built into [[Hammer]].
This should be a plainly-worded but accurate description of the basic function of the entity. A very basic description for most entities is included in the help built into {{Hammer|1}}. If the description isn't overly long, omit the header and put it at the top with the first sentence on the page.


For an NPC's inputs, outputs etc. the [[Npc_sniper|npc_sniper]] article could be handy. Many of the details seem the same for different NPCs, so it could save typing.
[[.fgd|FGDs]] (and by extension the Hammer properties window) are good sources for information on an entity's keyvalues, inputs, outputs, and flags, however FGDs often will not list ''everything'' available for an entity. Because of this, the wiki uses a mix of [[Help:Templates|templates]] that roughly follow the engine's class hierarchy and ones that follow FGDs.


The information for the entity Keys, Outputs, and Inputs can be found inside the Hammer entity help, or in the [[FGD]]. Flag names can only be found in the [[FGD]].
Also include [[:Template:Code class]]:
{{Syntax2
| in = {{T|Code class|{{P|CEntityClass}}{{P|entityfile}}}}
| out = {{Code class|CEntityClass|entityfile}}
}}
The entity's code class name can be found by searching <code>LINK_ENTITY_TO_CLASS</code> in the CPP file defining it.


== Dedicated Console Variables - omit if none exist ==
== Dedicated Console Variables and Commands (omit if none exist) ==
; cvar_name <data type>
Console variables and commands can be found by searching <code>ConVar</code> and <code>ConCommand</code> in the CPP file that defines the entity. Note a parameter if any exist.
: Omittable Description
;cvar_name <data type>
; sk_barney_health <integer>
:Description.
: Barney's spawn health
;sk_barney_health <integer>
:Barney's spawn health.


== Keyvalues - omit if none exist ==
== Flags (omit if none exist) ==
{{tip|See [[:Category:Keyvalue Templates]] for a list of available templates.}}
{{Tip|See [[:Category:Flag Templates]] for a list of available templates.}}
{{KV|Keyvalue Name|vartype|A description of the Keyvalue.}}
For each flag, write one of the following.
{{KV|Brightness|color255|The color of the spotlight cone.}}


=== {{Game link|Half-Life 2}} ===
{{T|Fl|{{P|<integer>}}{{P|<flag name>}}}}
{{tip| Use <nowiki>=== {{Game link|Game Name}} ===</nowiki> to sort Keyvalues that exist only in selected games.}}
{{KV Targetname}}
{{KV Parentname}}
{{KV Angles}}
{{KV DXLevelChoice}}


== Flags - omit if none exist ==
{{T|Fl|{{P|<integer>}}{{P|<flag name>}}{{P|<description>}}}}
{{tip|See [[:Category:Flag Templates]] for a list of available templates.}}


* Integer value : Flag Name
Which could look like this:
: Omissible description
{{Fl|Integer value|Flag Name|Description if necessary.}}
* Integer value : Flag Name
{{Fl|16|Start Silent|The map will start without this sound playing. Enabled by default.}}
: Omissible description


== Inputs - omit if none exist ==
== Keyvalues ==
{{tip|See [[:Category:Input Templates]] for a list of available templates.}}
Since every entity inherits {{ent|CBaseEntity}}, all entity pages should have [[:Template:KV BaseEntity]] if not more. The only exceptions are [[:Category:Internal entities|internal entities]], which are removed during the compiling of a map and cannot receive I/O and most base keyvalues. This all applies to inputs and outputs as well.


{{IO|Input Name|A description of the Input.|param=vartype}}
Individual keyvalues are defined with [[:Template:KV]].
{{IO|SetSpeed|Set the speed of the train, as a ratio of max speed [0, 1]|param=float}}
{{Tip|See [[:Category:Keyvalue Templates]] for a list of available templates.}}
{{I Targetname}}
{{KV|Keyvalue Name|intn=non-SmartEdit name)|vartype|A description of the keyvalue.}}
{{I Parentname}}
{{KV|Render Amount|intn=renderamt|integer|Transparency amount, requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible.}}


== Outputs - omit if none exist ==
==Inputs==
{{tip|See [[:Category:Output Templates]] for a list of available templates.}}
Individual inputs are defined with [[:Template:I]]
{{Tip|See [[:Category:Input Templates]] for a list of available templates.}}


{{IO|Output Name|A description of the Input.}}
{{I|InputName|A description of the input.|param=optional vartype}}
{{IO|OnPressed|Fired when the button is pressed.}}
{{I|SetSpeed|Set the speed of the train, as a ratio of max speed [0, 1]|param=float}}
{{O Targetname}}


== See also ==
==Outputs==
{{note|Add links to related articles, entities, or tutorials here.}}
Individual outputs are defined with [[:Template:O]]
{{Tip|See [[:Category:Output Templates]] for a list of available templates.}}


* [[Assaults]] - appropriate links to tutorials, related articles and entities etc.
{{O|OutputName|A description of the output.}}
* [[ambient_generic]]
{{O|OnPressed|Fired when the button is pressed.}}
 
==See also==
{{Todo|Add links to related articles, entities, or tutorials here.}}
 
*[[Assault]]s
*{{ent|ambient_generic}}


[[Category:Entities]]
[[Category:Entities]]

Latest revision as of 15:16, 21 April 2025

English (en)Translate (Translate)
Wikipedia - Letter.png
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
Broom icon.png
This article or section needs to be updated to include current information regarding the subject because:
How a page as important as this is as out of date as it is in incomprehensible. Should be update as soon as possible. {{lang}} and {{entity}} are both out of date.
Remember to check for any notes left by the tagger at this article's talk page.
Help:Page Creation

These are (optional) templates for the first text of an entity page. Find other useful templates at Help:Templates#Notice Templates.

Note.pngNote:The template that is marked with a character "*" is required for the entity page.
*{{This is a|<entity type>|name=<entity classname>|game=<full game name>}} Creates a first sentence with a link to the game.
 
 Example {{This is a|point entity|name=ammo_57mm|game=Counter-Strike: Source}} 
   Results ammo_57mm is a point entity available in Counter-Strike: Source Counter-Strike: Source.
Tip.pngTip:If the entity is available in all Source games, don't use {{{game}}}. If available in multiple games, use {{{game1}}} (See the documentation of the template for details).
Note.pngNote:See the documentation of the template for the details of entity types.
{{LanguageBar}} Adds the flags on the top right for language pages and adds this page to an appropriate language Category.
{{Distinguish|Other Page Name}} Adds a note with a link to a page that this page should not be confused with.
{{Stub}} Adds a notice and a category for incomplete pages.
{{Ent not in fgd}} Adds a notice for entities that are not available in Hammer. Its text contains a link to a section "FGD Code" on the same page where code can be provided to make it available in Hammer. If it shouldn't add the parameter nolink=1. If the entity is available in Hammer but not in the game, use {{Ent not in game}}.

Entity Description

This should be a plainly-worded but accurate description of the basic function of the entity. A very basic description for most entities is included in the help built into Hammer. If the description isn't overly long, omit the header and put it at the top with the first sentence on the page.

FGDs (and by extension the Hammer properties window) are good sources for information on an entity's keyvalues, inputs, outputs, and flags, however FGDs often will not list everything available for an entity. Because of this, the wiki uses a mix of templates that roughly follow the engine's class hierarchy and ones that follow FGDs.

Also include Template:Code class:

 
 Example {{Code class|CEntityClass|entityfile}} 
   Results
C++ In code, it is represented by theCEntityClassclass, defined in theentityfilefile.

The entity's code class name can be found by searching LINK_ENTITY_TO_CLASS in the CPP file defining it.

Dedicated Console Variables and Commands (omit if none exist)

Console variables and commands can be found by searching ConVar and ConCommand in the CPP file that defines the entity. Note a parameter if any exist.

cvar_name
Description.
sk_barney_health <integer>
Barney's spawn health.

Flags (omit if none exist)

Tip.pngTip:See Category:Flag Templates for a list of available templates.

For each flag, write one of the following.

{{Fl|<integer>|<flag name>}}

{{Fl|<integer>|<flag name>|<description>}}

Which could look like this:

Flag Name : [Integer value]
Description if necessary.
Start Silent : [16]
The map will start without this sound playing. Enabled by default.

Keyvalues

Since every entity inherits CBaseEntity, all entity pages should have Template:KV BaseEntity if not more. The only exceptions are internal entities, which are removed during the compiling of a map and cannot receive I/O and most base keyvalues. This all applies to inputs and outputs as well.

Individual keyvalues are defined with Template:KV.

Tip.pngTip:See Category:Keyvalue Templates for a list of available templates.
Keyvalue Name (non-SmartEdit name)) <vartype>
A description of the keyvalue.
Render Amount (renderamt) <integer>
Transparency amount, requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible.

Inputs

Individual inputs are defined with Template:I

Tip.pngTip:See Category:Input Templates for a list of available templates.


InputName <optional vartype>
A description of the input.
SetSpeed <floatRedirectInput/float>
Set the speed of the train, as a ratio of max speed [0, 1]

Outputs

Individual outputs are defined with Template:O

Tip.pngTip:See Category:Output Templates for a list of available templates.


OutputName
A description of the output.
OnPressed
Fired when the button is pressed.

See also

Todo: Add links to related articles, entities, or tutorials here.