<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thedarkmod.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flanders</id>
	<title>The DarkMod Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thedarkmod.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flanders"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Special:Contributions/Flanders"/>
	<updated>2026-04-30T08:58:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Resizing_Models&amp;diff=9358</id>
		<title>Resizing Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Resizing_Models&amp;diff=9358"/>
		<updated>2009-11-09T12:41:00Z</updated>

		<summary type="html">&lt;p&gt;Flanders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Fidcal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resizing models is generally not recommended but I do it a lot. It works fine with many models but there are a few fixes needed.&lt;br /&gt;
&lt;br /&gt;
* This method does not work with any AI or corpses.&lt;br /&gt;
* It does not work with moveables or movers. (I am unsure about movers - it might be OK if they are symmetrically resized, eg, all dimensions doubled.)&lt;br /&gt;
* It does not work with &#039;&#039;all&#039;&#039; static models anyway. So you have to try it on a particular model then check it in-game to see if it looks and works correctly. It&#039;s a hack. This is how I do it:&lt;br /&gt;
&lt;br /&gt;
Do not rotate the model first. If you have then first delete the rotation property. Otherwise the numbers might be too complex to deal with easily (try it and see!)&lt;br /&gt;
&lt;br /&gt;
Give the model this property:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;rotation 1 0 0 0 1 0 0 0 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That mean unrotated scale normal. (a quick way to get the above from UNrotated is rotate 45 degrees then back again in top view.)&lt;br /&gt;
&lt;br /&gt;
The 1&#039;s are the scale so double all sides would be 2 0 0 0 2 0 0 0 2&lt;br /&gt;
Or half width double height might be 0.5 0 0 0 0.5 0 0 0 2&lt;br /&gt;
Note that these are &#039;&#039;world&#039;&#039; oriented so if you need to rotate the model later you should anticipate that and change the side that &#039;&#039;will&#039;&#039; be turned that way after you rotate it! (experiement and undo and you&#039;ll see soon see what I mean. If you make a long table even longer then rotate it then now it is not longer but &#039;fatter&#039;!)&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve done the above then you can rotate the model if necessary subject to what I said above. &lt;br /&gt;
&lt;br /&gt;
The collision model is now &#039;wrong&#039; (it&#039;s still the original size) so give the model the property solid 0. Now you and AI can walk through it so build a nodraw solid brush(es) inside roughly the shape (there are nodraw solid textures for different materials so pick the right one eg, nodraw_solid_wood so it sounds correct when impacted.) &lt;br /&gt;
&lt;br /&gt;
The shadow will be &#039;wrong&#039; (it&#039;s still the original size). Set the model noshadows 1 so it has no shadow. If you want a shadow then make the inner brush to be a real material like wood.&lt;br /&gt;
&lt;br /&gt;
If there is a texture specular map (shinyness) then it won&#039;t scale so the texture might go unnaturally dark, almost black. Avoid those. But many models work fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Addition by Flanders 9-11-2009&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are familiar with matrix calculation than this might be useful if you want to use the rotation spawnarg for arbitrary transformations.&lt;br /&gt;
&lt;br /&gt;
The notation that is used with the rotation spawnarg is that of a 3x3 transformation matrix like this one on the left:&lt;br /&gt;
&lt;br /&gt;
 [ 1 0 0 ] [ x ]   [ x ]&lt;br /&gt;
 [ 0 1 0 ] [ y ] = [ y ] &lt;br /&gt;
 [ 0 0 1 ] [ z ]   [ z ]&lt;br /&gt;
&lt;br /&gt;
The transformation matrix transforms the model coordinates into a new set of coordinates, so if you want to scale a model use it like this:&lt;br /&gt;
 [ 1 0   0 ] [ x ]   [    x ]&lt;br /&gt;
 [ 0 2   0 ] [ y ] = [   2y ] &lt;br /&gt;
 [ 0 0 0.5 ] [ z ]   [ 0.5z ]&lt;br /&gt;
&lt;br /&gt;
For reflections use a negative scale value.&lt;br /&gt;
&lt;br /&gt;
For rotations use one of these:&lt;br /&gt;
&lt;br /&gt;
Around the x-axis:&lt;br /&gt;
&lt;br /&gt;
 [ 1 0       0      ]&lt;br /&gt;
 [ 0 cos(a) -sin(a) ]&lt;br /&gt;
 [ 0 sin(a)  cos(a) ]&lt;br /&gt;
&lt;br /&gt;
For a rotation of 90 degrees that gives:&lt;br /&gt;
&lt;br /&gt;
 [ 1 0  0 ] [ x ]   [  x ]&lt;br /&gt;
 [ 0 0 -1 ] [ y ] = [ -z ] &lt;br /&gt;
 [ 0 1  0 ] [ z ]   [  y ]&lt;br /&gt;
&lt;br /&gt;
Around the y-axis:&lt;br /&gt;
&lt;br /&gt;
 [  cos(a) 0 sin(a) ]&lt;br /&gt;
 [  0      1 0      ]&lt;br /&gt;
 [ -sin(a) 0 cos(a) ]&lt;br /&gt;
&lt;br /&gt;
Around the z-axis:&lt;br /&gt;
&lt;br /&gt;
 [ cos(a) -sin(a) 0 ]&lt;br /&gt;
 [ sin(a)  cos(a) 0 ]&lt;br /&gt;
 [ 0       0      1 ]&lt;br /&gt;
&lt;br /&gt;
If you want to scale and rotate a model in an arbitrary way, scale and rotate the model separately, get the right matrix for scaling first, then delete the rotation spawnarg and get the right matrix for rotation. Multiply these two matrices to get the combination of the two transformations. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
I want to widen and flatten a model so I use this for scaling:&lt;br /&gt;
&lt;br /&gt;
 2 0 0 0 1 0 0 0 0.5&lt;br /&gt;
&lt;br /&gt;
Now I want to rotate it 45 degrees around the z axis:&lt;br /&gt;
&lt;br /&gt;
I delete the rotation spawnarg to get the model back in it’s original size, I use Modify &amp;gt; rotate and scale and rotate it 45 degrees around the z-axis:&lt;br /&gt;
&lt;br /&gt;
 0.707107 -0.707107 0 0.707107 0.707107 0 0 0 1&lt;br /&gt;
&lt;br /&gt;
Multiply them like this:&lt;br /&gt;
&lt;br /&gt;
 [ 2 0   0 ]   [ 0.707107 -0.707107 0 ]   [ 1.414 -1.414   0 ]&lt;br /&gt;
 [ 0 1   0 ] x [ 0.707107  0.707107 0 ] = [ 0.707  0.707   0 ]&lt;br /&gt;
 [ 0 0 0.5 ]   [        0         0 1 ]   [     0      0 0.5 ]&lt;br /&gt;
&lt;br /&gt;
And enter the result in as the rotation spawnarg:&lt;br /&gt;
&lt;br /&gt;
 1.414 -1.414  0.000 0.707  0.707  0.000 0.000  0.000  0.500 &lt;br /&gt;
&lt;br /&gt;
This gets me a wide and flat model rotated 45 degrees.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Resizing_Models&amp;diff=9357</id>
		<title>Resizing Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Resizing_Models&amp;diff=9357"/>
		<updated>2009-11-09T12:35:53Z</updated>

		<summary type="html">&lt;p&gt;Flanders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Fidcal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resizing models is generally not recommended but I do it a lot. It works fine with many models but there are a few fixes needed.&lt;br /&gt;
