User:Popcorn: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Unicodifying, replaced: [[Image: → [[File:, See Also → See also)
No edit summary
Line 1: Line 1:
[[File:csgo weapon smokegrenade.png|256px|thumb|right|Bald ist die Luft raus]]
<onlyinclude>{{#switch:{{{1|tabs}}}|
 
| tabs =<div style="display:flex; gap:.5em; border-bottom:1px dashed rgba(255,255,255,.5); margin:2em 0"><!--
--><div style="border:1px solid rgba(255,255,255,.5); border-bottom:0; border-top-left-radius:.5em; border-top-right-radius:.5em; padding:0 .5em">[[User:Popcorn]]</div><!--
--><div style="border:1px solid rgba(255,255,255,.5); border-bottom:0; border-top-left-radius:.5em; border-top-right-radius:.5em; padding:0 .5em">[[User talk:Popcorn]]</div><!--
--></div>
 
| delisted=<div style="display:flex; align-items:center; gap:1em; font-size: 12px; background: linear-gradient(90deg, rgb(255,255,255,.1) 0%, transparent 100%); padding:.5em; border-left: 2px solid rgb(255,255,255); padding-left: 1em;">
  <div>[[file:Icon-delisted.png|link=|32px]]</div>
  <div>'''This page documents information about a game, {{csgo|4}}, that is no longer available for purchase or download digitally.'''<br/>It is covered here for historical and technical reference but it is no longer useful for anyone.</div>
</div>
 
|Yes = style{{=}}"text-align:center; background:rgba(128,255,128,.2)"{{!}} {{{2|Yes}}}
|No  = style{{=}}"text-align:center; background:rgba(255,128,128,.2)"{{!}} {{{2|No}}}
|NA  = style{{=}}"text-align:center; background:rgba(255,255,128,.2)"{{!}} {{{2|N/A}}}
 
|key = <span style="border: 2px outset #000; border-radius:.3em; background: #161616; margin:0 .2em; padding: .2em .4em; color:#fff">'''{{{2|?}}}'''</span>
 
| #default = <span style=color:red>who is that "{{{1}}}"?</span>
}}</onlyinclude><!--
 
 
 
  actual page:
 
-->{{Background|file=Csgo guardian bounds 01.jpg|opacity=0.1}}<!--
--><div style="float:right; margin:2em"><!--
--><div>[[File:csgo map update ui.jpg|400px|link=]]</div><!--
--><div style="margin-top:-250px">[[File:csgo weapon fists.png|400px|link=]]</div><!--
--></div><!--
-->{{User:Popcorn|delisted}}
{{ent not in fgd|nolink=1|because=he might not like that}}
{{ent not in fgd|nolink=1|because=he might not like that}}
{{csgo}} <tt>popcorn</tt> is an [[:Category:internal entities|internal]] [[point entity]] available in {{csgo|3}}.
<tt>popcorn</tt> is an [[:Category:internal entities|internal]] [[point entity]] available in <s>{{csgo|4}}</s> {{portal2|4}}.


==Entity Description==
==Entity Description==
Line 11: Line 41:


This entity is able to materialize:
This entity is able to materialize:
{| class="standard-table"
{| style="margin:1em 0; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.20)"
|- style="background:rgba(255,255,255,.12)"
! width="64px"  | Image
! width="64px"  | Image
! width="100px" | Name
! width="100px" | Name
! width="75px"  | Visible if <br /> [[world brush]]
! width="75px"  | Visible if<br>[[world brush]]
! width="75px"  | Casts shadows
! width="75px"  | Casts shadows
! width="75px"  | Cuts <br /> [[visleaf|VIS leaves]]
! width="75px"  | Cuts<br>[[visleaf|VIS leaves]]
! width="75px"  | Blocks NPC [[LOS]]
! width="75px"  | Blocks NPC [[LOS]]
! width="75px"  | Solid to NPCs
! width="75px"  | Solid to NPCs
Line 22: Line 53:
! width="75px"  | Solid to physics
! width="75px"  | Solid to physics
! width="75px"  | Solid to bullets
! width="75px"  | Solid to bullets
! Usage
! width="200px" | Usage
|-
|-
| [[File:Toolsdynamicdifficulty.jpg]]
| [[File:Toolsdynamicdifficulty.jpg]]
| '''popcorn'''
| '''popcorn'''
| {{N/A}}
| {{User:Popcorn|NA}}
| {{Yes}}
| {{User:Popcorn|Yes}}
| {{No}}
| {{User:Popcorn|No}}
| {{No}}
| {{User:Popcorn|No}}
| {{Yes}}
| {{User:Popcorn|Yes|NPCs are solid to each other}}
| {{Yes}}
| {{User:Popcorn|Yes}}
| {{Yes}}
| {{User:Popcorn|Yes}}
| {{Yes|Yes, sadly}}
| {{User:Popcorn|Yes|Yes, sadly}}
| You don't.
| style="text-align:center"| {{User:Popcorn|key|E}}
|}
|}


{|
{| cellspacing=10 cellpadding=10
|- style=vertical-align:top
|- style="vertical-align:top; background:rgba(255,255,255,.02)"
|
|width=40%|
==KeyValues==
==KeyValues==
{| class="mw-collapsible mw-collapsed" width="100%" style="background: none"
|+ style="text-align:left; font-weight:bold"|
|
{{KV|Age|intn=age|integer|The age of this entity. Higher values cause the entity to have less time; Lower values cause it to have less experience.}}
{{KV|Age|intn=age|integer|The age of this entity. Higher values cause the entity to have less time; Lower values cause it to have less experience.}}
{{KV|Activity|intn=activity|choices|This entity's current activity.
{{KV|Activity|intn=activity|choices|This entity's current activity.
Line 56: Line 84:
{{KV|Entity Scripts|scriptlist|intn=vscripts|Space delimited list of [[VScript]] files (without file extension) that are executed in this entity's mind after all entities have spawned.|since={{l4d2}}}}
{{KV|Entity Scripts|scriptlist|intn=vscripts|Space delimited list of [[VScript]] files (without file extension) that are executed in this entity's mind after all entities have spawned.|since={{l4d2}}}}
{{KV|Script think function|string|intn=thinkfunction|Name of a function in this entity's mind which will be called automatically every 100 milliseconds (ten times a second) for the duration of its life. It can be used to create timers or to simulate autonomous behavior. {{note|Try to avoid expensive operations in this function, as it may cause performance problems.}}|since={{l4d2}}}}
{{KV|Script think function|string|intn=thinkfunction|Name of a function in this entity's mind which will be called automatically every 100 milliseconds (ten times a second) for the duration of its life. It can be used to create timers or to simulate autonomous behavior. {{note|Try to avoid expensive operations in this function, as it may cause performance problems.}}|since={{l4d2}}}}
|}
 
|
|width=20%|
==Flags==
==Flags==
{| class="mw-collapsible mw-collapsed" width="100%" style="background: none"
|+ style="text-align:left; font-weight:bold"|
|
{{Fl|1|{{de}}}}
{{Fl|1|{{de}}}}
{{Fl|2|{{en}}}}
{{Fl|2|{{en}}}}
Line 69: Line 94:
{{Fl|65536|Knows what 2<sup>16</sup> yields}}
{{Fl|65536|Knows what 2<sup>16</sup> yields}}


|}
|width=20%|
|
==Inputs==
==Inputs==
{| class="mw-collapsible mw-collapsed" width="100%" style="background: none"
|+ style="text-align:left; font-weight:bold"|
|
{{I EnableDisable}}
{{I EnableDisable}}
{{IO|Wake|Wakes this entity up. This process can take a while or even fail.}}
{{IO|Wake|Wakes this entity up. This process can take a while or even fail.}}
Line 80: Line 101:
{{IO|Trigger|nofgd=1|deprecated=1|Triggers this entity, possibly causing a game crash.}}
{{IO|Trigger|nofgd=1|deprecated=1|Triggers this entity, possibly causing a game crash.}}


|}
|width=20%|
|
 
==Outputs==
==Outputs==
{| class="mw-collapsible mw-collapsed" width="100%" style="background: none"
{{IO|OnFunny|Fired when this entity tries to be funny or when their game gets delisted.}}
|+ style="text-align:left; font-weight:bold"|
|
{{IO|OnFunny|Fired when this entity tries to be funny.}}
{{IO|RUUUHEEEE|only=CSGO|Fired when the last is B.}}
{{IO|RUUUHEEEE|only=CSGO|Fired when the last is B.}}
<div style="max-height:5pt">OnFunny</div>
<div style="line-height:5pt"> OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny<br>OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
 
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
<div style="max-height:5pt">OnFunny</div>
|}
|}
|}
== See also ==
== See also ==
Line 177: Line 156:


{{expand|
{{expand|
{{User:Popcorn|delisted}}
Making a map in CS:GO is a complicated and versatile task. For my recent maps, it consisted of the following points that I never managed to get in a specific order, instead jumping from any point to another. In other words, I'm writing the following to have some kind of to-do-list for a map (and I'll never use it). But isn't it exciting: Many of these bullet points are topics for themselves.
Making a map in CS:GO is a complicated and versatile task. For my recent maps, it consisted of the following points that I never managed to get in a specific order, instead jumping from any point to another. In other words, I'm writing the following to have some kind of to-do-list for a map (and I'll never use it). But isn't it exciting: Many of these bullet points are topics for themselves.
2024-01-30: Good memories, it was fun. It is a blessing that the knowledge isn't lost but can be applied to other sorse games, fortunately. It seems they had a good thought there by reusing an engine for multiple games. :)


;In Hammer
;In Hammer
Line 187: Line 169:
:* Construct floors, rooms and major details using nodraw, dev textures or textures that definitely will be on specific brushes.
:* Construct floors, rooms and major details using nodraw, dev textures or textures that definitely will be on specific brushes.
:** Test the feel of the scale and angles in-game fast using [[mat_fullbright]] and [[r_colorstaticprops]].
:** Test the feel of the scale and angles in-game fast using [[mat_fullbright]] and [[r_colorstaticprops]].
:* Add minor details such as [[prop_static]]s, [[info_overlay]]s, [[decals]], [[env_sprite]]s, [[env_smokestack]]s, [[move_rope]]s.
:* Add minor details such as [[prop_static]]s, [[info_overlay]]s, [[decals]], [[env_smokestack]]s, [[move_rope]]s. Add (looping) [[ambient_generic]]s unless they can be moved to a soundscape.
:* Add a [[light_environment]] and [[light]]s. If the map is too dark, the light_environment's ambient can be turned up.
:* Add a [[light_environment]] and [[light]]s. If the outside is bright but feels weirdly dark, it may be the contrast; turn up the light_environment's ambient's brightness. For the inside, I prefer linear lights. Quadratic brings a lot of contrast, constant is expensive and hard to predict, but they're worth trying. On a lamp, one may use [[env_sprite]], [[point_spotlight]], [[func_dustmotes]].
:* Add [[hint]] brushes and [[func_areaportal]]s and test them with [[mat_wireframe]].
:* Add [[hint]] brushes and [[func_areaportal]]s and test them with [[mat_wireframe]].
:* Add an [[info_map_parameters/Counter-Strike_series|info_map_parameters]].
:* Add an [[info_map_parameters/Counter-Strike_series|info_map_parameters]].
Line 208: Line 190:
:* Generate/improve/update the [[Nav Mesh Editing|navigation mesh]].
:* Generate/improve/update the [[Nav Mesh Editing|navigation mesh]].
::* After nav_generating, do a mass edit on [[Nav Mesh Editing#Base_attributes|attributes]]: <code>nav_select_radius 999999; nav_(mark{{!}}clear)_attribute (NO_JUMP{{!}}STAND{{!}}JUMP);</code>
::* After nav_generating, do a mass edit on [[Nav Mesh Editing#Base_attributes|attributes]]: <code>nav_select_radius 999999; nav_(mark{{!}}clear)_attribute (NO_JUMP{{!}}STAND{{!}}JUMP);</code>
::* Add missing areas and connections, create ladders, remove NO_JUMP where needed. When done, do [[nav_analyze]]!
::* Add missing areas and (dropdown-)connections, create ladders, remove NO_JUMP where needed, delete those impertinent jump areas on the sides of stairs. When done, do [[nav_analyze]]!
::* Guide a bot through tricky sections of the map, <code>bot_zombie 1; bot_goto_selected;</code>, use PRECISE and STOP or even [[Tool textures (Source)#npcclip|NPC clip]].
::* Guide a bot through tricky sections of the map, <code>bot_zombie 1; bot_goto_selected;</code>, use PRECISE and STOP or even [[Tool textures (Source)#npcclip|NPC clip]].
::* Add [[Nav Mesh Editing#Place names .28callouts.29|Place Names]].
::* Add [[Nav Mesh Editing#Place names .28callouts.29|Place Names]].
Line 214: Line 196:
:* Find good [[HDR Lighting Settings]]: Add an [[env_tonemap_controller]] and find good HDR settings in-game using <tt>ent_fire env_tonemap_controller Set... X"</tt> and transfer those settings to the entity in Hammer using a [[logic_auto]].
:* Find good [[HDR Lighting Settings]]: Add an [[env_tonemap_controller]] and find good HDR settings in-game using <tt>ent_fire env_tonemap_controller Set... X"</tt> and transfer those settings to the entity in Hammer using a [[logic_auto]].
:* Add a [[postprocess_controller]] in the same manner.
:* Add a [[postprocess_controller]] in the same manner.
:* Find screenshot positions and save them using [[getpos]].
:* Find screenshot positions and save them using [[getpos]]. Probably good to do in spectator mode due to player origin vs. player eye height problems.


;Outside Hammer
;Outside Hammer
:* Add a [[TAR|radar image]].
:* Add a radar image using [[TAR]] by adding floor brushes etc. to a [[visgroup]]. Correct the T-spawn/CT-spawn icon locations in the radar file, e.g. by opening the image, scaling it to 10<sup>n</sup>&times;10<sup>n</sup> px, moving the cursor to the desired location and transferring the cursor coordinate (and not saving the image).
:* Choose [[Choosing Player Models|player models]].
:* Choose [[Choosing Player Models|player models]].
:* Add a [[mapname.txt]].
:* Add a [[mapname.txt]].
:* Use [[AutoBSPpackingTool]] to pack stuff. In all VScripts and CFGs, always reference other files with their extension (<tt>IncludeScript("<vscript>.nut"), exec "<cfgname>.cfg"</tt>) unless they should not be packed.
:* Use [[AutoBSPpackingTool]] to pack stuff. In all VScripts and CFGs, always reference other files with their extension (<tt>IncludeScript("<vscript>.nut"), exec "<cfgname>.cfg"</tt>) unless they should not be packed.
}}
}}

Revision as of 20:10, 29 January 2024

Csgo guardian bounds 01.jpg
Csgo map update ui.jpg
Csgo weapon fists.png
Icon-delisted.png
This page documents information about a game, Counter-Strike: Global Offensive Counter-Strike: Global Offensive, that is no longer available for purchase or download digitally.
It is covered here for historical and technical reference but it is no longer useful for anyone.
Icon-NotInFGD.png
This entity is not in the FGD by default.
It should not be put directly in a map because he might not like that.

popcorn is an internal point entity available in Counter-Strike: Global Offensive Counter-Strike: Global Offensive Portal 2 Portal 2.

Entity Description

It is something between a player and a bot.

Warning.pngWarning:This entity is responsible for most game crashes!

To do:  What is its purpose?

Don't +use rapidly on this entity, it might +use you back.

This entity is able to materialize:

Image Name Visible if
world brush
Casts shadows Cuts
VIS leaves
Blocks NPC LOS Solid to NPCs Solid to player(s) Solid to physics Solid to bullets Usage
Toolsdynamicdifficulty.jpg popcorn N/A Yes No No NPCs are solid to each other Yes Yes Yes, sadly E

KeyValues

Age (age) <integer>
The age of this entity. Higher values cause the entity to have less time; Lower values cause it to have less experience.
Activity (activity) <choices>
This entity's current activity.
  • 0 : ACT_IDLE
  • 1 : ACT_WORK (unused)
  • 2 : ACT_WRITEVDCCONTENT
  • 3 : ACT_IDLEWHILEWRITINGVDCCONTENT
Start Disabled (StartDisabled) <boolean>
Stay dormant until activated (with the Enable input).
Start Asleep (StartAsleep) <boolean>
Stay asleep until woken up (with the Wake input).
Start Quarantined (StartQuarantined) <boolean> (in all games since {{The template {{HL:A}} is a candidate for deletion. Replace with {{hla}}.}}) !FGD
Stay in quarantine until quarantine ends (with the EndQuarantine input).
Entity Scripts (vscripts) <scriptlist> (in all games since Left 4 Dead 2)
Space delimited list of VScript files (without file extension) that are executed in this entity's mind after all entities have spawned.
Script think function (thinkfunction) <string> (in all games since Left 4 Dead 2)
Name of a function in this entity's mind which will be called automatically every 100 milliseconds (ten times a second) for the duration of its life. It can be used to create timers or to simulate autonomous behavior.
Note.pngNote:Try to avoid expensive operations in this function, as it may cause performance problems.

Flags

Deutsch : [1]
English : [2]
Français : [4]
Español : [8]
Knows what 212 yields : [4096]
Knows what 216 yields : [65536]

Inputs

EnableDisable:

Enable / Disable
Enable/disable this entity from performing its task. It might also disappear from view.
Wake
Wakes this entity up. This process can take a while or even fail.
EndQuarantine  (in all games since {{The template {{HL:A}} is a candidate for deletion. Replace with {{hla}}.}}) !FGD
Allows this entity to move around freely.
Team Fortress 2 Only Medics can fire this input.
Left 4 DeadLeft 4 Dead 2 Does not work for infected.
Trigger  !FGD Obsolete
Deprecated.
Triggers this entity, possibly causing a game crash.

Outputs

OnFunny
Fired when this entity tries to be funny or when their game gets delisted.
RUUUHEEEE  (only in Counter-Strike: Global Offensive)
Fired when the last is B.
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny
OnFunny

See also

Ich habe eben ein Blatt gelocht, nur so am Rande.


If you ask me, this wiki is about

  • distributing useful or potentionally useful information about anything concerning Source
  • finding a way to represent information in a way that works

If you ask me, this wiki is not about

  • editing as much as you can (if there is something you want to present to others, you need one (1.0) edit, ideally)
  • details that literally 5 people will acknowledge at all (some color, singular/plural titles, ...)
  • seriously expecting others to do something (do it yourself)
  • starting edit wars
  • knowing everything better
  • discussing without listening
  • being impolite
  • thinking that these bullet points cover all corner cases (you're old enough)

I try my best to

  • keep my number of edits low (adding information, typos, layout, ...; you should of course weigh advantages and disadvantages of this practice - what convinces me is that it keeps the page history short)
  • not edit a page only to enforce my preference about whitespace, case, layout, color, ... (consistency is sufficient on a page, such edits just fill the history once more and never will everyone be alright with some style)
  • not spread a large template system that no one will ever be able to fix if I am no longer here (imagine I have to work some day)

I see this site as a collection of information that users and Valve employees have come up with (I mean this wiki has been internal for many years). This collection of information may be useful for someone else especially in terms of modding, mapping and any other creative work concerning Source.

To non-wiki editors: If you know something that isn't mentioned on this wiki, then add it at some good place. If you ask in the discussions and no one replies, then there is probably no one active (or you should think about what you've posted). Write new information as neutrally as you can and it will be ok. Note that all editors in the page's history might look at your edit. That's good if you're unsure of what you've written so they might be able to help investigate further. If you're lucky, no one is even going to read it because there are barely people reaching the small page you just edited. Anyway, when learning how to write wikitext that does something specific, don't worry, it just takes time and dedication to learn all you want; There are help pages, the real wiki's help pages and you can always view the source code of any existing wiki page that contains that thing you want.

To wiki editors: This is an old MediaWiki, not a modern site. There may be missing features but seriously, who needs them. This site isn't about copying the steam shop pages but still, there are people out here doing a great job for coming close to them (great experiments with a cool side effect in my eyes!). I wouldn't complain about anything that isn't perfect on this site. In fact, we should be thankful for all the content that anyone has brought up to this site - I like to think that if there's information/functionality missing then there's just no one who knows enough about it.

Thanks for your attention. I'm here since 2019 or so and slowly I started to understand what kind of pages exist and how the collaborative editing of this wiki works. I've never seen a toxic wiki editor of this kind before. Still I question why I write this text at all because the ones that would need to read this will never do so. I mean how do you want to talk with someone about the way they are if it doesn't work due to the way they are? And the best thing is if those call you a sorry person. Irony of fate. Whatever, I'm already wasting way too much time in this.


Icon-delisted.png
This page documents information about a game, Counter-Strike: Global Offensive Counter-Strike: Global Offensive, that is no longer available for purchase or download digitally.
It is covered here for historical and technical reference but it is no longer useful for anyone.

Making a map in CS:GO is a complicated and versatile task. For my recent maps, it consisted of the following points that I never managed to get in a specific order, instead jumping from any point to another. In other words, I'm writing the following to have some kind of to-do-list for a map (and I'll never use it). But isn't it exciting: Many of these bullet points are topics for themselves.

2024-01-30: Good memories, it was fun. It is a blessing that the knowledge isn't lost but can be applied to other sorse games, fortunately. It seems they had a good thought there by reusing an engine for multiple games. :)

In Hammer
In-game
  • After nav_generating, do a mass edit on attributes: nav_select_radius 999999; nav_(mark|clear)_attribute (NO_JUMP|STAND|JUMP);
  • Add missing areas and (dropdown-)connections, create ladders, remove NO_JUMP where needed, delete those impertinent jump areas on the sides of stairs. When done, do nav_analyze!
  • Guide a bot through tricky sections of the map, bot_zombie 1; bot_goto_selected;, use PRECISE and STOP or even NPC clip.
  • Add Place Names.
  • Add soundscapes. Use "origin" "%f, %f, %f" for positional playloopings.
  • Find good HDR Lighting Settings: Add an env_tonemap_controller and find good HDR settings in-game using ent_fire env_tonemap_controller Set... X" and transfer those settings to the entity in Hammer using a logic_auto.
  • Add a postprocess_controller in the same manner.
  • Find screenshot positions and save them using getpos. Probably good to do in spectator mode due to player origin vs. player eye height problems.
Outside Hammer
  • Add a radar image using TAR by adding floor brushes etc. to a visgroup. Correct the T-spawn/CT-spawn icon locations in the radar file, e.g. by opening the image, scaling it to 10n×10n px, moving the cursor to the desired location and transferring the cursor coordinate (and not saving the image).
  • Choose player models.
  • Add a mapname.txt.
  • Use AutoBSPpackingTool to pack stuff. In all VScripts and CFGs, always reference other files with their extension (IncludeScript("<vscript>.nut"), exec "<cfgname>.cfg") unless they should not be packed.