Talk:List of base entities

From Valve Developer Community
Jump to: navigation, search

list of base.fgd entities ?

Am I right in assuming that this is a list of all entities described in the orangebox/bin/base.fgd ?

If so there seem to be quite a few missing ... there should be around 178 PointClass entities and 58 SolidClass (Brush) entities.

I'd be happy to help as long as I know what the plan is. --Beeswax 16:52, 26 Feb 2008 (PST)

  • NPC entities described in base.fgd = npc_puppet and npc_furniture. All others are in Halflife2.fgd.
  • No weapon_s or item_s are described in base.fgd. --Beeswax 21:07, 26 Feb 2008 (PST)
If that's true, I think this page should be deleted. It's irrelevant: if you need to know its contents, you already have the list open in a text editor in front of you! A list of C++ base entity classes though - that would be useful. --TomEdwards 00:52, 27 Feb 2008 (PST)
For the non-savvy user, the list on an .fgd file might be a little too frightening to skim through. I believe small, compact lists like these still help with that, if not only for the fact that they contain links to the entity pages. I wouldn't vote deleting unless it really serves no purpose at all. --Etset 03:11, 27 Feb 2008 (PST)
Why would a non-savvy user even need to skim through it? The contents of base.fgd are only relevant for people making new entities, and if you can read C++ the FGD language is hardly a challenge. Anyway, I'm not proposing a deletion but a re-purposing. :-) --TomEdwards 07:35, 27 Feb 2008 (PST)
Touché. Forget I ever spoke (or wrote...) :) I like lists ... ;) --Etset 14:44, 27 Feb 2008 (PST)
If I understand correctly, base.fgd entities are available to all Source games, whereas halflife2.fgd entities are not available to DOD:S and CS:S, and probably other mods aswell. In practice, this means that some pieces of documentation (I'm thinking especially of tutorial entity-methods) are only applicable to certain games. Usually game-dependence is, quite understandably, not documented by tutorial authors. Another issue is exemplified by a note on tanktrain_aitarget (a base.fgd entity) saying it is deprecated by ai_changetarget (a halflife2.fgd entity)... In some circumstances this could create confusion. IMO flagging each entity page with their fgd (template) would seem like a useful safety net. --Beeswax 16:27, 29 Feb 2008 (PST)
base.fgd entities : Distinguishing which entities are available in which games/mods would be useful for this VDC wiki, but also particularly for mod documentation projects. OK, not much fun for non-savvy browsing, but a useful reference nonetheless. --Beeswax 09:32, 27 Feb 2008 (PST)
Perhaps inline tags (eg {{fgd_base}} , {{fgd_halflife2}}, {{fgd_hl2mp}}, {{fgd_cstrike}}, {{fgd_dod}}, {{fgd_portal}}, {{fgd_tf}} etc) could be used to flag entity pages and simultaneously auto-populate categories for fgd base entities, fgd halflife2 entities, etc ? (A number of entity pages have already been 'flagged' using Template:Game-base and Template:Game). - again I'm happy to help but I'd like some assurance that I'm working within a sound conceptual framework :) --Beeswax 09:32, 27 Feb 2008 (PST)
eg Template:fgd_halflife2 =	
This entity is available in all [[Half-Life_2]]-based games.<includeonly>[[Category:FGD_Halflife2_Entities]]</includeonly>
eg Template:fgd_base =	+	
This entity is available in all [[Source]]-based games.<includeonly>[[Category:FGD_Base_Entities]]</includeonly>

Base Classes

I think we all agree that huge lists like Category:Entities are less helpful than shorter, well-categorised and explained 'glossary' indices such as filter (6), constraint (9) and the awesome assaults (3). My guess is that the entity baseclasses are a good place to start but I would expect some (legacy) exceptions. I would certainly appreciate advice on how to approach this from people who really know how certain groups of entities work together in practice, and/or have a deeper (eg C++ level) understanding of baseclasses than the fgd provides. --Beeswax 09:32, 27 Feb 2008 (PST)

Tom: Is a C++ base entity class the same as an fgd BaseClass? If so (there are 50 in base.fgd, and 18 in halflife2.fgd) I can help with that. --Beeswax 09:32, 27 Feb 2008 (PST)
There's no correlation. Base classes in C++ are things like CBaseEntity, which everything, ever, is derived from, and CBaseActor, CBaseToggle (a brush entity), and so on. In FGDs they're used for layering up common properties, inputs and outputs of entities - not the entities themselves. --TomEdwards 11:04, 27 Feb 2008 (PST)
Um. I was hoping that by sorting entity classnames into list/groups according to the fgd baseclasses they use, it would highlight common features, functionality and connections between entities, making the 'overview' clearer to the non-savvy browser. For example, a list of all entities with the "parentname" baseclass creates quite a good impression of the scope and function of the movement hierarchy system - at a glance. Does that sound like it might work ? Do you think that the C++ base classes would be a better angle to approach this laborious task ?--Beeswax 16:35, 27 Feb 2008 (PST)
I don't think anyone would ever need to use it for that purpose. Why not just learn the entities as you need them? --TomEdwards 07:59, 28 Feb 2008 (PST)
That's where I'm struggling! I'm thinking "I want to do such and such, now what do I need ?", not "what can I do with the few entities I'm familiar with ?" IMO there is not enough cross-referencing in the Entity pages, with the best will in the world, the Mediawiki wordsearch sucks, and the entity classname hierarchy is not always helpful, eg If you want a helicopter in your map you should be at least aware of npc_helicopter, npc_heli_avoidbox, npc_heli_avoidsphere, npc_heli_nobomb. An article explaining the ins and outs of BaseHelicopter Entities would cover tricks and tips common to using npc_helicopter, npc_combinegunship and npc_combinedropshipsuch as pointing to info_node_air, info_node_air_hint, etc. OK that's an easy example but there are more subtle ones. Entities appear, more often than not, to fall into family groups: eg I know I need a node for my nodegraph problem, but should I use an info_hint or info_node or another kind of node that I haven't come across yet ?. What I'm suggesting is some system for linking all these related elements together - and categories seems like an obvious place to start. I'm wondering if fgd baseclass system is the family tree that underlies those practical groupings. --Beeswax 14:26, 28 Feb 2008 (PST)
Make no mistake, I've nothing against the list. It's just using up a URL that could be put to better use. --TomEdwards 07:59, 28 Feb 2008 (PST)
Fair enough, but I don't think this URL lends itself to dealing with base classes (C++ or fgd!) - within the context of VDC entities refers specifically to game / map entities. IMO a list of Source Base Entities is significant, and so I've provided a (I hope!) complete one below. I shied away from simply overwriting the article! Actually as a side note, apart from the obviously missing (or wrongly titled?) entity pages, there were about half a dozen that are not included in the main Entities Category ... --Beeswax 14:33, 28 Feb 2008 (PST)
Huh. I must have been assuming that the name article was the same name as this thread's subheading. I'm going to go away now. --TomEdwards 11:02, 29 Feb 2008 (PST)
Reading back, it seems I was aware of the difference at first and all. Well...I've changed my mind since. :-p --TomEdwards 11:03, 29 Feb 2008 (PST)
LoL - no problem. I vote we delete this "Base Classes" section or move it somewhere else? --Beeswax 15:42, 29 Feb 2008 (PST)

complete list - alphabetical

Warning: Unless there are any objections I will update the article with this list.--Beeswax 21:28, 6 Apr 2008 (PDT)

This is a list of all the entities described in base.fgd.

This means that these entities are available to Day of Defeat: Source and Counter-Strike: Source as well as Half-Life 2-based games and mods.

Entities are listed in alphabetical order by classname, and those indented are brush-based entities.

  1. ai_speechfilter
  2. ambient_generic
  3. -- color_correction_volume //EP1?
  4. color_correction //EP1?
  5. cycler
  6. env_beam
  7. env_beverage
  8. env_blood
  9. -- env_bubbles
  10. env_credits
  11. env_cubemap
  12. env_dustpuff
  13. env_effectscript
  14. -- env_embers
  15. env_entity_igniter
  16. env_entity_maker
  17. env_explosion
  18. env_fade
  19. env_fire
  20. env_firesensor
  21. env_firesource
  22. env_fog_controller
  23. env_funnel
  24. env_hudhint
  25. env_laser
  26. env_lightglow
  27. env_message
  28. env_microphone
  29. env_particle_performance_monitor
  30. env_particlelight
  31. env_particlescript
  32. env_physexplosion
  33. env_physimpact
  34. env_player_surface_trigger
  35. env_projectedtexture //EP1?
  36. env_rotorshooter
  37. env_rotorwash_emitter //EP1?
  38. env_screeneffect //EP1?
  39. env_screenoverlay
  40. env_shake
  41. env_shooter
  42. env_smokestack
  43. env_smoketrail
  44. env_soundscape_proxy
  45. env_soundscape_triggerable
  46. env_soundscape
  47. env_spark
  48. env_splash
  49. env_splash
  50. env_sprite_oriented
  51. env_sprite
  52. env_spritetrail //EP1?
  53. env_steam
  54. env_sun
  55. env_texturetoggle
  56. env_tonemap_controller
  57. env_viewpunch //EP1?
  58. env_wind
  59. env_zoom
  60. filter_activator_class
  61. filter_activator_mass_greater //EP2?
  62. filter_activator_name
  63. filter_damage_type
  64. filter_enemy //EP1?
  65. filter_multi
  66. -- func_areaportal
  67. -- func_areaportalwindow
  68. -- func_breakable_surf
  69. -- func_breakable
  70. -- func_brush
  71. -- func_button
  72. -- func_clip_vphysics
  73. -- func_conveyor
  74. -- func_detail
  75. -- func_door_rotating
  76. -- func_door
  77. -- func_dustcloud
  78. -- func_dustmotes
  79. func_fish_pool
  80. -- func_guntarget
  81. -- func_illusionary // "Legacy support. Use func_brush instead."
  82. func_ladderendpoint
  83. -- func_lod
  84. -- func_movelinear
  85. -- func_occluder
  86. -- func_physbox
  87. -- func_platrot
  88. -- func_precipitation
  89. -- func_reflective_glass
  90. -- func_rot_button
  91. -- func_rotating
  92. -- func_smokevolume
  93. -- func_tanktrain
  94. -- func_trackautochange
  95. -- func_trackchange
  96. -- func_tracktrain
  97. -- func_traincontrols
  98. func_useableladder
  99. -- func_viscluster //EP2?
  100. -- func_wall_toggle //"Legacy support. Use func_brush instead."
  101. -- func_wall //"Legacy support. Use func_brush instead."
  102. -- func_water_analog
  103. -- func_water
  104. game_end
  105. game_gib_manager //EP1?
  106. game_player_equip
  107. game_player_team
  108. game_ragdoll_manager
  109. game_score
  110. game_text
  111. game_ui
  112. game_weapon_manager
  113. -- game_zone_player
  114. gibshooter
  115. hammer_updateignorelist //EP2?
  116. info_camera_link
  117. info_constraint_anchor
  118. info_hint
  119. info_intermission
  120. info_ladder_dismount
  121. info_landmark
  122. info_lighting
  123. info_mass_center
  124. info_no_dynamic_shadow
  125. info_node_air_hint
  126. info_node_air
  127. info_node_climb
  128. info_node_hint
  129. info_node_link_controller
  130. info_node_link
  131. info_node
  132. info_npc_spawn_destination
  133. info_null
  134. info_overlay_transition //EP1?
  135. info_overlay
  136. info_particle_system //EP2?
  137. info_player_start
  138. info_projecteddecal
  139. info_radial_link_controller //EP1?
  140. info_target
  141. info_teleport_destination //"Legacy support. Use info_target instead."
  142. infodecal
  143. light_dynamic
  144. light_environment
  145. light_spot
  146. light
  147. logic_active_autosave //EP2?
  148. logic_auto
  149. logic_autosave
  150. logic_branch_listener //EP1?
  151. logic_branch
  152. logic_case
  153. logic_collision_pair
  154. logic_compare
  155. logic_lineto
  156. logic_measure_movement
  157. logic_multicompare
  158. logic_navigation
  159. logic_playerproxy //EP1?
  160. logic_relay
  161. logic_timer
  162. material_modify_control
  163. math_colorblend
  164. math_counter
  165. math_remap
  166. -- momentary_rot_button
  167. npc_furniture
  168. npc_puppet
  169. npc_template_maker
  170. path_track
  171. phys_ballsocket
  172. phys_constraint
  173. phys_constraintsystem
  174. phys_convert
  175. phys_hinge
  176. phys_keepupright
  177. phys_lengthconstraint
  178. phys_magnet
  179. phys_motor
  180. phys_pulleyconstraint
  181. phys_ragdollconstraint
  182. phys_ragdollmagnet
  183. phys_slideconstraint
  184. phys_spring
  185. phys_thruster
  186. phys_torque
  187. physics_cannister
  188. point_anglesensor
  189. point_angularvelocitysensor
  190. point_bonusmaps_accessor
  191. point_clientcommand
  192. point_devshot_camera
  193. point_enable_motion_fixup
  194. point_gamestats_counter
  195. point_hurt
  196. point_message
  197. point_playermoveconstraint
  198. point_posecontroller //EP2?
  199. point_proximity_sensor
  200. point_servercommand
  201. point_spotlight
  202. point_teleport
  203. point_template
  204. point_tesla
  205. point_velocitysensor
  206. point_viewcontrol
  207. prop_detail
  208. prop_door_rotating
  209. prop_dynamic_ornament
  210. prop_dynamic_override
  211. prop_dynamic
  212. prop_physics_multiplayer
  213. prop_physics_override
  214. prop_physics
  215. prop_ragdoll
  216. prop_static
  217. shadow_control
  218. sky_camera
  219. tanktrain_ai
  220. tanktrain_aitarget //"Legacy support. Use ai_changetarget instead."
  221. test_traceline
  222. -- trigger_autosave
  223. -- trigger_changelevel
  224. -- trigger_gravity
  225. -- trigger_hurt
  226. -- trigger_impact
  227. -- trigger_look
  228. -- trigger_multiple
  229. -- trigger_once
  230. -- trigger_playermovement
  231. -- trigger_proximity
  232. -- trigger_push
  233. -- trigger_remove
  234. -- trigger_serverragdoll //EP1?
  235. -- trigger_soundscape
  236. -- trigger_teleport
  237. -- trigger_transition
  238. -- trigger_wind
  239. vgui_screen
  240. vgui_slideshow_display
  241. water_lod_control
  242. -- worldspawn

checksum n items (178@pointclass, 58@solidclass, 6@filterclass, 0@npcclass) by Beeswax 00:46, 7 Apr 2008 (PDT)