&lt;br /&gt;
* This method does not work with any AI or corpses.&lt;br /&gt;
* It does not work with moveables or movers. (I am unsure about movers - it might be OK if they are symmetrically resized, eg, all dimensions doubled.)&lt;br /&gt;
* It does not work with &#039;&#039;all&#039;&#039; static models anyway. So you have to try it on a particular model then check it in-game to see if it looks and works correctly. It&#039;s a hack. This is how I do it:&lt;br /&gt;
&lt;br /&gt;
Do not rotate the model first. If you have then first delete the rotation property. Otherwise the numbers might be too complex to deal with easily (try it and see!)&lt;br /&gt;
&lt;br /&gt;
Give the model this property:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;rotation 1 0 0 0 1 0 0 0 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That mean unrotated scale normal. (a quick way to get the above from UNrotated is rotate 45 degrees then back again in top view.)&lt;br /&gt;
&lt;br /&gt;
The 1&#039;s are the scale so double all sides would be 2 0 0 0 2 0 0 0 2&lt;br /&gt;
Or half width double height might be 0.5 0 0 0 0.5 0 0 0 2&lt;br /&gt;
Note that these are &#039;&#039;world&#039;&#039; oriented so if you need to rotate the model later you should anticipate that and change the side that &#039;&#039;will&#039;&#039; be turned that way after you rotate it! (experiement and undo and you&#039;ll see soon see what I mean. If you make a long table even longer then rotate it then now it is not longer but &#039;fatter&#039;!)&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve done the above then you can rotate the model if necessary subject to what I said above. &lt;br /&gt;
&lt;br /&gt;
The collision model is now &#039;wrong&#039; (it&#039;s still the original size) so give the model the property solid 0. Now you and AI can walk through it so build a nodraw solid brush(es) inside roughly the shape (there are nodraw solid textures for different materials so pick the right one eg, nodraw_solid_wood so it sounds correct when impacted.) &lt;br /&gt;
&lt;br /&gt;
The shadow will be &#039;wrong&#039; (it&#039;s still the original size). Set the model noshadows 1 so it has no shadow. If you want a shadow then make the inner brush to be a real material like wood.&lt;br /&gt;
&lt;br /&gt;
If there is a texture specular map (shinyness) then it won&#039;t scale so the texture might go unnaturally dark, almost black. Avoid those. But many models work fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Addition by Flanders 9-11-2009&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are familiar with matrix calculation than this might be useful if you want to use the rotation spawnarg for arbitrary transformations.&lt;br /&gt;
&lt;br /&gt;
The notation that is used with the rotation spawnarg is that of a 3x3 transformation matrix like this one on the left:&lt;br /&gt;
&lt;br /&gt;
 [ 1 0 0 ] [ x ]   [ x ]&lt;br /&gt;
 [ 0 1 0 ] [ y ] = [ y ] &lt;br /&gt;
 [ 0 0 1 ] [ z ]   [ z ]&lt;br /&gt;
&lt;br /&gt;
So if you want to scale a model use it like this:&lt;br /&gt;
 [ 1 0   0 ] [ x ]   [    x ]&lt;br /&gt;
 [ 0 2   0 ] [ y ] = [   2y ] &lt;br /&gt;
 [ 0 0 0.5 ] [ z ]   [ 0.5z ]&lt;br /&gt;
&lt;br /&gt;
For reflections use a negative scale value.&lt;br /&gt;
&lt;br /&gt;
For rotations use one of these:&lt;br /&gt;
&lt;br /&gt;
Around the x-axis:&lt;br /&gt;
&lt;br /&gt;
 [ 1 0       0      ]&lt;br /&gt;
 [ 0 cos(a) -sin(a) ]&lt;br /&gt;
 [ 0 sin(a)  cos(a) ]&lt;br /&gt;
&lt;br /&gt;
For a rotation of 90 degrees that gives:&lt;br /&gt;
&lt;br /&gt;
 [ 1 0  0 ] [ x ]   [  x ]&lt;br /&gt;
 [ 0 0 -1 ] [ y ] = [ -z ] &lt;br /&gt;
 [ 0 1  0 ] [ z ]   [  y ]&lt;br /&gt;
&lt;br /&gt;
Around the y-axis:&lt;br /&gt;
&lt;br /&gt;
 [  cos(a) 0 sin(a) ]&lt;br /&gt;
 [  0      1 0      ]&lt;br /&gt;
 [ -sin(a) 0 cos(a) ]&lt;br /&gt;
&lt;br /&gt;
Around the z-axis:&lt;br /&gt;
&lt;br /&gt;
 [ cos(a) -sin(a) 0 ]&lt;br /&gt;
 [ sin(a)  cos(a) 0 ]&lt;br /&gt;
 [ 0       0      1 ]&lt;br /&gt;
&lt;br /&gt;
If you want to scale and rotate a model in an arbitrary way, scale and rotate the model separately, get the right matrix for scaling first, then delete the rotation spawnarg and get the right matrix for rotation. Multiply these two matrices to get the combination of the two transformations. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
I want to widen and flatten a model so I use this for scaling:&lt;br /&gt;
&lt;br /&gt;
 2 0 0 0 1 0 0 0 0.5&lt;br /&gt;
&lt;br /&gt;
Now I want to rotate it 45 degrees around the z axis:&lt;br /&gt;
&lt;br /&gt;
I delete the rotation spawnarg to get the model back in it’s original size, I use Modify &amp;gt; rotate and scale and rotate it 45 degrees around the z-axis:&lt;br /&gt;
&lt;br /&gt;
 0.707107 -0.707107 0 0.707107 0.707107 0 0 0 1&lt;br /&gt;
&lt;br /&gt;
Multiply them like this:&lt;br /&gt;
&lt;br /&gt;
 [ 2 0   0 ]   [ 0.707107 -0.707107 0 ]   [ 1.414 -1.414   0 ]&lt;br /&gt;
 [ 0 1   0 ] x [ 0.707107  0.707107 0 ] = [ 0.707  0.707   0 ]&lt;br /&gt;
 [ 0 0 0.5 ]   [        0         0 1 ]   [     0      0 0.5 ]&lt;br /&gt;
&lt;br /&gt;
And enter the result in as the rotation spawnarg:&lt;br /&gt;
&lt;br /&gt;
 1.414 -1.414  0.000 0.707  0.707  0.000 0.000  0.000  0.500 &lt;br /&gt;
&lt;br /&gt;
This gets me a wide and flat model rotated 45 degrees.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Python_scripts_for_Dark_Radiant&amp;diff=9324</id>
		<title>Python scripts for Dark Radiant</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Python_scripts_for_Dark_Radiant&amp;diff=9324"/>
		<updated>2009-11-02T14:31:44Z</updated>

		<summary type="html">&lt;p&gt;Flanders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;YOU MUST HAVE PYTHON 2.6 INSTALLED FOR THESE TWO SCRIPTS&lt;br /&gt;
