<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wolfire.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Edoantonioco</id>
	<title>Wolfire Games Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wolfire.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Edoantonioco"/>
	<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Special:Contributions/Edoantonioco"/>
	<updated>2026-05-04T21:00:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Portal:Receiver_2&amp;diff=6068</id>
		<title>Portal:Receiver 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Portal:Receiver_2&amp;diff=6068"/>
		<updated>2020-04-20T00:24:19Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: Created page with &amp;quot;Receiver 2 wiki&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Receiver 2 wiki&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6060</id>
		<title>Rain Weather Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6060"/>
		<updated>2019-10-26T23:22:03Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a total of four pieces that make up the rain weather effects that you see on a level like Tree Climb or Cave Arena.&lt;br /&gt;
&lt;br /&gt;
== Rain particle effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the falling rain drop particles.&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-particles2_small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Particles|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
== Stop rain in a certain area ==&lt;br /&gt;
&lt;br /&gt;
To do that you have to go to editor mode, click in Load, and then search for &#039;&#039;&#039;Particle Occluder Hotspot&#039;&#039;&#039;, and spawn it where you want rain to not have any effect.&lt;br /&gt;
&lt;br /&gt;
After that, in editor mode, press &amp;quot;Y&amp;quot; and go to Custom Shaders, here write &#039;&#039;&#039;&amp;lt;code&amp;gt;#GPU_PARTICLE_FIELD_OCCLUSION&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Take in mind using this Custom shader can affect performance a bit.&lt;br /&gt;
&lt;br /&gt;
== Water &amp;quot;rain splash&amp;quot; shader effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the shimmering water layer effect to all the objects in the world.&lt;br /&gt;
&lt;br /&gt;
[[File:Rainy-shader3-z-small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;, and it is &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; not &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Weather_Effects.2FWorld_Shaders|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
== Thunder and lightning hotspot ==&lt;br /&gt;
&lt;br /&gt;
This add the periodic light flashes and thunder clap sound (the ambient rain sound is separate, in case you want to have a lightning storm going on nearby, but no rain).&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-hotspot-lightning-effect.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-load-item.png|114px|thumb|&#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
To add this, use the &#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option:&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load item...&#039;&#039;&#039;&amp;lt;br&amp;gt;(this will open a new window to browse for files. It may be easier to do this step if you have the game in windowed mode)&lt;br /&gt;
# Browse to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Objects/Hotspots&amp;lt;/code&amp;gt;&#039;&#039;&#039; and select &#039;&#039;&#039;&amp;lt;code&amp;gt;rain.xml&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level.&lt;br /&gt;
&lt;br /&gt;
There are no parameters for this hotspot, so you don&#039;t have to change anything at this point.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: If you want to customize this effect, you&#039;re going to need to make your own copy of the script for that hotspot (&amp;lt;code&amp;gt;Data/Scripts/hotspots/rain.as&amp;lt;/code&amp;gt;) and edit that script.&amp;lt;br&amp;gt;Then copy the hotspot XML (&amp;lt;code&amp;gt;Data/Objects/Hotspots/rain.xml&amp;lt;/code&amp;gt;) and point it at your new script.&lt;br /&gt;
&lt;br /&gt;
== Ambient rain sound ==&lt;br /&gt;
&lt;br /&gt;
This adds the constant rain sound that you hear throughout the level.&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-sounds-ambient-sound.png|139px|thumb|&#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Sounds&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level&lt;br /&gt;
# Double click on the new object to select it&lt;br /&gt;
# Open the object properties: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Selected&#039;&#039;&#039; (or just press the &#039;&#039;&#039;&amp;lt;kbd&amp;gt;U&amp;lt;/kbd&amp;gt;&#039;&#039;&#039; key)&lt;br /&gt;
# Drill down to find the script params, and set these values:&lt;br /&gt;
&lt;br /&gt;
=== Values for Ambient sound hotspot ===&lt;br /&gt;
&lt;br /&gt;
[[File:Ambient-sound-rain-hotspot-settings.png|582px|thumb|Rain sound hotspot settings]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Sound Path&amp;lt;/code&amp;gt;&#039;&#039;&#039; - Set this to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Sounds/weather/rain.wav&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Gain&amp;lt;/code&amp;gt;&#039;&#039;&#039; - You might want to set it to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;&#039;&#039;&#039; or even lower. We set ours to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.57&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;&#039;&#039;&#039; - (default value of &#039;&#039;&#039;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&#039;&#039;&#039; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Max&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Min&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Fade Distance&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Wind Scale&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Hotspots&amp;diff=6059</id>
		<title>Hotspots</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Hotspots&amp;diff=6059"/>
		<updated>2019-10-26T23:21:25Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&#039;&#039;This Page doesn&#039;t cover creating self-made hotspots. To read about that, see [[Hotspot Scripting]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hotspots are objects that make things happen in the game in different ways. They can be used to make fire, water, kill boxes, objectives and much more.&lt;br /&gt;
&lt;br /&gt;
Several hotspots can be found in the top bar under &#039;&#039;Load → Hotspot&#039;&#039;, however not all hotspots can be found there. All hotspots can be found by going to &#039;&#039;Load → Load item...&#039;&#039; and browsing to &#039;&#039;../Overgrowth/Data/Objects/Hotspots/&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This page lists all hotspots available in the game and what their use is.&lt;br /&gt;
&lt;br /&gt;
== Hotspots ==&lt;br /&gt;
&lt;br /&gt;
=== activate_characters ===&lt;br /&gt;
When the player enters the hotspot some NPCs has their &#039;&#039;static&#039;&#039; flag set to false. This can be used to optimize a level by having enemies be &#039;&#039;static&#039;&#039; until the player gets close to them.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! characters&lt;br /&gt;
| list of ints || A space-delimited list of IDs of characters which should have their &#039;&#039;static&#039;&#039; flag set to false when the player enters the hotspot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example: 5124 423 566&lt;br /&gt;
&lt;br /&gt;
=== ambient_sound ===&lt;br /&gt;
Is used to play environment sounds, either in some specific part of the level, or in the entire level. It can be used to add creaky wood sounds only to a ship, wind sound only at the top of a mountain, rustling leaves sound only close to trees and so on.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Delay Max&lt;br /&gt;
| int || The maximum random time in seconds until this sound triggers after having been triggered&lt;br /&gt;
|-&lt;br /&gt;
! Delay Min&lt;br /&gt;
| int || Same as &#039;&#039;Delay Max&#039;&#039;, except the minimum random time&lt;br /&gt;
|-&lt;br /&gt;
! Fade Distance&lt;br /&gt;
| int || The distance in meters outside of the hotspot that the sound should start being audible, it fades in to full volume as the camera gets closer to the hotspot&lt;br /&gt;
|-&lt;br /&gt;
! Gain&lt;br /&gt;
| float || How loud the sound should be&lt;br /&gt;
|-&lt;br /&gt;
! Global&lt;br /&gt;
| bool || If the sound should play everywhere, and not only at the hotspot&#039;s location&lt;br /&gt;
|-&lt;br /&gt;
! Sound Path&lt;br /&gt;
| string || The path to the sound to use, they can be found in Data/Sounds/&lt;br /&gt;
|-&lt;br /&gt;
! Wind Scale&lt;br /&gt;
| bool || Makes the sound increase and decrease in volume to make it feel like it&#039;s being created by wind&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== boundary ===&lt;br /&gt;
When the player enters this hotspot&#039;s volume, they are pushed in a specific direction based on the rotation of the hotspot. Note that it only pushes horizontally, it can not push up or down. To know which direction it pushes in, simply test it by running into it.&lt;br /&gt;
&lt;br /&gt;
=== displayimage ===&lt;br /&gt;
Renders an image in the middle of the screen when the player is inside the hotspot.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! [0] Display Image Path&lt;br /&gt;
| string || Location on disk of image to show&lt;br /&gt;
|-&lt;br /&gt;
! [1] Scale&lt;br /&gt;
| float || How large the image should be, in percent&lt;br /&gt;
|-&lt;br /&gt;
! [2a] Red Tint&lt;br /&gt;
| int || Multiplier for image&#039;s red channel&lt;br /&gt;
|-&lt;br /&gt;
! [2b] Green Tint&lt;br /&gt;
| int || Multiplier for image&#039;s green channel&lt;br /&gt;
|-&lt;br /&gt;
! [2c] Blue Tint&lt;br /&gt;
| int || Multiplier for image&#039;s blue channel&lt;br /&gt;
|-&lt;br /&gt;
! [2d] Alpha Tint&lt;br /&gt;
| int || Multiplier for image&#039;s alpha channel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== displaytext ===&lt;br /&gt;
Shows some text on the screen while the player is in the hotspot. Does not support word wrap or line breaks.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Display Text&lt;br /&gt;
| string || Text to show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== displayvideo ===&lt;br /&gt;
Does not work.&lt;br /&gt;
&lt;br /&gt;
=== emitter ===&lt;br /&gt;
Creates either smoke, fog or water splashes within the hotspot volume.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Type&lt;br /&gt;
| string || Set it to either &amp;quot;Smoke&amp;quot;, &amp;quot;Foggy&amp;quot; or &amp;quot;Falling Water&amp;quot; (without the quotes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== eye_adjust ===&lt;br /&gt;
Changes the HDR settings when the player character enters the hotspot.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! HDR Black point&lt;br /&gt;
| float || Sets the low range of the dynamic range&lt;br /&gt;
|-&lt;br /&gt;
! HDR Bloom multiplier&lt;br /&gt;
| float || Changes the intensity of the bloom effect&lt;br /&gt;
|-&lt;br /&gt;
! HDR White point&lt;br /&gt;
| float || Sets the high range of the dynamic range&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== fire_test ===&lt;br /&gt;
Pretty looking fire composed of a number of textured ribbons and a light source. Can ignite characters when they touch it.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Fire Ribbons&lt;br /&gt;
| int || The number of ribbons that should be used&lt;br /&gt;
|-&lt;br /&gt;
! Ignite Characters&lt;br /&gt;
| bool || If checked, characters will ignite when they touch the fire, only works on NPCs if they are ragdolled&lt;br /&gt;
|-&lt;br /&gt;
! Light Amplify&lt;br /&gt;
| float || The intensity of the light from the fire&lt;br /&gt;
|-&lt;br /&gt;
! Light Distance&lt;br /&gt;
| float || How far away the light should reach &#039;&#039;&#039;TODO:&#039;&#039;&#039; What unit is this in?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== general_campaign_level ===&lt;br /&gt;
&#039;&#039;&#039;TODO:&#039;&#039;&#039; How does this work?&lt;br /&gt;
&lt;br /&gt;
=== generic_kill ===&lt;br /&gt;
Kills any character that enters the hotspot.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! KillNPC&lt;br /&gt;
| bool || If checked, the hotspot is lethal to NPCs&lt;br /&gt;
|-&lt;br /&gt;
! KillPlayer&lt;br /&gt;
| bool || If checked, the hotspot is lethal to the player&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== lava_kill ===&lt;br /&gt;
Ignites and instantly kills any character that comes into contact with the hotspot.&lt;br /&gt;
&lt;br /&gt;
=== levelwin ===&lt;br /&gt;
Sends a global &amp;quot;levelwin&amp;quot; message when the player enters the hotspot.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! branch&lt;br /&gt;
| string || After the &amp;quot;levelwin&amp;quot; message, a space is added and then this string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== loadlevel ===&lt;br /&gt;
Loads a specified level when the player enters the hotspot.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Level to load&lt;br /&gt;
| string || The path to the level you want to load, starting in ../Overgrowth/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== lugaru_hawk ===&lt;br /&gt;
Adds a hawk that circles around the hotspot.&lt;br /&gt;
&lt;br /&gt;
=== new_checkpoint ===&lt;br /&gt;
A checkpoint that&#039;s used together with the [[#respawn_at_checkpoint|respawn_at_checkpoint]] hotspot. Entering this hotspot makes this the current checkpoint. When touching a [[#respawn_at_checkpoint|respawn_at_checkpoint]] you get teleported to the center of the most recently touched &#039;&#039;new_checkpoint&#039;&#039; hotspot.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! LastEnteredTime&lt;br /&gt;
| int || A timestamp for when this was most recently touched, this is used to determine which &#039;&#039;new_checkpoint&#039;&#039; hotspot to respawn at when touching a [[#respawn_at_checkpoint|respawn_at_checkpoint]] hotspot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== no_grab ===&lt;br /&gt;
Any ledge within this hotspot can&#039;t be grabbed. You would usually use the [[Collision Painting|collision painting system]] to decide whether a ledge is grabbable, but if you want to for instance make a ledge in a [[Prefabs|prefab]] not grabbable you can&#039;t always do that, so you can then use this no_grab hotspot instead.&lt;br /&gt;
&lt;br /&gt;
=== object_disappear ===&lt;br /&gt;
Deletes the specified object when the player enters the hotspot.&lt;br /&gt;
&lt;br /&gt;
Note that this hotspot does not use the actual name of the object. You need to manually add a script parameter on the object you want to delete called &amp;quot;Name&amp;quot;, and write the same name you specify in &amp;quot;Object name to dissapear&amp;quot; parameter in the hotspot.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this hotspot actually &#039;&#039;deletes&#039;&#039; the objects from the level, as if you would have deleted them in the editor.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Object name to dissapear&lt;br /&gt;
| string || Any object that has an added &amp;quot;Name&amp;quot; script parameter that is the same as the string in this parameter will be deleted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== overgrowth_level ===&lt;br /&gt;
The hotspot used in the Overgrowth story to set goals and/or layered music within a level. All the Information for this Hotspot can be found on the &#039;&#039;[[Checkpoints]]&#039;&#039; page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO:&#039;&#039;&#039; Should another hotspot be used instead of this one?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO:&#039;&#039;&#039; These level messages are handled in this hotspot, need to explain what that means:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;reset&amp;quot;&lt;br /&gt;
&amp;quot;level_event music_layer_override&amp;quot;&lt;br /&gt;
&amp;quot;level_event crowd_override&amp;quot;&lt;br /&gt;
&amp;quot;level_event set_camera_dof&amp;quot;&lt;br /&gt;
&amp;quot;level_event character_knocked_out&amp;quot;&lt;br /&gt;
&amp;quot;level_event character_died&amp;quot;&lt;br /&gt;
&amp;quot;player_entered_checkpoint_fall_death&amp;quot;&lt;br /&gt;
&amp;quot;player_entered_checkpoint&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== overgrowth_level_checkpoint ===&lt;br /&gt;
The checkpoints used in the Overgrowth story to activate a &#039;&#039;&amp;quot;reach&amp;quot;&#039;&#039; goal. All the Information about this Hotspot can be found on the &#039;&#039;[[Checkpoints]]&#039;&#039; page.&lt;br /&gt;
&#039;&#039;&#039;TODO:&#039;&#039;&#039; Should another hotspot be used instead of this one?&lt;br /&gt;
&lt;br /&gt;
=== Particle Occluder Hotspot ===&lt;br /&gt;
&lt;br /&gt;
Allows for particles to not have any effect in the area inside the hotspot.&lt;br /&gt;
&lt;br /&gt;
It works by default with particles generated by the emitter hotspot (as an example), but to make it work for rain/snow/other gpu particles, go to editor mode, press &amp;quot;Y&amp;quot; and go to Custom Shaders, here write &#039;&#039;&#039;&amp;lt;code&amp;gt;#GPU_PARTICLE_FIELD_OCCLUSION&amp;lt;/code&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== portal ===&lt;br /&gt;
Allows for traveling bwtween levels. Requires a [[#portal_manager|portal_manager]] hotspot to function properly.&lt;br /&gt;
&lt;br /&gt;
You can specify a light that gets brighter as a character approaches the portal.&lt;br /&gt;
&lt;br /&gt;
To be able to travel to this portal from another level you need to create a &#039;&#039;Load → Utility → Player Spawn&#039;&#039; object.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Level to load&lt;br /&gt;
| string || The path to the level to load when entering this hotspot&lt;br /&gt;
|-&lt;br /&gt;
! light_id&lt;br /&gt;
| int || The ID of the dynamic_light_object that should get brighter when a character gets closer to the hotspot&lt;br /&gt;
|-&lt;br /&gt;
! spawn_point&lt;br /&gt;
| int || The ID of the &#039;&#039;Player Spawn&#039;&#039; object you want the player to spawn at when teleporting to this level&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== portal_manager ===&lt;br /&gt;
Required when using the portal hotspot.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Level to load&lt;br /&gt;
| int list || The IDs of all portals in the level&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== resetcharacter ===&lt;br /&gt;
Resets any character that touches this hotspot to their spawn location.&lt;br /&gt;
&lt;br /&gt;
=== resetlevel ===&lt;br /&gt;
Resets the level when the player touches it, as if you press L in the editor.&lt;br /&gt;
&lt;br /&gt;
=== respawn_at_checkpoint ===&lt;br /&gt;
Used together with the [[#new_checkpoint|new_checkpoint]] hotspot. When the player touches this hotspot they get teleported to the center of the most recently touched [[#new_checkpoint|new_checkpoint]].&lt;br /&gt;
&lt;br /&gt;
=== soak_level ===&lt;br /&gt;
After the player enters the hotspot, a new level is loaded after a set amount of time.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! next_level&lt;br /&gt;
| string || The path to the level to load&lt;br /&gt;
|-&lt;br /&gt;
! time_to_next_level&lt;br /&gt;
| int || Number of seconds to wait before loading the next level&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== spike ===&lt;br /&gt;
A spike that can impale characters.&lt;br /&gt;
&lt;br /&gt;
=== start_dialogue ===&lt;br /&gt;
Allows for dialogues to be started in different ways when the player is in the hotspot. For more information about dialogues read the [[Dialogue]] article.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Automatic&lt;br /&gt;
| bool || The dialogue starts automatically when the player enters the hotspot&lt;br /&gt;
|-&lt;br /&gt;
! Color&lt;br /&gt;
| RGB floats || &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! Dialogue&lt;br /&gt;
| string || The name of the dialogue to start&lt;br /&gt;
|-&lt;br /&gt;
! Fade&lt;br /&gt;
| bool || Fade to black when starting the dialogue, to make transition less jarring&lt;br /&gt;
|-&lt;br /&gt;
! Visible in game&lt;br /&gt;
| bool || Keeps the signpost icon visible in the game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== StartRace ===&lt;br /&gt;
&#039;&#039;&#039;TODO: Does it not work like [[#FinishRace|FinishRace]] ?&#039;&#039;&#039;&lt;br /&gt;
Used to start a race similar to the one shown off in the video &#039;&#039;[https://www.youtube.com/watch?v=cc5L9sBF7D0|Building A Race Course In Overgrowth - Wolfire Games]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== tutorial ===&lt;br /&gt;
Activates built-in tutorials when entered. &#039;&#039;Settings → Game → Tutorials&#039;&#039; needs to be on for the tutorials to trigger.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Type&lt;br /&gt;
| string || Decides which tutorial to run, can be one of the following: stealth, basic, jump_climb, walljump, jump_higher, jump_long, combat, jumpkick, knife, throw, flip_roll&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== victorytrigger ===&lt;br /&gt;
&#039;&#039;&#039;TODO:&#039;&#039;&#039; Is this still usable? If so, how is it used?&lt;br /&gt;
&lt;br /&gt;
=== water_bob ===&lt;br /&gt;
Makes the specified objects move as if they are on water.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Objects&lt;br /&gt;
| list of ints || The IDs of the objects that should be affected&lt;br /&gt;
|-&lt;br /&gt;
! SavedTransform&lt;br /&gt;
| Translation &amp;amp; rotation as floats || The original location of the objects&lt;br /&gt;
|-&lt;br /&gt;
! rotation_scale&lt;br /&gt;
| float || Multiplier of rotation&lt;br /&gt;
|-&lt;br /&gt;
! time_scale&lt;br /&gt;
| float || How fast the objects should move&lt;br /&gt;
|-&lt;br /&gt;
! translation_scale&lt;br /&gt;
| float || Multiplier of translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== water_bob_fast ===&lt;br /&gt;
&#039;&#039;&#039;TODO:&#039;&#039;&#039; Is this simply a better optimized version of the &amp;quot;water_bob&amp;quot; hotspot?&lt;br /&gt;
&lt;br /&gt;
=== wet_cube ===&lt;br /&gt;
A block of water with nice graphics that slows you down if you walk in it and drowns you if you&#039;re below the surface for too long.&lt;br /&gt;
&lt;br /&gt;
==== Script Params ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Water Fog&lt;br /&gt;
| float || How far down into the water you can see&lt;br /&gt;
|-&lt;br /&gt;
! Wave Density&lt;br /&gt;
| float || How zoomed in the waves should be&lt;br /&gt;
|-&lt;br /&gt;
! Wave Height&lt;br /&gt;
| float || How strong the waves should be&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Deprecated and Component Hotspots ==&lt;br /&gt;
These hotspots have either been replaced by a better alternative, have stopped working at some point during the development of the game, or can&#039;t be used on their own.&lt;br /&gt;
&lt;br /&gt;
=== announce_items ===&lt;br /&gt;
Remnant from old tutorial level.&lt;br /&gt;
&lt;br /&gt;
=== Checkpoint ===&lt;br /&gt;
No longer used, should use the new [[Checkpoints|checkpoint system]] instead.&lt;br /&gt;
&lt;br /&gt;
=== collectable_target ===&lt;br /&gt;
Does not work anymore.&lt;br /&gt;
&lt;br /&gt;
=== dark_world_level ===&lt;br /&gt;
Crashes the game.&lt;br /&gt;
&lt;br /&gt;
=== dark_world_trigger ===&lt;br /&gt;
Function unknown.&lt;br /&gt;
&lt;br /&gt;
=== destination_trail ===&lt;br /&gt;
Function unknown.&lt;br /&gt;
&lt;br /&gt;
=== FinishRace ===&lt;br /&gt;
No longer works. Used in the Video &#039;&#039;[https://www.youtube.com/watch?v=cc5L9sBF7D0|Building A Race Course In Overgrowth - Wolfire Games]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== fixedragdollpart ===&lt;br /&gt;
Not used on its own, used in aschar for impaling.&lt;br /&gt;
&lt;br /&gt;
=== kill ===&lt;br /&gt;
Deprecated, use the [[#generic_kill|generic_kill]] or [[#lava_kill|lava_kill]] hotspots instead.&lt;br /&gt;
&lt;br /&gt;
=== lugaru_level ===&lt;br /&gt;
The level hotspot used in the official Lugaru story.&lt;br /&gt;
&lt;br /&gt;
=== must_visit_trigger ===&lt;br /&gt;
Old unused challenge hotspot.&lt;br /&gt;
&lt;br /&gt;
=== particle_foggy ===&lt;br /&gt;
This is actually not a hotspot, it just creates an emitter hotspot that&#039;s pre-configured as fog.&lt;br /&gt;
&lt;br /&gt;
=== rain ===&lt;br /&gt;
Particle based rain, use the [[Shader And Weather Effects|rain shaders]] instead.&lt;br /&gt;
&lt;br /&gt;
=== spike_tip ===&lt;br /&gt;
Used by the spike hotspot.&lt;br /&gt;
&lt;br /&gt;
=== snow ===&lt;br /&gt;
Particle based snow, use the [[Shader And Weather Effects|snow shaders]] instead.&lt;br /&gt;
&lt;br /&gt;
=== water ===&lt;br /&gt;
Deprecated, use [[#wet_cube|wet_cube]] instead.&lt;br /&gt;
&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6058</id>
		<title>Rain Weather Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6058"/>
		<updated>2019-10-26T23:16:07Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a total of four pieces that make up the rain weather effects that you see on a level like Tree Climb or Cave Arena.&lt;br /&gt;
&lt;br /&gt;
== Rain particle effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the falling rain drop particles.&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-particles2_small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Particles|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
== Stop rain in a certain area ==&lt;br /&gt;
&lt;br /&gt;
To do that you have to go to editor mode, click in Load, and then search for &amp;quot;Particle Occluder Hotspot&amp;quot;, and spawn it where you want rain to not have any effect.&lt;br /&gt;
&lt;br /&gt;
After that, in editor mode, press &amp;quot;Y&amp;quot; and go to Custom Shaders, here write &#039;&#039;&#039;&amp;lt;code&amp;gt;#GPU_PARTICLE_FIELD_OCCLUSION&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Take in mind using this Custom shader can affect performance a bit.&lt;br /&gt;
&lt;br /&gt;
== Water &amp;quot;rain splash&amp;quot; shader effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the shimmering water layer effect to all the objects in the world.&lt;br /&gt;
&lt;br /&gt;
[[File:Rainy-shader3-z-small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;, and it is &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; not &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Weather_Effects.2FWorld_Shaders|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
== Thunder and lightning hotspot ==&lt;br /&gt;
&lt;br /&gt;
This add the periodic light flashes and thunder clap sound (the ambient rain sound is separate, in case you want to have a lightning storm going on nearby, but no rain).&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-hotspot-lightning-effect.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-load-item.png|114px|thumb|&#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
To add this, use the &#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option:&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load item...&#039;&#039;&#039;&amp;lt;br&amp;gt;(this will open a new window to browse for files. It may be easier to do this step if you have the game in windowed mode)&lt;br /&gt;
# Browse to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Objects/Hotspots&amp;lt;/code&amp;gt;&#039;&#039;&#039; and select &#039;&#039;&#039;&amp;lt;code&amp;gt;rain.xml&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level.&lt;br /&gt;
&lt;br /&gt;
There are no parameters for this hotspot, so you don&#039;t have to change anything at this point.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: If you want to customize this effect, you&#039;re going to need to make your own copy of the script for that hotspot (&amp;lt;code&amp;gt;Data/Scripts/hotspots/rain.as&amp;lt;/code&amp;gt;) and edit that script.&amp;lt;br&amp;gt;Then copy the hotspot XML (&amp;lt;code&amp;gt;Data/Objects/Hotspots/rain.xml&amp;lt;/code&amp;gt;) and point it at your new script.&lt;br /&gt;
&lt;br /&gt;
== Ambient rain sound ==&lt;br /&gt;
&lt;br /&gt;
This adds the constant rain sound that you hear throughout the level.&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-sounds-ambient-sound.png|139px|thumb|&#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Sounds&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level&lt;br /&gt;
# Double click on the new object to select it&lt;br /&gt;
# Open the object properties: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Selected&#039;&#039;&#039; (or just press the &#039;&#039;&#039;&amp;lt;kbd&amp;gt;U&amp;lt;/kbd&amp;gt;&#039;&#039;&#039; key)&lt;br /&gt;
# Drill down to find the script params, and set these values:&lt;br /&gt;
&lt;br /&gt;
=== Values for Ambient sound hotspot ===&lt;br /&gt;
&lt;br /&gt;
[[File:Ambient-sound-rain-hotspot-settings.png|582px|thumb|Rain sound hotspot settings]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Sound Path&amp;lt;/code&amp;gt;&#039;&#039;&#039; - Set this to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Sounds/weather/rain.wav&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Gain&amp;lt;/code&amp;gt;&#039;&#039;&#039; - You might want to set it to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;&#039;&#039;&#039; or even lower. We set ours to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.57&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;&#039;&#039;&#039; - (default value of &#039;&#039;&#039;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&#039;&#039;&#039; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Max&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Min&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Fade Distance&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Wind Scale&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6057</id>
		<title>Rain Weather Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6057"/>
		<updated>2019-10-26T23:15:40Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a total of four pieces that make up the rain weather effects that you see on a level like Tree Climb or Cave Arena.&lt;br /&gt;
&lt;br /&gt;
== Rain particle effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the falling rain drop particles.&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-particles2_small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Particles|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
Take in mind using this Custom shader can affect performance a bit.&lt;br /&gt;
&lt;br /&gt;
== Stop rain in a certain area ==&lt;br /&gt;
&lt;br /&gt;
To do that you have to go to editor mode, click in Load, and then search for &amp;quot;Particle Occluder Hotspot&amp;quot;, and spawn it where you want rain to not have any effect.&lt;br /&gt;
&lt;br /&gt;
After that, in editor mode, press &amp;quot;Y&amp;quot; and go to Custom Shaders, here write &#039;&#039;&#039;&amp;lt;code&amp;gt;#GPU_PARTICLE_FIELD_OCCLUSION&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Water &amp;quot;rain splash&amp;quot; shader effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the shimmering water layer effect to all the objects in the world.&lt;br /&gt;
&lt;br /&gt;
[[File:Rainy-shader3-z-small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;, and it is &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; not &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Weather_Effects.2FWorld_Shaders|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
== Thunder and lightning hotspot ==&lt;br /&gt;
&lt;br /&gt;
This add the periodic light flashes and thunder clap sound (the ambient rain sound is separate, in case you want to have a lightning storm going on nearby, but no rain).&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-hotspot-lightning-effect.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-load-item.png|114px|thumb|&#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
To add this, use the &#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option:&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load item...&#039;&#039;&#039;&amp;lt;br&amp;gt;(this will open a new window to browse for files. It may be easier to do this step if you have the game in windowed mode)&lt;br /&gt;
# Browse to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Objects/Hotspots&amp;lt;/code&amp;gt;&#039;&#039;&#039; and select &#039;&#039;&#039;&amp;lt;code&amp;gt;rain.xml&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level.&lt;br /&gt;
&lt;br /&gt;
There are no parameters for this hotspot, so you don&#039;t have to change anything at this point.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: If you want to customize this effect, you&#039;re going to need to make your own copy of the script for that hotspot (&amp;lt;code&amp;gt;Data/Scripts/hotspots/rain.as&amp;lt;/code&amp;gt;) and edit that script.&amp;lt;br&amp;gt;Then copy the hotspot XML (&amp;lt;code&amp;gt;Data/Objects/Hotspots/rain.xml&amp;lt;/code&amp;gt;) and point it at your new script.&lt;br /&gt;
&lt;br /&gt;
== Ambient rain sound ==&lt;br /&gt;
&lt;br /&gt;
This adds the constant rain sound that you hear throughout the level.&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-sounds-ambient-sound.png|139px|thumb|&#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Sounds&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level&lt;br /&gt;
# Double click on the new object to select it&lt;br /&gt;
# Open the object properties: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Selected&#039;&#039;&#039; (or just press the &#039;&#039;&#039;&amp;lt;kbd&amp;gt;U&amp;lt;/kbd&amp;gt;&#039;&#039;&#039; key)&lt;br /&gt;
# Drill down to find the script params, and set these values:&lt;br /&gt;
&lt;br /&gt;
=== Values for Ambient sound hotspot ===&lt;br /&gt;
&lt;br /&gt;
[[File:Ambient-sound-rain-hotspot-settings.png|582px|thumb|Rain sound hotspot settings]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Sound Path&amp;lt;/code&amp;gt;&#039;&#039;&#039; - Set this to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Sounds/weather/rain.wav&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Gain&amp;lt;/code&amp;gt;&#039;&#039;&#039; - You might want to set it to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;&#039;&#039;&#039; or even lower. We set ours to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.57&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;&#039;&#039;&#039; - (default value of &#039;&#039;&#039;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&#039;&#039;&#039; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Max&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Min&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Fade Distance&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Wind Scale&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6056</id>
		<title>Rain Weather Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Rain_Weather_Effects&amp;diff=6056"/>
		<updated>2019-10-26T23:14:50Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a total of four pieces that make up the rain weather effects that you see on a level like Tree Climb or Cave Arena.&lt;br /&gt;
&lt;br /&gt;
== Rain particle effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the falling rain drop particles.&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-particles2_small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Particles|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
== Stop rain in a certain area ==&lt;br /&gt;
&lt;br /&gt;
To do that you have to go to editor mode, click in Load, and then search for &amp;quot;Particle Occluder Hotspot&amp;quot;, and spawn it where you want rain to not have any effect.&lt;br /&gt;
&lt;br /&gt;
After that, in editor mode, press &amp;quot;Y&amp;quot; and go to Custom Shaders, here write &#039;&#039;&#039;&amp;lt;code&amp;gt;#GPU_PARTICLE_FIELD_OCCLUSION&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Water &amp;quot;rain splash&amp;quot; shader effect ==&lt;br /&gt;
&lt;br /&gt;
This adds the shimmering water layer effect to all the objects in the world.&lt;br /&gt;
&lt;br /&gt;
[[File:Rainy-shader3-z-small.gif]]&lt;br /&gt;
&lt;br /&gt;
To add this, add the &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; entry to the level&#039;s script parameters. Set this value to &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; (make sure you use &#039;&#039;&#039;upper-case&#039;&#039;&#039;, and it is &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt;&#039;&#039;&#039; not &#039;&#039;&#039;&amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt;&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s [[Shader_And_Weather_Effects#Weather_Effects.2FWorld_Shaders|instructions for adding a &#039;&#039;&#039;&amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt;&#039;&#039;&#039; value]].&lt;br /&gt;
&lt;br /&gt;
== Thunder and lightning hotspot ==&lt;br /&gt;
&lt;br /&gt;
This add the periodic light flashes and thunder clap sound (the ambient rain sound is separate, in case you want to have a lightning storm going on nearby, but no rain).&lt;br /&gt;
&lt;br /&gt;
[[File:Rain-hotspot-lightning-effect.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-load-item.png|114px|thumb|&#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
To add this, use the &#039;&#039;&#039;Load item...&#039;&#039;&#039; menu option:&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load item...&#039;&#039;&#039;&amp;lt;br&amp;gt;(this will open a new window to browse for files. It may be easier to do this step if you have the game in windowed mode)&lt;br /&gt;
# Browse to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Objects/Hotspots&amp;lt;/code&amp;gt;&#039;&#039;&#039; and select &#039;&#039;&#039;&amp;lt;code&amp;gt;rain.xml&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level.&lt;br /&gt;
&lt;br /&gt;
There are no parameters for this hotspot, so you don&#039;t have to change anything at this point.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: If you want to customize this effect, you&#039;re going to need to make your own copy of the script for that hotspot (&amp;lt;code&amp;gt;Data/Scripts/hotspots/rain.as&amp;lt;/code&amp;gt;) and edit that script.&amp;lt;br&amp;gt;Then copy the hotspot XML (&amp;lt;code&amp;gt;Data/Objects/Hotspots/rain.xml&amp;lt;/code&amp;gt;) and point it at your new script.&lt;br /&gt;
&lt;br /&gt;
== Ambient rain sound ==&lt;br /&gt;
&lt;br /&gt;
This adds the constant rain sound that you hear throughout the level.&lt;br /&gt;
&lt;br /&gt;
[[File:Editor-load-sounds-ambient-sound.png|139px|thumb|&#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039; menu option]]&lt;br /&gt;
&lt;br /&gt;
# Spawn the new hotspot object: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Sounds&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Ambient sound hotspot&#039;&#039;&#039;&lt;br /&gt;
# Your cursor will turn into a &#039;&#039;&#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&#039;&#039;&#039; symbol&lt;br /&gt;
# Click somewhere in the world to place the hotspot. The location doesn&#039;t matter, since it acts globally across the level&lt;br /&gt;
# Double click on the new object to select it&lt;br /&gt;
# Open the object properties: &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Selected&#039;&#039;&#039; (or just press the &#039;&#039;&#039;&amp;lt;kbd&amp;gt;U&amp;lt;/kbd&amp;gt;&#039;&#039;&#039; key)&lt;br /&gt;
# Drill down to find the script params, and set these values:&lt;br /&gt;
&lt;br /&gt;
=== Values for Ambient sound hotspot ===&lt;br /&gt;
&lt;br /&gt;
[[File:Ambient-sound-rain-hotspot-settings.png|582px|thumb|Rain sound hotspot settings]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Sound Path&amp;lt;/code&amp;gt;&#039;&#039;&#039; - Set this to &#039;&#039;&#039;&amp;lt;code&amp;gt;Data/Sounds/weather/rain.wav&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Gain&amp;lt;/code&amp;gt;&#039;&#039;&#039; - You might want to set it to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;&#039;&#039;&#039; or even lower. We set ours to &#039;&#039;&#039;&amp;lt;code&amp;gt;0.57&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;&#039;&#039;&#039; - (default value of &#039;&#039;&#039;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&#039;&#039;&#039; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Max&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Delay Min&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Fade Distance&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
* &amp;lt;code&amp;gt;Wind Scale&amp;lt;/code&amp;gt; - (default value of &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; is fine)&lt;br /&gt;
&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Shader_And_Weather_Effects&amp;diff=6055</id>
		<title>Shader And Weather Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Shader_And_Weather_Effects&amp;diff=6055"/>
		<updated>2019-10-26T23:08:52Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: gpu occluder thing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Add embedded screenshots and/or gifs/webms for all these effects to show what they look like.&lt;br /&gt;
&lt;br /&gt;
==Particles==&lt;br /&gt;
&lt;br /&gt;
===Create and set the &amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt; level script parameter===&lt;br /&gt;
&lt;br /&gt;
# Open a level&lt;br /&gt;
# Launch the editor (&amp;lt;kbd&amp;gt;F1&amp;lt;/kbd&amp;gt; key. You may have to hold the &amp;lt;kbd&amp;gt;FN&amp;lt;/kbd&amp;gt; and/or &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; key to get this to work)&lt;br /&gt;
# Open the Scenegraph properties (&#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Scenegraph&#039;&#039;&#039; or the &amp;lt;kbd&amp;gt;Y&amp;lt;/kbd&amp;gt; key)&lt;br /&gt;
# Expand &amp;lt;code&amp;gt;Level&amp;lt;/code&amp;gt;&lt;br /&gt;
# Expand &amp;lt;code&amp;gt;Script Params&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you do not see &amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt; in the list, click the &#039;&#039;&#039;New parameter&#039;&#039;&#039; button&lt;br /&gt;
# Double click where it says &amp;lt;code&amp;gt;Untitled parameter&amp;lt;/code&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt; and hit &amp;lt;kbd&amp;gt;ENTER&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to remove this parameter if you&#039;re not using it, or you&#039;ll see a bunch of non-moving particles floating throughout the world.&lt;br /&gt;
&lt;br /&gt;
===Set the value of &amp;lt;code&amp;gt;GPU Particle Field&amp;lt;/code&amp;gt; to some of these tags===&lt;br /&gt;
&lt;br /&gt;
Separate multiple tags using spaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: These parameters are &#039;&#039;&#039;case sensitive&#039;&#039;&#039;. They must be in upper case, or they will not work!&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;#ASH&amp;lt;/code&amp;gt; - Falling ash, rising smoke, and flying ember particles&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#BUGS&amp;lt;/code&amp;gt; - Flying bug particles&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#MOREBUGS&amp;lt;/code&amp;gt; - Increase the amount of bugs (must also define #BUGS to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#FIREFLY&amp;lt;/code&amp;gt; - Flying glowing bug particles (must also define #BUGS to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
::: &amp;lt;code&amp;gt;#WATER_DELETE&amp;lt;/code&amp;gt; - Make fireflies not appear under water (must also define #FIREFLY to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#RAIN&amp;lt;/code&amp;gt; - Falling rain particles (see [[RainWeatherEffects|these instructions for how to make this effect more dramatic]])&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#SNOW&amp;lt;/code&amp;gt; - Falling snow particles&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#MED&amp;lt;/code&amp;gt; - Decrease the amount of snow particles (must also define #SNOW to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weather Effects/World Shaders==&lt;br /&gt;
&lt;br /&gt;
===Create and set the &amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt; level script parameter===&lt;br /&gt;
&lt;br /&gt;
# Open a level&lt;br /&gt;
# Launch the editor (&amp;lt;kbd&amp;gt;F1&amp;lt;/kbd&amp;gt; key. You may have to hold the &amp;lt;kbd&amp;gt;FN&amp;lt;/kbd&amp;gt; and/or &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; key to get this to work)&lt;br /&gt;
# Open the Scenegraph properties (&#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Scenegraph&#039;&#039;&#039; or the &amp;lt;kbd&amp;gt;Y&amp;lt;/kbd&amp;gt; key)&lt;br /&gt;
# Expand &amp;lt;code&amp;gt;Level&amp;lt;/code&amp;gt;&lt;br /&gt;
# Expand &amp;lt;code&amp;gt;Script Params&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you do not see &amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt; in the list, click the &#039;&#039;&#039;New parameter&#039;&#039;&#039; button&lt;br /&gt;
# Double click where it says &amp;lt;code&amp;gt;Untitled parameter&amp;lt;/code&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt; and hit &amp;lt;kbd&amp;gt;ENTER&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Set the value of &amp;lt;code&amp;gt;Custom Shader&amp;lt;/code&amp;gt; to some of these tags===&lt;br /&gt;
&lt;br /&gt;
Separate multiple tags using spaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: These parameters are &#039;&#039;&#039;case sensitive&#039;&#039;&#039;. They must be in upper case, or they will not work!&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;#ADD_MOON&amp;lt;/code&amp;gt; - Adds glowing orb into sky (sky must be dark enough for you to see it, and can be obscured by a &amp;quot;sun&amp;quot; with a visible intensity)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#ADD_STARS&amp;lt;/code&amp;gt; - Adds twinkling dots into sky (sky must be dark enough for you to see them)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#BEACH&amp;lt;/code&amp;gt; - Adds glistening wetness to ground, and water caustics&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#CAVE&amp;lt;/code&amp;gt; - Adds a haze effect, similar to what is seen in &amp;lt;code&amp;gt;#MISTY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MISTY2&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;SKY_ARK&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#DAMP_FOG&amp;lt;/code&amp;gt; - Adds full screen rolling effect modifier to fog (must have some fog set in order to see this)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#DIRECTED_WATER_DECALS&amp;lt;/code&amp;gt; - Adds the ability to make the &amp;lt;code&amp;gt;Objects/Decals/water_froth.xml&amp;lt;/code&amp;gt; water decal scroll, when modifying its green tint parameter (with &amp;lt;code&amp;gt;CTRL + P&amp;lt;/code&amp;gt;)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#EMISSIVE&amp;lt;/code&amp;gt; - Makes the world fully bright (probably not great to keep in level, might be useful for detail work. Not guaranteed to not cause errors)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#GPU_PARTICLE_FIELD_OCCLUSION&amp;lt;/code&amp;gt; - Use alongside Particle Occluder Hotspot if you want snow/rain/other GPU Particle Field weather effects to not appear inside a certain area.&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#MISTY&amp;lt;/code&amp;gt; - Adds a volumetric steamy haze effect (can see it even without fog, but fog makes it more visible, and the effect while there&#039;s no fog is not very realistic)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#MISTY2&amp;lt;/code&amp;gt; - Adds a volumetric rolling steamy haze effect (can see it even without fog, but fog makes it more visible, and the effect while there&#039;s no fog is not very realistic)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#RAINY&amp;lt;/code&amp;gt; - Makes characters appear wet, and adds a misty animated haze rain effect (see [[RainWeatherEffects|these instructions for how to make this effect more dramatic]])&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#SCROLL_VERY_SLOW&amp;lt;/code&amp;gt; - Uhhh creepy stuff!&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#SKY_ARK&amp;lt;/code&amp;gt; - Adds glistening wetness to ground, and adds a volumetric steamy haze effect&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#SNOW_EVERYWHERE&amp;lt;/code&amp;gt; - Adds a thin frost cap all over objects, a thick snow cap on the very top of them, and a thin snow cap on characters (most useful if a level is already &amp;quot;snowy&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#SNOW_EVERYWHERE2&amp;lt;/code&amp;gt; - Adds a thick snow cap all over objects, a thin snow cap on characters, and turns the sky into a colorful gradient (can turn a non-snowy level into a snowy one)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#SNOW_EVERYWHERE3&amp;lt;/code&amp;gt; - Adds a thick directional snow cap partially covering objects, and a thin snow cap on characters (can turn a non-snowy level into a snowy one)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#SWAMP&amp;lt;/code&amp;gt; - Adds a slimy coating to everything, and makes rainbows appear&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#TEST_CLOUDS_2&amp;lt;/code&amp;gt; - Switches the sky box to a moving cloud texture, and projects cloud shadows onto the ground/objects&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#MORECLOUDS&amp;lt;/code&amp;gt; - Increases the density of the clouds (must also define #TEST_CLOUDS_2 to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#CLOUDS_DO_NOT_TINT_SKY&amp;lt;/code&amp;gt; - Uses the skybox behind the clouds, instead of tinting the sky with a solid color (must also define #TEST_CLOUDS_2 to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#CLOUDS_ALPHA&amp;lt;/code&amp;gt; - Makes clouds do alpha blending against the sky map, instead of an opaque overlay (must also define #TEST_CLOUDS_2 to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#CLOUDS_BELOW_HORIZON&amp;lt;/code&amp;gt; - Makes clouds appear below the horizon instead of above it - level is &amp;quot;over the clouds&amp;quot; (must also define #TEST_CLOUDS_2 to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#CLOUDS_DO_NOT_CAST_SHADOWS&amp;lt;/code&amp;gt; - Gets rid of cloud shadows that are cast on the world - useful if clouds are below horizon (must also define #TEST_CLOUDS_2 to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#CLOUDS_VORTEX&amp;lt;/code&amp;gt; - Makes the clouds swirl into a point in the center of the level, like the eye of a storm (must also define #TEST_CLOUDS_2 to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#VOLCANO&amp;lt;/code&amp;gt; - Adds a red underglow shader on the world and objects, and adds a heat haze effect&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#LESS_SHIMMER&amp;lt;/code&amp;gt; - Reduces the heat haze effect slightly (must also define #VOLCANO to use this)&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#WATER_HORIZON&amp;lt;/code&amp;gt; - Makes ground and objects above a certain level appear wet, and adds distant fog to make water appear to extend off all the way to the horizon&amp;lt;br&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#ALT&amp;lt;/code&amp;gt; - Raises the water level, and extends the fog/horizon distance&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;#WATERFALL_ARENA&amp;lt;/code&amp;gt; - Makes foam texture scroll, adds foggy haze, and makes rainbows appear. Use &amp;lt;code&amp;gt;#CAVE&amp;lt;/code&amp;gt; at the same time to remove the rainbows and change the fog a bit&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Portal:Overgrowth&amp;diff=5977</id>
		<title>Portal:Overgrowth</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Portal:Overgrowth&amp;diff=5977"/>
		<updated>2018-04-07T03:23:33Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: /* Asset Creation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Portals|{{PAGENAME}}]] [[Category:Overgrowth|{{PAGENAME}}]] &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Overgrowth Portal Header}}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.wolfire.com/overgrowth Overgrowth] is a cross-platform game developed by Wolfire Games, an independent game development company. Overgrowth is the spiritual successor to [[Lugaru]], an earlier game also developed by Wolfire. Development of Overgrowth was officially announced on September 17th, 2008, and version 1.0 was officially released on October 16th, 2017. The game is currently purchasable via [http://www.wolfire.com/overgrowth/preorder direct order], through [https://www.humblebundle.com/store/overgrowth Humble Bundle], and [http://store.steampowered.com/app/25000/Overgrowth/ Steam].&lt;br /&gt;
&lt;br /&gt;
Overgrowth&#039;s Gameplay emphasizes fluid, fast-paced, 3rd-person perspective armed and unarmed melee combat, 3D-platforming, and stealthy infiltration. Overgrowth uses a custom game engine codenamed &amp;quot;[[Phoenix Engine|Phoenix]]&amp;quot;, and a lot of work has been put into making it accessible to [[Editor_Interface|modding]].&lt;br /&gt;
&lt;br /&gt;
The game currently consists of two campaigns - a remastering of Lugaru in the Phoenix engine, and its successor, the new Overgrowth campaign, as well as a collection of maps (many of which are populated by enemies) which the player is able to explore, fight through, and even modify if they are so inclined. There are three additional gameplay modules, one called &amp;quot;Arena&amp;quot;, in which the player is pitted against procedurally generated NPC enemies in gladiatorial matches, and &amp;quot;Versus,&amp;quot; a two-player local competitive mode in which you can fight your friends, or enemies! There are also numerous player-made characters, weapons, maps, campaigns, and gameplay modifications available through the [https://steamcommunity.com/app/25000/workshop/ Steam Workshop], and a community-made tool called the [http://forums.wolfire.com/viewtopic.php?f=13&amp;amp;t=14201 SUMlauncher].&lt;br /&gt;
&lt;br /&gt;
The story of Overgrowth features a continuation of [[Turner]]&#039;s journey, 1 year after the events of [[Lugaru]]. In addition to anthropomorphic rabbits and wolves, the Overgrowth Universe now includes cats, dogs, and rats (see article: [[Races]]), all of whom appear in the main campaign.&lt;br /&gt;
&lt;br /&gt;
== Playing and Configuring Overgrowth ==&lt;br /&gt;
* [[Getting Started]]&lt;br /&gt;
* [[Control Reference]]&lt;br /&gt;
* [[Configuring Overgrowth]]&lt;br /&gt;
* [[Overgrowth FAQ]]&lt;br /&gt;
&lt;br /&gt;
== The Overgrowth Universe ==&lt;br /&gt;
* [[Races]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
* [[Characters (lore)]]&lt;br /&gt;
* [[Equipment and Weapons]]&lt;br /&gt;
* [[Lore]]&lt;br /&gt;
&lt;br /&gt;
== Phoenix Engine Documentation ==&lt;br /&gt;
&lt;br /&gt;
Here we aim to provide comprehensive documentation about all features relevant to modding and level editing.&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Creating a new Mod]]&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
* [[Editor Interface]]&lt;br /&gt;
* [[Overgrowth Levels | Setting Up a Level - XML Files]]&lt;br /&gt;
* [[Prefabs]]&lt;br /&gt;
* [[Custom Terrain | Choosing or Creating Terrain]]&lt;br /&gt;
* [[Lighting]]&lt;br /&gt;
* [[Script Parameters]]&lt;br /&gt;
* [[Characters]]&lt;br /&gt;
* [[Weapons]]&lt;br /&gt;
* [[NPC Navigation]]&lt;br /&gt;
* [[Hotspots]]&lt;br /&gt;
* [[Dialogue Editor]]&lt;br /&gt;
* [[Checkpoints]]&lt;br /&gt;
* [[Shader And Weather Effects]]&lt;br /&gt;
** [[Rain Weather Effects]]&lt;br /&gt;
* [[LevelScripts]]&lt;br /&gt;
&lt;br /&gt;
=== Asset Creation ===&lt;br /&gt;
* [[3D Objects]]&lt;br /&gt;
* [[Custom Terrain]]&lt;br /&gt;
* [[Custom Weapons]]&lt;br /&gt;
* [[Character Models]]&lt;br /&gt;
* [[Custom Animations]]&lt;br /&gt;
* [[Custom Attacks]]&lt;br /&gt;
* [[Particle Effects]]&lt;br /&gt;
* [[Custom Decals]]&lt;br /&gt;
* [[Binary File Formats]]&lt;br /&gt;
* [[Shader Creation]]&lt;br /&gt;
&lt;br /&gt;
=== Tutorials ===&lt;br /&gt;
* [[Making a Pitch Black Level]]&lt;br /&gt;
* [[Making New Models &amp;amp; Textures]]&lt;br /&gt;
* [[Dialogue]]&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
* [[Scripting]]&lt;br /&gt;
* [[Common Script External Code]]&lt;br /&gt;
* [[Hotspot Scripting]]&lt;br /&gt;
** [[Level Script External Code|Hotspot Script External Code]]&lt;br /&gt;
* [[LevelScripts]]&lt;br /&gt;
** [[Level Script External Code]]&lt;br /&gt;
* [[Character Scripting]]&lt;br /&gt;
** [[Character Script External Code]]&lt;br /&gt;
* [[Editor Camera]]&lt;br /&gt;
** [[Editor Camera Script External Code]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [[Useful Links]]&lt;br /&gt;
* [[Supported Video Cards]]&lt;br /&gt;
* [[Overgrowth_Linux|Linux]]&lt;br /&gt;
* [[Alpha List]]&lt;br /&gt;
* [[Overgrowth tests]] {{stub}}&lt;br /&gt;
* [[Post Processing Effects]]&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Checkpoints&amp;diff=5968</id>
		<title>Checkpoints</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Checkpoints&amp;diff=5968"/>
		<updated>2018-03-30T22:40:15Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: /* Using the checkpoint system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Checkpoints allow you to set up goals that the player can achieve to advance progress in a level.&lt;br /&gt;
&lt;br /&gt;
With them you can move the player spawn point upon death and allow defeated enemies to remain dead.&lt;br /&gt;
&lt;br /&gt;
When the player advances progress, you can do nothing, play a dialogue, spawn new enemies, or trigger a level win (load the next level).&lt;br /&gt;
&lt;br /&gt;
You can make some of the checkpoints optional, so player progress is saved, but the player does not have to touch them to complete the level.&lt;br /&gt;
&lt;br /&gt;
== Using the checkpoint system ==&lt;br /&gt;
&lt;br /&gt;
Start by creating a new level, or opening an existing level, and activating the editor by hitting &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You might want to enable the debug window &amp;lt;code&amp;gt;&#039;&#039;&#039;Windows → Debug Window&#039;&#039;&#039;&amp;lt;/code&amp;gt; so you can see which is the current checkpoint, shown as &amp;lt;code&amp;gt;&#039;&#039;&#039;progress: #&#039;&#039;&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debug keys (these will work once a level has checkpoints):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|reset the level to the currently achieved checkpoint&lt;br /&gt;
|-&lt;br /&gt;
|K&lt;br /&gt;
|swap to the next checkpoint, or wrap around to the first (remember to hit &amp;lt;kbd&amp;gt;&#039;&#039;&#039;L&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; after to reset)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To add the checkpoint system to a level:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load Item...&#039;&#039;&#039; -&amp;gt; &amp;lt;code&amp;gt;&#039;&#039;&#039;Data/Objects/Hotspots/overgrowth_level.xml&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this, set goals, and possibly pre/post goal actions.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
Goals must be accomplished by the player, in order.&lt;br /&gt;
&lt;br /&gt;
Some goals are optional, in which case the player may defeat later goals, and these goals will be considered &amp;quot;accomplished&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The table below shows the types of goals that can be used as checkpoints. Below the table are instructions for how to use each goal.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[#reach goal|reach]]&lt;br /&gt;
|when touched, moves the player spawn point and saves defeated enemies. must touch it to complete the level/advance progress&lt;br /&gt;
|-&lt;br /&gt;
|[[#reach_skippable goal|reach_skippable]]&lt;br /&gt;
|same as &amp;quot;reach&amp;quot; goal but the player never has to reach it to complete the level/advance progress&lt;br /&gt;
|-&lt;br /&gt;
|[[#defeat goal|defeat]]&lt;br /&gt;
|the player must defeat a list of enemies to complete the level/advance progress&lt;br /&gt;
|-&lt;br /&gt;
|[[#defeat_optional goal|defeat_optional]]&lt;br /&gt;
|the player may defeat a list of enemies to advance progress. If a further goal is accomplished first, these enemies are considered &amp;quot;defeated&amp;quot; when the character respawns&lt;br /&gt;
|-&lt;br /&gt;
|[[#spawn_defeat goal|spawn_defeat]]&lt;br /&gt;
|same as &amp;quot;defeat&amp;quot; goal but the enemies to defeat are spawned when that becomes the current goal (or on reset)&lt;br /&gt;
|-&lt;br /&gt;
|[[#no_delay_modifier|no_delay]]&lt;br /&gt;
|this is a modifier that reduces the time of the current goal_post or next goal_pre being triggered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== reach goal ===&lt;br /&gt;
&lt;br /&gt;
# Add the checkpoint hotspot to the scene. This is the trigger for the checkpoint. &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load Item...&#039;&#039;&#039; -&amp;gt; &amp;lt;code&amp;gt;&#039;&#039;&#039;Data/Objects/Hotspots/overgrowth_level_checkpoint.xml&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add the placeholder object to the scene. This is the player spawn. &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Utility&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Placeholder&#039;&#039;&#039; &lt;br /&gt;
# Set the checkpoint hotspot &amp;lt;code&amp;gt;&#039;&#039;&#039;checkpoint_id&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to a value starting at &amp;lt;code&amp;gt;&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &#039;&#039;increasing by 1&#039;&#039; for each checkpoint you add&lt;br /&gt;
# Set the checkpoint hotspot &amp;lt;code&amp;gt;&#039;&#039;&#039;level_hotspot_id&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to the &#039;&#039;object id&#039;&#039; of the overgrowth_level hotspot&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to the overgrowth_level hotspot and set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;reach &amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;, with the number from step 3&lt;br /&gt;
# Add a value to the overgrowth_level hotspot &amp;lt;code&amp;gt;&#039;&#039;&#039;player_spawn&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter, delimited with spaces, with the id of the placeholder object from step 2 (&amp;lt;code&amp;gt;437 243 121&amp;lt;/code&amp;gt;). The order matters, and the id for checkpoint 0 should go in the first spot, checkpoint 1 in the second spot, etc. You can see that you&#039;ve written the correct ID if a transparent character model appears in the placeholder hotspot.&lt;br /&gt;
&lt;br /&gt;
The numbers in checkpoints are tricky to get right. To add an additional checkpoint:&lt;br /&gt;
&lt;br /&gt;
# Add another goal param to the overgrowth_level hotspot, and give it a number one higher than the previous goal. So if your previous goal was &amp;lt;code&amp;gt;goal_0&amp;lt;/code&amp;gt;, you would add another one with the name &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_1&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the goal param&#039;s value to one higher than the previous goal. So if the previous one was &amp;lt;code&amp;gt;&#039;&#039;&#039;reach 5&#039;&#039;&#039;&amp;lt;/code&amp;gt;, this new param&#039;s value would be &amp;lt;code&amp;gt;&#039;&#039;&#039;reach 6&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Load a checkpoint object, and set its &amp;lt;code&amp;gt;&#039;&#039;&#039;checkpoint_id&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to a value that matches the reach goal in step #2. So, if the goal is &amp;lt;code&amp;gt;&#039;&#039;&#039;reach 6&#039;&#039;&#039;&amp;lt;/code&amp;gt;, then this would just be &amp;lt;code&amp;gt;&#039;&#039;&#039;6&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the checkpoint object&#039;s &amp;lt;code&amp;gt;&#039;&#039;&#039;level_hotspot_id&#039;&#039;&#039;&amp;lt;/code&amp;gt; param&lt;br /&gt;
# Load a placeholder object for the player to spawn at&lt;br /&gt;
# Add the id of the placeholder object to the end of the overgrowth_level&#039;s &amp;lt;code&amp;gt;&#039;&#039;&#039;player_spawn&#039;&#039;&#039;&amp;lt;/code&amp;gt; param. So if it was previously &amp;lt;code&amp;gt;&#039;&#039;&#039;123 456&#039;&#039;&#039;&amp;lt;/code&amp;gt; then it would now be something like &amp;lt;code&amp;gt;&#039;&#039;&#039;123 456 784&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== reach_skippable goal ===&lt;br /&gt;
&lt;br /&gt;
Do all the same as a &amp;quot;reach&amp;quot; hotspot, but in step 5 set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;reach_skippable &amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&#039;&#039;&#039;reach &amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== defeat goal ===&lt;br /&gt;
&lt;br /&gt;
# Add an enemy to the level&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to the overgrowth_level hotspot and set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;defeat &amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;, with the object id of the enemy from step 1&lt;br /&gt;
# Add additional enemy ids in the form of &amp;lt;code&amp;gt;&#039;&#039;&#039;defeat &amp;lt;some_enemy_id&amp;gt; &amp;lt;other_enemy_id&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;, just like in step two (e.g. &amp;lt;code&amp;gt;defeat 4 72 8&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== defeat_optional goal ===&lt;br /&gt;
&lt;br /&gt;
Do all the same as a [[#defeat goal|defeat goal]], but in step 2 set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;defeat_optional &amp;lt;numbers...&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&#039;&#039;&#039;defeat &amp;lt;numbers...&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== spawn_defeat goal ===&lt;br /&gt;
&lt;br /&gt;
Do all the same as a [[#defeat goal|defeat goal]], but in step 2 set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;spawn_defeat &amp;lt;numbers...&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&#039;&#039;&#039;defeat &amp;lt;numbers...&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== no_delay modifier ===&lt;br /&gt;
Removes some of the delay between when an objective is completed and when the next step is started. &#039;&#039;&#039;TODO: How/when is this useful?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; action to the overgrowth_level hotspot&lt;br /&gt;
# Add &amp;lt;code&amp;gt;&#039;&#039;&#039;no_delay&#039;&#039;&#039;&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; Script Param&#039;s value slot, after the specified goal and a space.&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; &lt;br /&gt;
{| class = wikitable&lt;br /&gt;
! Script Param !! Value&lt;br /&gt;
|-&lt;br /&gt;
|goal_2 || defeat 363 &#039;&#039;&#039;no_delay&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t specify a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; action, the modifier will shorten the time to the next &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; action instead.&lt;br /&gt;
&lt;br /&gt;
== Pre/post goal actions ==&lt;br /&gt;
&lt;br /&gt;
You can trigger an action to happen, either when a goal is set as the &amp;quot;current&amp;quot; goal, or after a goal has been accomplished.&lt;br /&gt;
&lt;br /&gt;
Goal actions can be combined with each other. Just put a space between them (e.g. &amp;lt;code&amp;gt;&#039;&#039;&#039;activate 537 dialogue ShopkeeperBanter&#039;&#039;&#039;&amp;lt;/code&amp;gt;). Make sure to put them in the order you want them to happen (if that&#039;s important).&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of actions that can be triggered:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[#activate action|activate]]&lt;br /&gt;
|make a character with the given id active. This removes the &amp;quot;static&amp;quot; flag from the character. Useful for reducing CPU utilization for characters you haven&#039;t reached yet&lt;br /&gt;
|-&lt;br /&gt;
|[[#enable.2Fdisable_actions|enable]]&lt;br /&gt;
|enable a game object with the given id. This can be any object type, not just a character. This will make it appear in game and activate its behavior&lt;br /&gt;
|-&lt;br /&gt;
|[[#enable.2Fdisable_actions|disable]]&lt;br /&gt;
|disable a game object with the given id. This can be any object type, not just a character. This will make it disappear in game and deactivate its behavior&lt;br /&gt;
|-&lt;br /&gt;
|[[#dialogue action|dialogue]]&lt;br /&gt;
|play a dialogue with the given dialogue name&lt;br /&gt;
|-&lt;br /&gt;
|[[#dialogue_fade_.26_dialogue_fade_if_not_hostile_actions|dialogue_fade]]&lt;br /&gt;
|same as &amp;lt;code&amp;gt;&#039;&#039;&#039;dialogue&#039;&#039;&#039;&amp;lt;/code&amp;gt; action but the dialogue is faded in/out at the beginning and end (except on reset). Useful to make dialogue &amp;quot;teleportation&amp;quot; feel less jarring&lt;br /&gt;
|-&lt;br /&gt;
|[[#dialogue_fade_.26_dialogue_fade_if_not_hostile_actions|dialogue_fade_if_not_hostile]]&lt;br /&gt;
|same as &amp;lt;code&amp;gt;&#039;&#039;&#039;dialogue_fade&#039;&#039;&#039;&amp;lt;/code&amp;gt; action but the dialogue is not triggered at all if you&#039;re currently still in combat. Useful to prevent enemys from attacking the player while in dialogue&lt;br /&gt;
|-&lt;br /&gt;
|[[#play_success_sting_action|play_success_sting]]&lt;br /&gt;
|play the success music track, since this was a particularly challenging goal. Usually done on a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_N_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; action&lt;br /&gt;
|-&lt;br /&gt;
|[[#music_layer_override_action|music_layer_override]]&lt;br /&gt;
|force play of the given music track layer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== activate action ===&lt;br /&gt;
&lt;br /&gt;
This action is mostly useful for &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; actions, so you can activate static characters right before you come to them and interact with them. It is best used to conserve CPU power when more than 3 or 4 characters are in level.&lt;br /&gt;
&lt;br /&gt;
You can use these both for both enemies and allies, so you don&#039;t have to have this character in a [[#defeat goal|defeat goal]] in order to use it.&lt;br /&gt;
&lt;br /&gt;
You can combine this with other actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Add an NPC to the level (friend or enemy)&lt;br /&gt;
# Set up the NPC with a [[#defeat goal|defeat goal]] (optional, if this is an enemy you want to have to defeat this goal)&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to the overgrowth_level hotspot and set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;activate &amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;, with the object id of the NPC from step 1. The character will be activated just a this goal as set as the active goal.&lt;br /&gt;
# Repeat 1 and 3 for as many characters as you want, separated with spaces, with a new &amp;lt;code&amp;gt;activate&amp;lt;/code&amp;gt; action for each (i.e. &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_3_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;&#039;&#039;&#039;activate 127 activate 543&#039;&#039;&#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== enable/disable actions ===&lt;br /&gt;
&lt;br /&gt;
These actions are useful for &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; actions, so you can enable objects (or characters) right before you come to them, or disable them at the end of a dialogue.&lt;br /&gt;
&lt;br /&gt;
(You could use them as &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; actions, if it makes sense to, but I&#039;m not sure if that&#039;s going to be useful as frequently)&lt;br /&gt;
&lt;br /&gt;
You can use these for any type of object, so you don&#039;t need any particular goal type (e.g. a [[#defeat goal|defeat goal]]) in order to use this.&lt;br /&gt;
&lt;br /&gt;
You can combine these with other actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Spawn an object to the level (any kind)&lt;br /&gt;
# Set up the goal that you want to this object to be &amp;quot;enabled/disabled&amp;quot; by (it appears/disappears in level as soon as the goal is set to be active)&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to the overgrowth_level hotspot and set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;enable &amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;&#039;&#039;disable &amp;lt;number&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;, with the object id from step 1. The object will be enabled/disabled (appear/disappear in level) just a this goal is set as the active goal.&lt;br /&gt;
# Repeat 1 and 3 for as many objects as you want, separated with spaces, with a new &amp;lt;code&amp;gt;enable&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt; action for each (i.e. &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_3_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;&#039;&#039;&#039;enable 127 enable 543 disable 443&#039;&#039;&#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== dialogue action ===&lt;br /&gt;
&lt;br /&gt;
This action is useful for both &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; actions, so you can activate dialogues both to describe a goal when you get to it, and when a goal is completed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;goalnumber&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; action, the last two lines of dialogue will be started again if you die and respawn. The player will also be placed wherever the dialogue placed them, rather than at their spawn point.&lt;br /&gt;
&lt;br /&gt;
You can combine this with other actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Add a dialogue to the level and get it working with the dialogue editor. Note that the dialogue can affect the player&#039;s spawn point, so put the character where you want them to be after the dialogue finishes&lt;br /&gt;
# Set up the goal that you want this dialogue to be triggered by&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;goalnumber&amp;gt;_pre&#039;&#039;&#039;&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt;) parameter to the overgrowth_level hotspot and set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;dialogue &amp;lt;dialoguename&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;The dialoguename parameter should be set to dialogue name from step 1. The goalnumber parameter is goal from step 2 that you want the dialogue to be triggered before (or after).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To trigger a dialogue just after achieving a checkpoint goal (whether a &amp;quot;reach&amp;quot; or &amp;quot;defeat&amp;quot; checkpoint):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do all the same as a dialogue triggered before progressing to a given checkpoint, but name the parameter &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_5_post&#039;&#039;&#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== dialogue_fade &amp;amp; dialogue_fade_if_not_hostile actions====&lt;br /&gt;
&lt;br /&gt;
Do all the same steps as for the [[#dialogue_action|dialogue action]], but at step 3 add &amp;lt;code&amp;gt;&#039;&#039;&#039;dialogue_fade &amp;lt;dialoguename&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;&#039;&#039;dialogue_fade_if_not_hostile &amp;lt;dialoguename&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; to the value slot of the &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_pre/post&#039;&#039;&#039;&amp;lt;/code&amp;gt; script parameter instead of &amp;lt;code&amp;gt;&#039;&#039;&#039;dialogue &amp;lt;dialoguename&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===play_success_sting action===&lt;br /&gt;
&lt;br /&gt;
This action is useful as a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; action if the goal was particulary difficult to accomplish. It will play music that indicates success to the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The success sting is different depending on the music specified in the overgrowth_level hotspot.&lt;br /&gt;
&lt;br /&gt;
You can combine this with other actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Set up the goal that you want this action to be triggered by&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_post&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to the overgrowth_level hotspot for the goal you want to add the success sting to and set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;play_success_sting&#039;&#039;&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== music_layer_override action ===&lt;br /&gt;
&lt;br /&gt;
With this action you can set the music layer, tell the game to decide the layer based on activity in the level (is the player in combat or not?) or mute the music.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can&#039;t change the music track specified with the &amp;lt;code&amp;gt;music&amp;lt;/code&amp;gt; script parameter in the overgrowth_level hotspot with this acton unless you add layers to a given track. &#039;&#039;&#039;TODO: Should this be written here?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can combine this with other actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;possible &amp;lt;code&amp;gt;music_layer_override &amp;lt;layer&amp;gt;&amp;lt;/code&amp;gt; values:&#039;&#039;&#039;&lt;br /&gt;
{| class = wikitable&lt;br /&gt;
!0, 1, 2, 3, 4 &lt;br /&gt;
| Sets the music layer (higher means more intense)&lt;br /&gt;
|-&lt;br /&gt;
! -1 &lt;br /&gt;
| Tells the game to set the music layer based on activity in the level&lt;br /&gt;
|-&lt;br /&gt;
! -2 &lt;br /&gt;
| Mutes the music&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Set up the goal that you want this action to be triggered by&lt;br /&gt;
# Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;goal_&amp;lt;number&amp;gt;_&amp;lt;post or pre&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; parameter to the overgrowth_level hotspot for the goal you want to add the success sting to and set the value to &amp;lt;code&amp;gt;&#039;&#039;&#039;music_layer_override &amp;lt;layer&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;&#039;&#039;&#039;&amp;lt;layer&amp;gt;&#039;&#039;&#039;&amp;lt;/code&amp;gt; is the number of the music layer you want to be played (see table above).&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
Make sure you don&#039;t use a &amp;lt;code&amp;gt;start_dialogue&amp;lt;/code&amp;gt; hotspot on top of the player&#039;s spawn. Doing this will likely break the checkpoint system.&lt;br /&gt;
&lt;br /&gt;
If you need to start a dialogue at the beginning of the level, use a &amp;lt;code&amp;gt;goal_0_pre&amp;lt;/code&amp;gt; instead, with a value of &amp;lt;code&amp;gt;dialogue &#039;&#039;&#039;&amp;quot;dialogue name here&amp;quot;&#039;&#039;&#039;&amp;lt;/code&amp;gt;. Make sure you&#039;re setting the dialogue&#039;s name in the dialogue editor, and not in the script params or &amp;lt;code&amp;gt;&amp;quot;Selected&amp;quot;&amp;lt;/code&amp;gt; window.&lt;br /&gt;
&lt;br /&gt;
=== overgrowth_level_checkpoint ===&lt;br /&gt;
&lt;br /&gt;
Open up all of your &amp;lt;code&amp;gt;overgrowth_level_checkpoint&amp;lt;/code&amp;gt; instances, and look at the script parameters for them.&lt;br /&gt;
&lt;br /&gt;
* Make sure that &amp;lt;code&amp;gt;checkpoint_id&amp;lt;/code&amp;gt; starts at zero, and increases by 1 (&#039;&#039;and only by 1&#039;&#039;) for each subsequent checkpoint. This will be true even if the first &amp;lt;code&amp;gt;reach&amp;lt;/code&amp;gt; goal isn&#039;t &amp;lt;code&amp;gt;goal_0&amp;lt;/code&amp;gt;!&lt;br /&gt;
* Make sure that &amp;lt;code&amp;gt;reach &#039;&#039;&#039;N&#039;&#039;&#039;&amp;lt;/code&amp;gt; values match the values for &amp;lt;code&amp;gt;checkpoint_id&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Example_checkpoint_id_and_reach_goal_index.jpg|400px|thumb|none|Example of matching up &amp;quot;reach&amp;quot; and &amp;quot;hotspot_id&amp;quot; values]]&lt;br /&gt;
&lt;br /&gt;
=== overgrowth_level ===&lt;br /&gt;
&lt;br /&gt;
Open up the script parameters for the &amp;lt;code&amp;gt;overgrowth_level&amp;lt;/code&amp;gt; instance, and look at the script parameters.&lt;br /&gt;
&lt;br /&gt;
* The goals should start at &amp;lt;code&amp;gt;goal_0&amp;lt;/code&amp;gt;, not at &amp;lt;code&amp;gt;goal_1&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Look at the &amp;lt;code&amp;gt;player_spawn&amp;lt;/code&amp;gt; property. Count up the number of Ids in there (separated with spaces), and count up the number of &amp;lt;code&amp;gt;reach&amp;lt;/code&amp;gt; goals you have. Those should be the same count.&lt;br /&gt;
* Make sure that each &amp;lt;code&amp;gt;player_spawn&amp;lt;/code&amp;gt; id corresponds to a placeholder object in the world, and that you see a turner in a T-Pose inside each of them (which means that you typed them correctly in the &amp;lt;code&amp;gt;player_spawn&amp;lt;/code&amp;gt; field).&lt;br /&gt;
&lt;br /&gt;
[[File:Example_player_spawn_for_checkpoints.jpg|400px|thumb|none|Example of matching up &amp;lt;code&amp;gt;player_spawn&amp;lt;/code&amp;gt; and placeholder object id values]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5591</id>
		<title>Shader Creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5591"/>
		<updated>2018-01-29T18:39:02Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: /* How Overgrowth currently handle Shaders */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
==How a shader works==&lt;br /&gt;
&lt;br /&gt;
Usually, shaders are compound of 2 files: the .frag and the .vert. But most of the time, the relevant information is set on the .frag file.&lt;br /&gt;
&lt;br /&gt;
Overgrowth doesnt support this approach anymore, all the existing shaders on Overgrowth are stored on &amp;quot;Data/GLSL/Envobject.*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How Overgrowth currently handle Shaders==&lt;br /&gt;
&lt;br /&gt;
Right now the engine automatically substitutes certain shader strings with a different/expanded string with extra options in place. &lt;br /&gt;
&lt;br /&gt;
This means, even if seems to be that an object is using one of the shaders set inside Data/GLSL, the truth is that the engine is replacing it with another path making a reference to the shader created on envobject.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemap&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapobj&amp;quot; or &amp;quot;cubemapobjchar&amp;quot; or &amp;quot;cubemapobjitem&amp;quot; -&amp;gt; &amp;quot;envobject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapalpha&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant&amp;quot; or &amp;quot;plant_less_movement&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant_foliage&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT #NO_DECALS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4tangent&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT #BASE_TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFloor&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFlow&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOW&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creation of your custom shader==&lt;br /&gt;
&lt;br /&gt;
To create or modify an existing shader:&lt;br /&gt;
&lt;br /&gt;
# Copy the Envobject.* files and paste them on Data/GLSL folder inside your mod.&lt;br /&gt;
# Rename the envobject files to another name so it wont conflict with those from the game (we will use EnvobjectEx.* on this guide).&lt;br /&gt;
# Set the name of your shader. On this case our name will be &amp;lt;code&amp;gt;CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
# Write somewhere on the file your shader code by setting it inside an &amp;quot;if&amp;quot; statement.&lt;br /&gt;
For example: &amp;lt;code&amp;gt;#ifdef CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
and then close it with &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now, you can easily put your shader to work on any object very easily. Just go to your object .XML file, and inside the ShaderName tags, set something like this&lt;br /&gt;
&amp;lt;ShaderName&amp;gt;EnvobjectEx #CUSTOM_SHADER&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
And now your shader will be used on that object.&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5589</id>
		<title>Shader Creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5589"/>
		<updated>2018-01-26T19:28:33Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: /* Creation of your custom shader */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
==How a shader works==&lt;br /&gt;
&lt;br /&gt;
Usually, shaders are compound of 2 files: the .frag and the .vert. But most of the time, the relevant information is set on the .frag file.&lt;br /&gt;
&lt;br /&gt;
Overgrowth doesnt support this approach anymore, all the existing shaders on Overgrowth are stored on &amp;quot;Data/GLSL/Envobject.*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How Overgrowth currently handle Shaders==&lt;br /&gt;
&lt;br /&gt;
Right now &lt;br /&gt;
The engine automatically substitutes certain shader strings with a different/expanded string with extra options in place. &lt;br /&gt;
&lt;br /&gt;
This means, even if seems to be that an object is using one of the shaders set inside Data/GLSL, the truth is that the engine is replacing it with another path making a reference to the shader created on envobject.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemap&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapobj&amp;quot; or &amp;quot;cubemapobjchar&amp;quot; or &amp;quot;cubemapobjitem&amp;quot; -&amp;gt; &amp;quot;envobject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapalpha&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant&amp;quot; or &amp;quot;plant_less_movement&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant_foliage&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT #NO_DECALS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4tangent&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT #BASE_TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFloor&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFlow&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOW&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creation of your custom shader==&lt;br /&gt;
&lt;br /&gt;
To create or modify an existing shader:&lt;br /&gt;
&lt;br /&gt;
# Copy the Envobject.* files and paste them on Data/GLSL folder inside your mod.&lt;br /&gt;
# Rename the envobject files to another name so it wont conflict with those from the game (we will use EnvobjectEx.* on this guide).&lt;br /&gt;
# Set the name of your shader. On this case our name will be &amp;lt;code&amp;gt;CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
# Write somewhere on the file your shader code by setting it inside an &amp;quot;if&amp;quot; statement.&lt;br /&gt;
For example: &amp;lt;code&amp;gt;#ifdef CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
and then close it with &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now, you can easily put your shader to work on any object very easily. Just go to your object .XML file, and inside the ShaderName tags, set something like this&lt;br /&gt;
&amp;lt;ShaderName&amp;gt;EnvobjectEx #CUSTOM_SHADER&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
And now your shader will be used on that object.&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5588</id>
		<title>Shader Creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5588"/>
		<updated>2018-01-26T19:27:43Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: /* How Overgrowth currently hande Shaders */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
==How a shader works==&lt;br /&gt;
&lt;br /&gt;
Usually, shaders are compound of 2 files: the .frag and the .vert. But most of the time, the relevant information is set on the .frag file.&lt;br /&gt;
&lt;br /&gt;
Overgrowth doesnt support this approach anymore, all the existing shaders on Overgrowth are stored on &amp;quot;Data/GLSL/Envobject.*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How Overgrowth currently handle Shaders==&lt;br /&gt;
&lt;br /&gt;
Right now &lt;br /&gt;
The engine automatically substitutes certain shader strings with a different/expanded string with extra options in place. &lt;br /&gt;
&lt;br /&gt;
This means, even if seems to be that an object is using one of the shaders set inside Data/GLSL, the truth is that the engine is replacing it with another path making a reference to the shader created on envobject.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemap&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapobj&amp;quot; or &amp;quot;cubemapobjchar&amp;quot; or &amp;quot;cubemapobjitem&amp;quot; -&amp;gt; &amp;quot;envobject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapalpha&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant&amp;quot; or &amp;quot;plant_less_movement&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant_foliage&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT #NO_DECALS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4tangent&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT #BASE_TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFloor&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFlow&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOW&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creation of your custom shader==&lt;br /&gt;
&lt;br /&gt;
To create or modify an existing shader:&lt;br /&gt;
&lt;br /&gt;
# Copy the Envobject.* files and paste them on Data/GLSL folder inside your mod.&lt;br /&gt;
# Rename the envobject files to another name so it wont conflict with those from the game (we will use EnvobjectEx.* on this guide).&lt;br /&gt;
# Set the name of your shader. On this case our name will be &amp;lt;code&amp;gt;CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
# Write somewhere on the file your shader code by setting it inside an &amp;quot;if&amp;quot; statement.&lt;br /&gt;
For example: &amp;lt;code&amp;gt;#ifdef CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
and then close it with &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now, you can easily put your shader to work on any object very easily. Just go to your object .XML file, and inside the ShaderName tags, set something like this&lt;br /&gt;
&amp;lt;ShaderName&amp;gt;EnvobjectEx #CUSTOM_SHADER&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
And now your shader will work.&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5587</id>
		<title>Shader Creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5587"/>
		<updated>2018-01-26T19:15:16Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
==How a shader works==&lt;br /&gt;
&lt;br /&gt;
Usually, shaders are compound of 2 files: the .frag and the .vert. But most of the time, the relevant information is set on the .frag file.&lt;br /&gt;
&lt;br /&gt;
Overgrowth doesnt support this approach anymore, all the existing shaders on Overgrowth are stored on &amp;quot;Data/GLSL/Envobject.*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How Overgrowth currently hande Shaders==&lt;br /&gt;
&lt;br /&gt;
Right now &lt;br /&gt;
The engine automatically substitutes certain shader strings with a different/expanded string with extra options in place. &lt;br /&gt;
&lt;br /&gt;
This means, even if seems to be that an object is using one of the shaders set inside Data/GLSL, the truth is that the engine is replacing it with another path making a reference to the shader created on envobject.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemap&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapobj&amp;quot; or &amp;quot;cubemapobjchar&amp;quot; or &amp;quot;cubemapobjitem&amp;quot; -&amp;gt; &amp;quot;envobject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapalpha&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant&amp;quot; or &amp;quot;plant_less_movement&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant_foliage&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT #NO_DECALS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4tangent&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT #BASE_TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFloor&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFlow&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOW&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creation of your custom shader==&lt;br /&gt;
&lt;br /&gt;
To create or modify an existing shader:&lt;br /&gt;
&lt;br /&gt;
# Copy the Envobject.* files and paste them on Data/GLSL folder inside your mod.&lt;br /&gt;
# Rename the envobject files to another name so it wont conflict with those from the game (we will use EnvobjectEx.* on this guide).&lt;br /&gt;
# Set the name of your shader. On this case our name will be &amp;lt;code&amp;gt;CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
# Write somewhere on the file your shader code by setting it inside an &amp;quot;if&amp;quot; statement.&lt;br /&gt;
For example: &amp;lt;code&amp;gt;#ifdef CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
and then close it with &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now, you can easily put your shader to work on any object very easily. Just go to your object .XML file, and inside the ShaderName tags, set something like this&lt;br /&gt;
&amp;lt;ShaderName&amp;gt;EnvobjectEx #CUSTOM_SHADER&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
And now your shader will work.&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5586</id>
		<title>Shader Creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Shader_Creation&amp;diff=5586"/>
		<updated>2018-01-26T19:11:56Z</updated>

		<summary type="html">&lt;p&gt;Edoantonioco: Created page with &amp;quot;Category: Modding Category: Overgrowth  ==How a shader works==  Usually, shaders are compund of 2 files: the .frag and the .vert. But most of the time, the relevant infor...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
==How a shader works==&lt;br /&gt;
&lt;br /&gt;
Usually, shaders are compund of 2 files: the .frag and the .vert. But most of the time, the relevant information is set on the .frag file.&lt;br /&gt;
&lt;br /&gt;
Overgrowth doesnt support this approach anymore, all the existing shaders on Overgrowth are stored on &amp;quot;Data/GLSL/Envobject.*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How Overgrowth currently hande Shaders==&lt;br /&gt;
&lt;br /&gt;
Right now &lt;br /&gt;
The engine automatically substitutes certain shader strings with a different/expanded string with extra options in place. &lt;br /&gt;
&lt;br /&gt;
This means, even if seems to be that an object is using one of the shaders set inside Data/GLSL, the truth is that the engine is replacing it with another path making a reference to the shader created on envobject.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemap&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapobj&amp;quot; or &amp;quot;cubemapobjchar&amp;quot; or &amp;quot;cubemapobjitem&amp;quot; -&amp;gt; &amp;quot;envobject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cubemapalpha&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant&amp;quot; or &amp;quot;plant_less_movement&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;plant_foliage&amp;quot; -&amp;gt; &amp;quot;envobject #TANGENT #ALPHA #PLANT #NO_DECALS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;detailmap4tangent&amp;quot; -&amp;gt; &amp;quot;envobject #DETAILMAP4 #TANGENT #BASE_TANGENT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFloor&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;MagmaFlow&amp;quot; -&amp;gt; &amp;quot;envobject #MAGMA_FLOW&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creation of your custom shader==&lt;br /&gt;
&lt;br /&gt;
To create or modify an existing shader:&lt;br /&gt;
&lt;br /&gt;
# Copy the Envobject.* files and paste them on Data/GLSL folder inside your mod.&lt;br /&gt;
# Rename the envobject files to another name so it wont conflict with those from the game (we will use EnvobjectEx.* on this guide).&lt;br /&gt;
# Set the name of your shader. On this case our name will be &amp;lt;code&amp;gt;CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
# Write somewhere on the file your shader code by setting it inside an &amp;quot;if&amp;quot; statement.&lt;br /&gt;
For example: &amp;lt;code&amp;gt;#ifdef CUSTOM_SHADER&amp;lt;/code&amp;gt;&lt;br /&gt;
and then close it with &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now, you can easily put your shader to work on any object very easily. Just go to your object .XML file, and inside the ShaderName tags, set something like this&lt;br /&gt;
&amp;lt;ShaderName&amp;gt;EnvobjectEx #CUSTOM_SHADER&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
And now your shader will work.&lt;/div&gt;</summary>
		<author><name>Edoantonioco</name></author>
	</entry>
</feed>