&lt;br /&gt;
Shifts textures in one (the up) direction:&lt;br /&gt;
&lt;br /&gt;
 # Set the command name so that DarkRadiant recognises this file&lt;br /&gt;
 __commandName__ = &#039;shiftup&#039;&lt;br /&gt;
 # The actual algorithm called by DarkRadiant &lt;br /&gt;
 # is contained in the execute() function&lt;br /&gt;
 &lt;br /&gt;
 def execute():&lt;br /&gt;
  import random&lt;br /&gt;
  s = random.randint(0, 256)		&lt;br /&gt;
  &lt;br /&gt;
 for i in range(0, s+1):&lt;br /&gt;
      GlobalCommandSystem.execute(&#039;texshiftup &amp;quot;&#039; + str(s) + &#039;&amp;quot;&#039;)		&lt;br /&gt;
  else:		&lt;br /&gt;
   print(&amp;quot;texture translated over&amp;quot; + str(s) )				&lt;br /&gt;
 &lt;br /&gt;
 # The variable __executeCommand__ evaluates to true &lt;br /&gt;
 # when DarkRadiant executes this command&lt;br /&gt;
 if __executeCommand__:&lt;br /&gt;
        execute()&lt;br /&gt;
&lt;br /&gt;
Shifts textures in both direction:&lt;br /&gt;
 # Set the command name so that DarkRadiant recognises this file&lt;br /&gt;
 __commandName__ = &#039;shift&#039;&lt;br /&gt;
 # The actual algorithm called by DarkRadiant &lt;br /&gt;
 # is contained in the execute() function&lt;br /&gt;
 &lt;br /&gt;
 def execute():&lt;br /&gt;
 &lt;br /&gt;
 import random&lt;br /&gt;
 s = random.randint(0, 256)&lt;br /&gt;
 t = random.randint(0, 256)&lt;br /&gt;
 	&lt;br /&gt;
 for i in range(0, s+1):&lt;br /&gt;
     GlobalCommandSystem.execute(&#039;texshiftright &amp;quot;&#039; + str(s) + &#039;&amp;quot;&#039;)&lt;br /&gt;
 else:&lt;br /&gt;
     for i in range(0, t+1):&lt;br /&gt;
        GlobalCommandSystem.execute(&#039;texshiftup &amp;quot;&#039; + str(t) + &#039;&amp;quot;&#039;)&lt;br /&gt;
     else:&lt;br /&gt;
         print(&amp;quot;texture translated over&amp;quot; + str(s) + &amp;quot; &amp;quot; + str(t))&lt;br /&gt;
 				&lt;br /&gt;
 # The variable __executeCommand__ evaluates to true &lt;br /&gt;
 # when DarkRadiant executes this command&lt;br /&gt;
 if __executeCommand__:&lt;br /&gt;
         execute()&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Python_scripts_for_Dark_Radiant&amp;diff=9323</id>
		<title>Python scripts for Dark Radiant</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Python_scripts_for_Dark_Radiant&amp;diff=9323"/>
		<updated>2009-11-02T14:28:43Z</updated>

		<summary type="html">&lt;p&gt;Flanders: py scripts for DR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Shifts textures in one (the up) direction:&lt;br /&gt;
&lt;br /&gt;
 # Set the command name so that DarkRadiant recognises this file&lt;br /&gt;
 __commandName__ = &#039;shiftup&#039;&lt;br /&gt;
 # The actual algorithm called by DarkRadiant &lt;br /&gt;
 # is contained in the execute() function&lt;br /&gt;
 &lt;br /&gt;
 def execute():&lt;br /&gt;
  import random&lt;br /&gt;
  s = random.randint(0, 256)		&lt;br /&gt;
  &lt;br /&gt;
 for i in range(0, s+1):&lt;br /&gt;
      GlobalCommandSystem.execute(&#039;texshiftup &amp;quot;&#039; + str(s) + &#039;&amp;quot;&#039;)		&lt;br /&gt;
  else:		&lt;br /&gt;
   print(&amp;quot;texture translated over&amp;quot; + str(s) )				&lt;br /&gt;
 &lt;br /&gt;
 # The variable __executeCommand__ evaluates to true &lt;br /&gt;
 # when DarkRadiant executes this command&lt;br /&gt;
 if __executeCommand__:&lt;br /&gt;
        execute()&lt;br /&gt;
&lt;br /&gt;
Shifts textures in both direction:&lt;br /&gt;
 # Set the command name so that DarkRadiant recognises this file&lt;br /&gt;
 __commandName__ = &#039;shift&#039;&lt;br /&gt;
 # The actual algorithm called by DarkRadiant &lt;br /&gt;
 # is contained in the execute() function&lt;br /&gt;
 &lt;br /&gt;
 def execute():&lt;br /&gt;
 &lt;br /&gt;
 import random&lt;br /&gt;
 s = random.randint(0, 256)&lt;br /&gt;
 t = random.randint(0, 256)&lt;br /&gt;
 	&lt;br /&gt;
 for i in range(0, s+1):&lt;br /&gt;
     GlobalCommandSystem.execute(&#039;texshiftright &amp;quot;&#039; + str(s) + &#039;&amp;quot;&#039;)&lt;br /&gt;
 else:&lt;br /&gt;
     for i in range(0, t+1):&lt;br /&gt;
        GlobalCommandSystem.execute(&#039;texshiftup &amp;quot;&#039; + str(t) + &#039;&amp;quot;&#039;)&lt;br /&gt;
     else:&lt;br /&gt;
         print(&amp;quot;texture translated over&amp;quot; + str(s) + &amp;quot; &amp;quot; + str(t))&lt;br /&gt;
 				&lt;br /&gt;
 # The variable __executeCommand__ evaluates to true &lt;br /&gt;
 # when DarkRadiant executes this command&lt;br /&gt;
 if __executeCommand__:&lt;br /&gt;
         execute()&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Cvars_in_The_Dark_Mod&amp;diff=8672</id>
		<title>Cvars in The Dark Mod</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Cvars_in_The_Dark_Mod&amp;diff=8672"/>
		<updated>2009-07-25T21:08:52Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* AI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A complete list of Doom 3 Cvars can be found here: http://www.iddevnet.com/doom3/cvars.php&lt;br /&gt;
&lt;br /&gt;
This should be a list of Cvars that are currently available in the Dark Mod:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HUD ==&lt;br /&gt;
* &#039;&#039;&#039;tdm_hud_opacity&#039;&#039;&#039; : Controls the opacity of the HUD elements. The range is anywhere from &#039;&#039;&#039;0&#039;&#039;&#039; to &#039;&#039;&#039;1&#039;&#039;&#039;, where &#039;&#039;&#039;0&#039;&#039;&#039; makes it totally invisible and &#039;&#039;&#039;1&#039;&#039;&#039; makes it fully opaque. Defaults to 1.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tdm_hud_hide_lightgem&#039;&#039;&#039; : &#039;&#039;&#039;1&#039;&#039;&#039; = show and &#039;&#039;&#039;0&#039;&#039;&#039; = hide. This can also be set via Settings &amp;gt; Gameplay.&lt;br /&gt;
&lt;br /&gt;
== Frobbing ==&lt;br /&gt;
* &#039;&#039;&#039;tdm_frob_ammo_selects_weapon&#039;&#039;&#039; (default is &amp;quot;1&amp;quot;): Set this to 1 to have the weapons automatically selected when the respective arrows are frobbed.&lt;br /&gt;
&lt;br /&gt;
== AI ==&lt;br /&gt;
Useful while mapping/testing/designing&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_sight&#039;&#039;&#039; set to 0 to make AI blind (default 0.7 at time of this writing)&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_sndvol&#039;&#039;&#039; set to a low negative value, e.g., -300, to make AI deaf (default 0)&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_tact&#039;&#039;&#039; set to 0 to remove AI sense of touch (default 20)&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showtasks&#039;&#039;&#039; shows the current State and Tasks of the AI (see &#039;&#039;&#039;[[AI State]]&#039;&#039;&#039; and &#039;&#039;&#039;[[AI Task]]&#039;&#039;&#039;).&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showalert&#039;&#039;&#039; shows the current alert index and alert level of the AI.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_show_enemy_visibility&#039;&#039;&#039; If set to 1, the visibility of the AI&#039;s enemy is drawn (red = obscured or hidden in darkness, green = the opposite)&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_search_show&#039;&#039;&#039; If &amp;gt;= 1.0, this is the number of milliseconds for which a graphic showing search activity targets will be shown.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showdoor&#039;&#039;&#039; Debug output during door handling. The goal standing positions for opening and closing the door will be displayed. At the side of the door where it swings towards, a test with different clipmodel positions is performed to detect whether the AI can stand at this position. A green box indicates that the AI can stand there, while a red box shows that something is in the way. Additionally, the current door handling state of the AI (e.g. MovingToFrontPos, OpeningDoor...) is shown. &lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showelevator&#039;&#039;&#039; Debug output during operating elevators.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showanimstate&#039;&#039;&#039; Shows the current anim states of the anim channels torso, legs and head, as well as their wait states.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showbark&#039;&#039;&#039; Shows the name of the bark when the AI starts barking (the name in the def, not the sound shader or sound file)&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showdest&#039;&#039;&#039; If set to true, an arrow is drawn from every AI to its intended pathing destination.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showgoalpos&#039;&#039;&#039; If set to true, the current goalpos (seekpos) is drawn in the world (!= move destination). The goalpos is used to lead the AI e.g. through door ways and around obstacles towards their pathing destination.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_showAASarea&#039;&#039;&#039; Shows the number and boundaries of the AAS area the AI is currently in.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_opt_interleavethinkmindist&#039;&#039;&#039; If nonzero, this will overwrite the minimum distance to the player where the [[Interleaved Thinking optimization]] will start. Set to 0 to switch the cvar off and use the spawnarg.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_opt_interleavethinkmaxdist&#039;&#039;&#039; If nonzero, this will be the distance where all AI will only think once in the number of frames specified by think_frames. Thinking frequency decreases linearly between min and max distance. Setting this to 0 will switch the cvar off and use the spawn arg value.&lt;br /&gt;
* &#039;&#039;&#039;tdm_ai_opt_interleavethinkframes&#039;&#039;&#039; If nonzero, all AI will only think once in this number of frames if their distance to the player is larger than the max dist. Set to 1 to let all AI think every frame. Set to 0 to use the settings in the spawn arg.&lt;br /&gt;
* &#039;&#039;&#039;tdm_show_trainer_messages&#039;&#039;&#039; Only used for the training mission. Used to toggle the pop-up messages on and off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[AI Attachment Ingame Editing]]&lt;br /&gt;
&lt;br /&gt;
== Attachment related ==&lt;br /&gt;
The following attachment commands must be run while looking at the AI you want to modify, with nothing obstructing your view. I could have made people type in the full name of the AI, but I&#039;d figure we&#039;d see how it works when looking at them. Also, these are meant to be run after you have initially placed the attachments in the def file / spawnArgs of the AI. This step is still done the same as before.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tdm_attach_print:&#039;&#039;&#039; Print the attachment info for the given attachment on the AI you are looking at.&lt;br /&gt;
* Usage: tdm_attach_print &amp;lt;attachment index&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tdm_attach_offset&#039;&#039;&#039;: Set the vector offset (x y z) for an attachment on an AI you are looking at.&lt;br /&gt;
* Usage: tdm_attach_offset &amp;lt;attachment index&amp;gt; &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tdm_attach_rot&#039;&#039;&#039;: Set the rotation (pitch yaw roll) for an attachment on an AI you are looking at.&lt;br /&gt;
* Usage: tdm_attach_rot &amp;lt;atachment index&amp;gt; &amp;lt;pitch&amp;gt; &amp;lt;yaw&amp;gt; &amp;lt;roll&amp;gt; (NOTE: Rotation is applied before translation, angles are relative to the joint orientation)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tdm_attach_joint&#039;&#039;&#039;: Set the attachment joint name for an attachment on an AI you are looking at.&lt;br /&gt;
Usage: tdm_attach_joint &amp;lt;attachment index&amp;gt; &amp;lt;string name of joint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{scripting}}&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Prefab_Comments&amp;diff=7596</id>
		<title>Prefab Comments</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Prefab_Comments&amp;diff=7596"/>
		<updated>2009-01-18T13:26:00Z</updated>

		<summary type="html">&lt;p&gt;Flanders: added links to my prefab info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With most prefabs, it is self-evident what they are but when submitting your own prefabs for use by others it is occasionally helpful, even essential, to add comments. As there is no easy way to include this with the prefab, please add your comments to this article.&lt;br /&gt;
&lt;br /&gt;
When loading prefabs, depending on your editor version, you need to take care:&lt;br /&gt;
&lt;br /&gt;
# Check changed entity names against any bind, frob_peer, lock_peer used_by spawnargs etc.&lt;br /&gt;
# If rotating, check the whole prefab has rotated and how. Model doors may be OK but brush doors you might find they now open the wrong way.&lt;br /&gt;
# Add complex prefabs to groups (DR=layer) if your editor provides them to make it easier to move, rotate, retexture, etc. later.&lt;br /&gt;
# Disable any filtering so you don&#039;t overlook, eg, caulk, nodraw textures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For general information about prefabs see [[Prefabs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fireplace/Chimney===&lt;br /&gt;
&lt;br /&gt;
Prefab : architecture\fireplaces\fireplace_humble_corner_double.pfb&lt;br /&gt;
&lt;br /&gt;
* Can be retextured as a whole (ideally while still selected as a prefab)&lt;br /&gt;
* Place between between two walls where the caulk indicates or discard one side and use as single.&lt;br /&gt;
* Note multiple edge bevels and patches if cutting/reshaping.&lt;br /&gt;
* It is likely that some bevels will pass through into different visportal areas in your mission. This is likely to corrupt the texture rendering even though it looks fine in Dark Radiant. Solution: Clone offending bevel(s) and resize to fit either side of floor/ceiling etc. so each bevel is fully within one visportal area. See [[Patch Troubleshooter|Patch texture rendering error]].&lt;br /&gt;
&lt;br /&gt;
Texture aligns all round except for...&lt;br /&gt;
* one small horizontal line at one side of one of the fireplaces - not too noticeable.&lt;br /&gt;
* Horizontal line where vertical chimney starts on two sides only. This will be next dividing wall on one side anyway so only affects one side and this will generally be lost in ceiling hopefully. Not severe.&lt;br /&gt;
&lt;br /&gt;
===Rooms, corridors===&lt;br /&gt;
Rooms, corridors - these should not be used exactly as they are. We don&#039;t want lots of mission lookalikes. Instead use them as a start point then adjust, resize, and retexture. Add new features, remove old ones.&lt;br /&gt;
&lt;br /&gt;
===Steps &amp;amp; Stairs: Spiral===&lt;br /&gt;
These consist of a main module:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(architecture\steps,stairs\spiral_stairs\stair_spiral_192_main.pfb)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
which is stackable to any number of floors each 192 units high (add a few steps in a corridor if your floors are a little different) plus one top model:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(architecture\steps,stairs\spiral_stairs\stair_spiral_192_top.pfb)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the time of writing, multiple patrolling AI might get stuck at the foot of the stair. This appears to be an AI intelligence issue rather than an actual obstacle. I found if I placed a path_corner at the foot of the stairs, directly opposite the bottom step and targetted from above (ie, its preceding path_corner that targets it being place on a floor above) then the AI were OK. I had three AI patrolling and passing one another on the stair for a long time without problems this way.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;architecture\steps,stairs\spiral_stairs\bc_spiralstair_clip.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
...is for use as monster clip for AI pathfinding with various models in:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;models\darkmod\architecture\stairs\&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Steps &amp;amp; Stairs: Stepladders===&lt;br /&gt;
&lt;br /&gt;
At this time there is a problem with adding the collision model to new maps even though the stepladders work fine in the test map. More later...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Doors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Manhole for sewer etc.===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;manhole_round_tiny_rusty.pfb&#039;&#039; is a general purpose sewer entrance. Note that the brush opening is lined with non-solids so the manhole seem a more narrow gap.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;manhole_round_tiny_rusty_windup.pfb&#039;&#039; is the same but with an internal rotary control. This means the manhole cannot be opened or closed from above so the player has to find another route inside but can escape through this route. An alternative is to use a normal locked version of the firt example above and let the player find it inside.&lt;br /&gt;
&lt;br /&gt;
This version might be modified as a pressure hatch in a chemical plant, underwater facility, submarine, etc.&lt;br /&gt;
&lt;br /&gt;
===Trapdoor with padlock===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;doors\trapdoor_wood_crude_padlocked.pfb&#039;&#039; includes three hasps: The openable part of the padlock, one that is bound tto the door, and one that you need to pplace on your frame/floor.&lt;br /&gt;
&lt;br /&gt;
The padlock can be relocked. If the trapdoor is open then it locks when next closed onto the padlock. Not entirely logical but the alternative would close it when closing the padlock.&lt;br /&gt;
&lt;br /&gt;
The padlock is not a moveable.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t overlook the padlock key which is close by.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mechanical==&lt;br /&gt;
&lt;br /&gt;
===Clocks===&lt;br /&gt;
&lt;br /&gt;
There are 4 large plain grey clocks that keep real game-time. They are not very fancy but are meant to be put high on buildings where they cannot be reached. But the time-keeping methods can be applied to fancier clocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_nostrike_big_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_nostrike_huge_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are big and bigger clocks set at midnight by default and facing west. Works immediately with no script needed but nothing fancy, does not strike the hour, etc. but just shows the time. Includes a clock tick sound which can be deleted if too high on a building to hear. The clocks can be rotated to face any direction with no problem. And of course, you can rotate the hands to set the start time if you don&#039;t want midnight.  Try 6 degree movements then finer if needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_scriptevents_big_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_scriptevents_huge_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These require a script. One is provided that keeps time and rotates the clock hands, and optionally can trigger any entities at any selected time plus a script that strikes the hour. See [[Clock-Triggered Game Events]] for how to set it up.&lt;br /&gt;
&lt;br /&gt;
===Machine sound system===&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\machine_sound_system.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this prefab you can make a triggered sounds system with a start sound, a looping sound and a stop sound. More info in [[Start/Loop/Stop sounds]]&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Player drop start delay===&lt;br /&gt;
&lt;br /&gt;
Many Dark Mod FMs will begin with the thief dropping down from a wall, etc. At game start there seems to be a tiny delay (0.25 seconds?) before the view is rendered so the player only sees the end of the drop, maybe none of it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;misc\player_drop_start_delay.pfb&#039;&#039; provides a player start with a platform that is removed after 0.25 of a second. Reduce delay for lower heights.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===StartPack: Common Objectives, Tools, Ammo===&lt;br /&gt;
&lt;br /&gt;
misc/StartPackObjectives,Tools,Ammo.pfb contains common objectives, player tools and ammo all set up for the mapper. It is then far easier to edit or delete what you don&#039;t want rather than set them all up separately from scratch.&lt;br /&gt;
&lt;br /&gt;
Just insert into your map away from anywhere you are likely to build and immediately your mission has default working objectives and lantern, compass, etc in the player&#039;s inventory at start, and ammo you can edit.&lt;br /&gt;
&lt;br /&gt;
You MUST remember to delete the parts you don&#039;t want to avoid possible conflict. For example if you merge into a map where you already have objectives then delete the objectives entity. If you have a purchase shop set up then delete the Ammo_difficulty_settings in the prefab.&lt;br /&gt;
&lt;br /&gt;
 Note that some entity names might change on insertion so check they match where they are named, eg in objectives.&lt;br /&gt;
&lt;br /&gt;
The prefab is a small room containing (note that the contents may be slightly updated/changed from shown here):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Player Tools:&#039;&#039;&#039;&lt;br /&gt;
compass, lantern, spyglass, all four lockpicks. All go in the inventory at start up. Edit/delete as required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objectives:&#039;&#039;&#039;&lt;br /&gt;
These are set up in a target_tdm_addobjectives entity. All you need to do is click on menu: Map &amp;gt; Objectives and you will see the common objectives  already set up. Just edit or delete what you don&#039;t want or you can refer to what is there to make new ones. Change the text description to what you want.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Steal a special object&#039;&#039; - use this if your mission has a quest to get some special item like Lord Drastik&#039;s Sceptor of Death. Edit and change the entity name and the text description of course.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Trigger with any targetting entity&#039;&#039; is for a custom objective that is not covered by any other method. Any targetting entity can complete this objective. So &#039;&#039;Open the magic door for Bragbo&#039;&#039; - set the door to target the target_tdm_setobjectivestate named CompleteObjective in the prefab and set the objective number in that entity. It will complete the objective when the door opens. Any targetting entity like a lever etc will also do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Get Loot&#039;&#039; there is one of these for each difficulty setting. Only one will be visible depending which difficulty is played. Just reword the text how you like and change the value of the loot needed how you like.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No Killing&#039;&#039; and &#039;&#039;No KOs&#039;&#039; these also are set for special difficulties. Adjust to taste, reword, or delete.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go To Room X, eg, When all objectives done, return to start&#039;&#039; In this case you need to move the info_tdm_objective_location entity named StartingPoint from the prefab room to where you want the player to return to and enlarge it to cover the whole area where it is to trigger. You also need to edit the objective to include in its &#039;enabling objectives&#039; all the other objectives that are NOT &#039;ongoing&#039; (such as No KOs) This is because they must be completed before returning to the start. If any enabling objectives appear in several difficulties then look at how the loot enabling objectives were done in this prefab. It shows 1 and (2 or 3 or 4) which means Objective 1 MUST be done plus EITHER loot objective 2 or 3 or 4 (only one appears in each difficulty.)&lt;br /&gt;
&lt;br /&gt;
This &#039;GoTo&#039; objective method can be used for any objective where you want the player to get to a special place, eg &#039;Find a way to get into the castle&#039;. In which case you probably want to delete the &#039;Enabling Objectives&#039; entry and rename the StartingPoint&#039; entity (and in the objectives.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Ammo/Weapons:&#039;&#039;&#039; is set up in the atdm:difficulty_settings entity named Ammo_difficulty_settings in the prefab. (This might be done with a different type of entity at a later stage.) &lt;br /&gt;
&lt;br /&gt;
Select menu: Map&amp;gt;Difficulty. Click on atdm:player_base and you should see listed all the ammo/weapons set by default at 0 for all arrows and 1 for sword and blackjack. Change the value for each to what you want on all three difficulty tabs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nature==&lt;br /&gt;
&lt;br /&gt;
===Skyboxes===&lt;br /&gt;
&lt;br /&gt;
Here is an explanation on how to use a [[skybox]]&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;nature\skyboxes\tdm_sky_starry1.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;nature\skyboxes\tdm_sky_starry2.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;nature\skyboxes\tdm_sky_storm_thunder.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The tdm_sky_storm_thunder.pfb contains a skybox with storm clouds and a simple thunder effect mechanism. See also [[Lightning]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Readables==&lt;br /&gt;
&lt;br /&gt;
There is an extensive selection of readable books, scroll, sheets, etc. For details see [[Readables Prefabs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tutorial-editing}} {{darkradiant}}&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Prefab_Comments&amp;diff=7595</id>
		<title>Prefab Comments</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Prefab_Comments&amp;diff=7595"/>
		<updated>2009-01-18T13:14:03Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* Clocks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With most prefabs, it is self-evident what they are but when submitting your own prefabs for use by others it is occasionally helpful, even essential, to add comments. As there is no easy way to include this with the prefab, please add your comments to this article.&lt;br /&gt;
&lt;br /&gt;
When loading prefabs, depending on your editor version, you need to take care:&lt;br /&gt;
&lt;br /&gt;
# Check changed entity names against any bind, frob_peer, lock_peer used_by spawnargs etc.&lt;br /&gt;
# If rotating, check the whole prefab has rotated and how. Model doors may be OK but brush doors you might find they now open the wrong way.&lt;br /&gt;
# Add complex prefabs to groups (DR=layer) if your editor provides them to make it easier to move, rotate, retexture, etc. later.&lt;br /&gt;
# Disable any filtering so you don&#039;t overlook, eg, caulk, nodraw textures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For general information about prefabs see [[Prefabs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Architecture==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fireplace/Chimney===&lt;br /&gt;
&lt;br /&gt;
Prefab : architecture\fireplaces\fireplace_humble_corner_double.pfb&lt;br /&gt;
&lt;br /&gt;
* Can be retextured as a whole (ideally while still selected as a prefab)&lt;br /&gt;
* Place between between two walls where the caulk indicates or discard one side and use as single.&lt;br /&gt;
* Note multiple edge bevels and patches if cutting/reshaping.&lt;br /&gt;
* It is likely that some bevels will pass through into different visportal areas in your mission. This is likely to corrupt the texture rendering even though it looks fine in Dark Radiant. Solution: Clone offending bevel(s) and resize to fit either side of floor/ceiling etc. so each bevel is fully within one visportal area. See [[Patch Troubleshooter|Patch texture rendering error]].&lt;br /&gt;
&lt;br /&gt;
Texture aligns all round except for...&lt;br /&gt;
* one small horizontal line at one side of one of the fireplaces - not too noticeable.&lt;br /&gt;
* Horizontal line where vertical chimney starts on two sides only. This will be next dividing wall on one side anyway so only affects one side and this will generally be lost in ceiling hopefully. Not severe.&lt;br /&gt;
&lt;br /&gt;
===Rooms, corridors===&lt;br /&gt;
Rooms, corridors - these should not be used exactly as they are. We don&#039;t want lots of mission lookalikes. Instead use them as a start point then adjust, resize, and retexture. Add new features, remove old ones.&lt;br /&gt;
&lt;br /&gt;
===Steps &amp;amp; Stairs: Spiral===&lt;br /&gt;
These consist of a main module:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(architecture\steps,stairs\spiral_stairs\stair_spiral_192_main.pfb)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
which is stackable to any number of floors each 192 units high (add a few steps in a corridor if your floors are a little different) plus one top model:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(architecture\steps,stairs\spiral_stairs\stair_spiral_192_top.pfb)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the time of writing, multiple patrolling AI might get stuck at the foot of the stair. This appears to be an AI intelligence issue rather than an actual obstacle. I found if I placed a path_corner at the foot of the stairs, directly opposite the bottom step and targetted from above (ie, its preceding path_corner that targets it being place on a floor above) then the AI were OK. I had three AI patrolling and passing one another on the stair for a long time without problems this way.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;architecture\steps,stairs\spiral_stairs\bc_spiralstair_clip.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
...is for use as monster clip for AI pathfinding with various models in:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;models\darkmod\architecture\stairs\&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Steps &amp;amp; Stairs: Stepladders===&lt;br /&gt;
&lt;br /&gt;
At this time there is a problem with adding the collision model to new maps even though the stepladders work fine in the test map. More later...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Doors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Manhole for sewer etc.===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;manhole_round_tiny_rusty.pfb&#039;&#039; is a general purpose sewer entrance. Note that the brush opening is lined with non-solids so the manhole seem a more narrow gap.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;manhole_round_tiny_rusty_windup.pfb&#039;&#039; is the same but with an internal rotary control. This means the manhole cannot be opened or closed from above so the player has to find another route inside but can escape through this route. An alternative is to use a normal locked version of the firt example above and let the player find it inside.&lt;br /&gt;
&lt;br /&gt;
This version might be modified as a pressure hatch in a chemical plant, underwater facility, submarine, etc.&lt;br /&gt;
&lt;br /&gt;
===Trapdoor with padlock===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;doors\trapdoor_wood_crude_padlocked.pfb&#039;&#039; includes three hasps: The openable part of the padlock, one that is bound tto the door, and one that you need to pplace on your frame/floor.&lt;br /&gt;
&lt;br /&gt;
The padlock can be relocked. If the trapdoor is open then it locks when next closed onto the padlock. Not entirely logical but the alternative would close it when closing the padlock.&lt;br /&gt;
&lt;br /&gt;
The padlock is not a moveable.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t overlook the padlock key which is close by.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mechanical==&lt;br /&gt;
&lt;br /&gt;
===Clocks===&lt;br /&gt;
&lt;br /&gt;
There are 4 large plain grey clocks that keep real game-time. They are not very fancy but are meant to be put high on buildings where they cannot be reached. But the time-keeping methods can be applied to fancier clocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_nostrike_big_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_nostrike_huge_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are big and bigger clocks set at midnight by default and facing west. Works immediately with no script needed but nothing fancy, does not strike the hour, etc. but just shows the time. Includes a clock tick sound which can be deleted if too high on a building to hear. The clocks can be rotated to face any direction with no problem. And of course, you can rotate the hands to set the start time if you don&#039;t want midnight.  Try 6 degree movements then finer if needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_scriptevents_big_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\clocks\clock_scriptevents_huge_plain_grey.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These require a script. One is provided that keeps time and rotates the clock hands, and optionally can trigger any entities at any selected time plus a script that strikes the hour. See [[Clock-Triggered Game Events]] for how to set it up.&lt;br /&gt;
&lt;br /&gt;
===Machine sound system===&lt;br /&gt;
&lt;br /&gt;
Prefab: &#039;&#039;mechanical\machine_sound_system.pfb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this prefab you can make a triggered sounds system with a start sound, a looping sound and a stop sound. More info in [[Start/Loop/Stop sounds]]&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Player drop start delay===&lt;br /&gt;
&lt;br /&gt;
Many Dark Mod FMs will begin with the thief dropping down from a wall, etc. At game start there seems to be a tiny delay (0.25 seconds?) before the view is rendered so the player only sees the end of the drop, maybe none of it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;misc\player_drop_start_delay.pfb&#039;&#039; provides a player start with a platform that is removed after 0.25 of a second. Reduce delay for lower heights.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===StartPack: Common Objectives, Tools, Ammo===&lt;br /&gt;
&lt;br /&gt;
misc/StartPackObjectives,Tools,Ammo.pfb contains common objectives, player tools and ammo all set up for the mapper. It is then far easier to edit or delete what you don&#039;t want rather than set them all up separately from scratch.&lt;br /&gt;
&lt;br /&gt;
Just insert into your map away from anywhere you are likely to build and immediately your mission has default working objectives and lantern, compass, etc in the player&#039;s inventory at start, and ammo you can edit.&lt;br /&gt;
&lt;br /&gt;
You MUST remember to delete the parts you don&#039;t want to avoid possible conflict. For example if you merge into a map where you already have objectives then delete the objectives entity. If you have a purchase shop set up then delete the Ammo_difficulty_settings in the prefab.&lt;br /&gt;
&lt;br /&gt;
 Note that some entity names might change on insertion so check they match where they are named, eg in objectives.&lt;br /&gt;
&lt;br /&gt;
The prefab is a small room containing (note that the contents may be slightly updated/changed from shown here):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Player Tools:&#039;&#039;&#039;&lt;br /&gt;
compass, lantern, spyglass, all four lockpicks. All go in the inventory at start up. Edit/delete as required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objectives:&#039;&#039;&#039;&lt;br /&gt;
These are set up in a target_tdm_addobjectives entity. All you need to do is click on menu: Map &amp;gt; Objectives and you will see the common objectives  already set up. Just edit or delete what you don&#039;t want or you can refer to what is there to make new ones. Change the text description to what you want.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Steal a special object&#039;&#039; - use this if your mission has a quest to get some special item like Lord Drastik&#039;s Sceptor of Death. Edit and change the entity name and the text description of course.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Trigger with any targetting entity&#039;&#039; is for a custom objective that is not covered by any other method. Any targetting entity can complete this objective. So &#039;&#039;Open the magic door for Bragbo&#039;&#039; - set the door to target the target_tdm_setobjectivestate named CompleteObjective in the prefab and set the objective number in that entity. It will complete the objective when the door opens. Any targetting entity like a lever etc will also do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Get Loot&#039;&#039; there is one of these for each difficulty setting. Only one will be visible depending which difficulty is played. Just reword the text how you like and change the value of the loot needed how you like.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No Killing&#039;&#039; and &#039;&#039;No KOs&#039;&#039; these also are set for special difficulties. Adjust to taste, reword, or delete.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go To Room X, eg, When all objectives done, return to start&#039;&#039; In this case you need to move the info_tdm_objective_location entity named StartingPoint from the prefab room to where you want the player to return to and enlarge it to cover the whole area where it is to trigger. You also need to edit the objective to include in its &#039;enabling objectives&#039; all the other objectives that are NOT &#039;ongoing&#039; (such as No KOs) This is because they must be completed before returning to the start. If any enabling objectives appear in several difficulties then look at how the loot enabling objectives were done in this prefab. It shows 1 and (2 or 3 or 4) which means Objective 1 MUST be done plus EITHER loot objective 2 or 3 or 4 (only one appears in each difficulty.)&lt;br /&gt;
&lt;br /&gt;
This &#039;GoTo&#039; objective method can be used for any objective where you want the player to get to a special place, eg &#039;Find a way to get into the castle&#039;. In which case you probably want to delete the &#039;Enabling Objectives&#039; entry and rename the StartingPoint&#039; entity (and in the objectives.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Ammo/Weapons:&#039;&#039;&#039; is set up in the atdm:difficulty_settings entity named Ammo_difficulty_settings in the prefab. (This might be done with a different type of entity at a later stage.) &lt;br /&gt;
&lt;br /&gt;
Select menu: Map&amp;gt;Difficulty. Click on atdm:player_base and you should see listed all the ammo/weapons set by default at 0 for all arrows and 1 for sword and blackjack. Change the value for each to what you want on all three difficulty tabs.&lt;br /&gt;
&lt;br /&gt;
==Readables==&lt;br /&gt;
&lt;br /&gt;
There is an extensive selection of readable books, scroll, sheets, etc. For details see [[Readables Prefabs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tutorial-editing}} {{darkradiant}}&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Lightning&amp;diff=7575</id>
		<title>Lightning</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Lightning&amp;diff=7575"/>
		<updated>2009-01-17T10:03:45Z</updated>

		<summary type="html">&lt;p&gt;Flanders: adding lightning to your map&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Prefab and settings==&lt;br /&gt;
&lt;br /&gt;
Here we use func_fx’s to simulate random interval lightning. Start by loading up the tdm_sky_storm_thunder prefab in prefabs/nature/skyboxes. The func_fx underneath the [[skybox]] is used to create a light and a sound inside your map. Move it to a position high in your map where you want the flash to appear. The func_fx in the [[skybox]] makes a flash in the sky.&lt;br /&gt;
&lt;br /&gt;
To trigger the lightning a trigger_timer is used. The time between triggering is a random time between “wait” ± “random” in seconds. The trigger_timer targets the func_fx’s. The fx effects are defined in thunder.fx in the fx folder. The fx that is used can be set with the “fx” property.&lt;br /&gt;
&lt;br /&gt;
* fx/thunder.fx for standard lightning&lt;br /&gt;
* fx/thunder_distant.fx for distant lightning (dim light, long time between flash and sound)&lt;br /&gt;
* fx/thunder_close.fx for close lightning (bright light, immediate sound)&lt;br /&gt;
&lt;br /&gt;
These are for the fx inside the [[skybox]]:&lt;br /&gt;
&lt;br /&gt;
* fx/thunder_skylight.fx &lt;br /&gt;
* fx/thunder_skylight_distant.fx&lt;br /&gt;
* fx/thunder_skylight_close.fx&lt;br /&gt;
&lt;br /&gt;
==Skybox==&lt;br /&gt;
&lt;br /&gt;
Here there is a short explanation on how to change the appearance of the used [[skybox]].&lt;br /&gt;
&lt;br /&gt;
To change the colour of the sky select the big light and edit its properties. To change the colour of the small lights in the sky edit the two smaller lights. To make the clouds move at a different speed select the func_static  with the cloud texture and add “shaderparm3” to it and give it a value (0.5 ~ 3). You can change the size of the clouds with the surface inspector, as long as you make sure it fits a rounded number of times so that there are no seams when the texture scrolls. As you can see, the whole [[skybox]] can be edited by editing the objects in the prefab [[skybox]]. The sky that is used in your map is just a projection of the stuff surrounding the info_portalsky.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7518</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7518"/>
		<updated>2008-12-24T16:43:47Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* How the prefab works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant and import the machine_sounds_system prefab from the prefab/mechanical folder.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start, turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again after it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;br /&gt;
[[Category:Sound]]&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7517</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7517"/>
		<updated>2008-12-24T16:40:57Z</updated>

		<summary type="html">&lt;p&gt;Flanders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant and import the machine_sounds_system prefab from the prefab/mechanical folder.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start, turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;br /&gt;
[[Category:Sound]]&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7516</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7516"/>
		<updated>2008-12-24T16:39:54Z</updated>

		<summary type="html">&lt;p&gt;Flanders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant and import the machine_sounds_system prefab from the prefab/mechanical folder.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start, turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;br /&gt;
[[Category:Sounds]]&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Decals&amp;diff=7515</id>
		<title>Decals</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Decals&amp;diff=7515"/>
		<updated>2008-12-24T16:17:19Z</updated>

		<summary type="html">&lt;p&gt;Flanders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Decal textures are used to add a layer of partially transparent texture to another surface. For example: dirt on the ground or stains on a wall. When you take a look at the decal textures in the darkmod folder you&#039;ll see that they have a white, yellow or purple background, those areas are transparent.&lt;br /&gt;
&lt;br /&gt;
==Decal creation==&lt;br /&gt;
To create decals, select the surface you want to make a decal for (in select face mode or with {{key|SHIFT}}+{{key|CTRL}}+{{LMB}}). Press the “create Decals for selected Faces” button, it will create a [[patch]] for each selected face, which will be exactly in the same plane. Another way to create  a decal is create [[patch]] yourself and place it were you want. Assign a texture to it from the Media browser, the texture browser or with the surface inspector.&lt;br /&gt;
&lt;br /&gt;
==Decal placement==&lt;br /&gt;
Decals can be placed co-planar on surfaces or with a tiny offset. During development of your mission it might be useful to place decals with a small offset. This way they don&#039;t cause z-fighting errors in dark radiant. Drawback is that the player camera could get in between the decal and the actual face, which can happen if the player is leaning into that wall or getting real close. Co-planar decals do NOT cause z-fighting errors in game, they use a blending filter so they blend with the surface they are placed on. However, if you place a texture on it without a blend filter it will cause a z-fighting error as any other two colliding surfaces.&lt;br /&gt;
All the decals in the darkmod/decals and in the Doom3/decals folders have a blend filter.&lt;br /&gt;
&lt;br /&gt;
== Some other decal properties ==&lt;br /&gt;
* Decals do not cast shadows.&lt;br /&gt;
* Decals are nonsolid, the player won&#039;t collide with them, weapons go right through them.&lt;br /&gt;
* Decal materials won&#039;t seal against the void.&lt;br /&gt;
* Decal textures can be applied to a brush (if there is any use for it).&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7514</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7514"/>
		<updated>2008-12-24T16:04:30Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* How the prefab works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant and import the machine_sounds_system prefab from the prefab/mechanical folder.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start, turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7513</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7513"/>
		<updated>2008-12-24T16:00:30Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* What to do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant and import the machine_sounds_system prefab from the prefab/mechanical folder.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7512</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7512"/>
		<updated>2008-12-24T15:59:35Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* What to do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant and import the machine_sounds_system prefab from the prefab/mechanical folder. Read [[Start/Loop/Stop sounds#How the prefab works|how the prefab works]] for an explanation on this prefab.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7511</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7511"/>
		<updated>2008-12-24T15:58:59Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* What to do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant and import the machine_sounds_system prefab from the prefab/mechanical folder. Read [[Start/Loop/Stop sounds#How the prefab works|how the prefab works]] for an explanation on this prefab.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7510</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7510"/>
		<updated>2008-12-24T15:57:00Z</updated>

		<summary type="html">&lt;p&gt;Flanders: How to create triggered machine-like sound systems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Flanders&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant import the machine_sounds_system prefab from the prefab/mechanical folder. Read [[Start/Loop/Stop sounds#How the prefab works|how the prefab works]] for an explanation on this prefab.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7509</id>
		<title>Start/Loop/Stop sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Start/Loop/Stop_sounds&amp;diff=7509"/>
		<updated>2008-12-24T15:56:10Z</updated>

		<summary type="html">&lt;p&gt;Flanders: How to create triggered machine-like sound systems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This tutorial explains how to set up a triggering system with three sounds: a starting sound, a looping sound and a stopping sound. This can be used for machines that can be turned on/off or for other sound systems that behave in a similar way. There is more than one way to do this but here we use a simple trigger system with a custom made sound shader.&lt;br /&gt;
&lt;br /&gt;
== What to do ==&lt;br /&gt;
You’ll have to find some sounds that fit your machine, here I’ll use these:&lt;br /&gt;
&lt;br /&gt;
sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
sound/machinery/generators/generator_stop_01.ogg&lt;br /&gt;
&lt;br /&gt;
The start and loop sound can be combined into a soundshader like this:&lt;br /&gt;
&lt;br /&gt;
 machine_on&lt;br /&gt;
 {&lt;br /&gt;
    looping&lt;br /&gt;
    leadin&lt;br /&gt;
    sound/machinery/generators/generator_start_01.ogg&lt;br /&gt;
    sound/machinery/generators/generator_loop_01.ogg&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After the first sound is played, the second sound will start looping. Save this soundshader in your Doom 3/darkmod/sound folder as machine_on.sndshd.&lt;br /&gt;
&lt;br /&gt;
Open your map in Darkradiant import the machine_sounds_system prefab from the prefab/mechanical folder. Read [[Start/Loop/Stop sounds#How the prefab works|how the prefab works]] for an explanation on this prefab.&lt;br /&gt;
&lt;br /&gt;
For speaker_machine_stop set “s_shader” to sound/machinery/generators/generator_stop_01.ogg. For speaker_machine_start set “s_shader” to machine_on. That’s all there is.&lt;br /&gt;
&lt;br /&gt;
== How the prefab works ==&lt;br /&gt;
When machine_lever is used it triggers speaker_machine_start, playing the sounds in the machine_on soundshader. The lever also triggers OnOffCount, this trigger counts the times it has been triggered itself. Because the “count” property of OnOffCount has been set to 2 it will only fire its target, speaker_machine_stop, the second time it is triggered.&lt;br /&gt;
The second time the lever is used it triggers speaker_machine_start turning it off. OnOffCount triggers speaker_machine_stop. With “repeat” set to 1 OnOffCount will start counting all over again if it’s triggered the amount of times set with “count”. OnOffCount acts as a reverse trigger so to say.&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Decals&amp;diff=7365</id>
		<title>Decals</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Decals&amp;diff=7365"/>
		<updated>2008-11-24T19:52:18Z</updated>

		<summary type="html">&lt;p&gt;Flanders: /* Some other decal properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Decal textures are used to add a layer of partially transparent texture to another surface. For example: dirt on the ground or stains on a wall. When you take a look at the decal textures in the darkmod folder you&#039;ll see that they have a white, yellow or purple background, those areas are transparent.&lt;br /&gt;
&lt;br /&gt;
==Decal creation==&lt;br /&gt;
To create decals, select the surface you want to make a decal for (in select face mode or with {{key|SHIFT}}+{{key|CTRL}}+{{LMB}}). Press the “create Decals for selected Faces” button, it will create a [[patch]] for each selected face, which will be exactly in the same plane. Another way to create  a decal is create [[patch]] yourself and place it were you want. Assign a texture to it from the Media browser, the texture browser or with the surface inspector.&lt;br /&gt;
&lt;br /&gt;
==Decal placement==&lt;br /&gt;
Decals can be placed co-planar on surfaces or with a tiny offset. During development of your mission it might be useful to place decals with a small offset. This way they don&#039;t cause z-fighting errors in dark radiant. Drawback is that the player camera could get in between the decal and the actual face, which can happen if the player is leaning into that wall or getting real close. Co-planar decals do NOT cause z-fighting errors in game, they use a blending filter so they blend with the surface they are placed on. However, if you place a texture on it without a blend filter it will cause a z-fighting error as any other two colliding surfaces.&lt;br /&gt;
All the decals in the darkmod/decals and in the Doom3/decals folders have a blend filter.&lt;br /&gt;
&lt;br /&gt;
== Some other decal properties ==&lt;br /&gt;
* Decals do not cast shadows.&lt;br /&gt;
* Decals are nonsolid, the player won&#039;t collide with them, weapons go right through them.&lt;br /&gt;
* Decal materials won&#039;t seal against the void.&lt;br /&gt;
* Decal textures can be applied to a brush (if there is any use for it).&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Decals&amp;diff=7363</id>
		<title>Decals</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Decals&amp;diff=7363"/>
		<updated>2008-11-23T14:13:10Z</updated>

		<summary type="html">&lt;p&gt;Flanders: Decals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Decal textures are used to add a layer of partially transparent texture to another surface. For example: dirt on the ground or stains on a wall. When you take a look at the decal textures in the darkmod folder you&#039;ll see that they have a white, yellow or purple background, those areas are transparent.&lt;br /&gt;
&lt;br /&gt;
==Decal creation==&lt;br /&gt;
To create decals, select the surface you want to make a decal for (in select face mode or with {{key|SHIFT}}+{{key|CTRL}}+{{LMB}}). Press the “create Decals for selected Faces” button, it will create a [[patch]] for each selected face, which will be exactly in the same plane. Another way to create  a decal is create [[patch]] yourself and place it were you want. Assign a texture to it from the Media browser, the texture browser or with the surface inspector.&lt;br /&gt;
&lt;br /&gt;
==Decal placement==&lt;br /&gt;
Decals can be placed co-planar on surfaces or with a tiny offset. During development of your mission it might be useful to place decals with a small offset. This way they don&#039;t cause z-fighting errors in dark radiant. Drawback is that the player camera could get in between the decal and the actual face, which can happen if the player is leaning into that wall or getting real close. Co-planar decals do NOT cause z-fighting errors in game, they use a blending filter so they blend with the surface they are placed on. However, if you place a texture on it without a blend filter it will cause a z-fighting error as any other two colliding surfaces.&lt;br /&gt;
All the decals in the darkmod/decals and in the Doom3/decals folders have a blend filter.&lt;br /&gt;
&lt;br /&gt;
== Some other decal properties ==&lt;br /&gt;
* Decals do not cast shadows.&lt;br /&gt;
* Decals are nonsolid, the player won&#039;t collide with them, weapons go right through them.&lt;br /&gt;
* Since decals are patches, they won&#039;t seal against the void.&lt;br /&gt;
* Decal textures can be applied to a brush (if there is any use for it).&lt;/div&gt;</summary>
		<author><name>Flanders</name></author>
	</entry>
</feed>