<?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=Datiswous</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=Datiswous"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Special:Contributions/Datiswous"/>
	<updated>2026-05-02T19:12:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Reporting_Problem&amp;diff=34475</id>
		<title>Reporting Problem</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Reporting_Problem&amp;diff=34475"/>
		<updated>2026-04-24T23:16:47Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Coordinates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If TDM does not work properly for you, the best thing to do would be to report the problem.&lt;br /&gt;
&lt;br /&gt;
You are welcome to post in Tech Support section of the [[The_Dark_Mod#Dark_Mod_Forums|forums]], even if you suspect the problem is with your machine or you want to get some help/clarifications.&lt;br /&gt;
When there is clearly a problem with TDM itself, an issue is usually created in the [[The_Dark_Mod#Bugtracker|bugtracker]].&lt;br /&gt;
But since the bugtracker is a rather technical place, it is more advised to report problems in the forum.&lt;br /&gt;
Sooner or later someone will create the issue anyway if it is really needed.&lt;br /&gt;
&lt;br /&gt;
This article describes some general information typically requested from everyone who reports a problem.&lt;br /&gt;
&lt;br /&gt;
== Baseline ==&lt;br /&gt;
&lt;br /&gt;
This pieces of information are almost mandatory:&lt;br /&gt;
&lt;br /&gt;
# Contents of &amp;lt;tt&amp;gt;darkmod.cfg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Contents of game console at some moment (known as &amp;quot;condump&amp;quot;).&lt;br /&gt;
# In case of graphical issue, a screenshot showing the problem is often needed.&lt;br /&gt;
&lt;br /&gt;
You can omit this information when writing a post on the forums: maybe your issue is trivial and someone will quickly explain what&#039;s wrong.&lt;br /&gt;
If it is not obvious, then you will soon be asked for it anyway =)&lt;br /&gt;
&lt;br /&gt;
However, when creating an issue on the bugtracker, it is highly desirable to include all of these things, as well as the steps to reproduce.&lt;br /&gt;
&lt;br /&gt;
=== darkmod.cfg ===&lt;br /&gt;
&lt;br /&gt;
The file named &amp;lt;tt&amp;gt;darkmod.cfg&amp;lt;/tt&amp;gt; should be located in the root directory of TDM installation.&lt;br /&gt;
If in doubt, you can locate this directory by checking what executable is run when you start the game: it is in the same directory.&lt;br /&gt;
Let&#039;s assume for the rest of the article that root directory is &amp;lt;tt&amp;gt;C:\games\thedarkmod&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file stores the values of all switches and tweaks that player can change.&lt;br /&gt;
The game may work in completely different ways depending on these values, thus they are very important for reproducing the problem.&lt;br /&gt;
&lt;br /&gt;
When reporting the problem on forums, you can do one of:&lt;br /&gt;
* Attach it to a forum post. In this case rename it to something like &amp;lt;tt&amp;gt;darkmod_cfg.txt&amp;lt;/tt&amp;gt;, the forum forbids anything except txt files.&lt;br /&gt;
* Copy/paste the full contents of the file into the post. In this case, please wrap it into &amp;quot;spoiler&amp;quot; tag, so that readers don&#039;t have to always scroll across the 5 pages of it.&lt;br /&gt;
&lt;br /&gt;
When reporting on bugtracker, just attach the &amp;lt;tt&amp;gt;darkmod.cfg&amp;lt;/tt&amp;gt; file to the issue.&lt;br /&gt;
&lt;br /&gt;
=== condump ===&lt;br /&gt;
&lt;br /&gt;
The term &amp;quot;condump&amp;quot; means all the text written to the game console.&lt;br /&gt;
You can usually open game console by pressing either Tilde(~) key or Ctrl+Alt+Tilde combo.&lt;br /&gt;
&lt;br /&gt;
There are two ways to save the contents of game console into a file:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;1) condump.&#039;&#039;&#039; Open game console, type the following and hit Enter: &amp;lt;tt&amp;gt;condump unwrap my_nasty_issue&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Then find file named &amp;lt;tt&amp;gt;my_nasty_issue.txt&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;C:\games\thedarkmod&amp;lt;/tt&amp;gt; (root TDM directory).&lt;br /&gt;
:Note: execute the command soon after the issue manifests itself.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;2) logfile.&#039;&#039;&#039; Open file &amp;lt;tt&amp;gt;darkmod.cfg&amp;lt;/tt&amp;gt; in text editor.&lt;br /&gt;
:Find or create new line containing: &amp;lt;tt&amp;gt;seta logFile &amp;quot;?&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Instead of the question mark, set digit 2 if you experience a crash. Otherwise digit 1 is also OK.&lt;br /&gt;
:Save the file, start TDM and reproduce the issue.&lt;br /&gt;
:Now find the file named &amp;lt;tt&amp;gt;qconsole.log&amp;lt;/tt&amp;gt; in the directory of the currently installed FM, for instance in &amp;lt;tt&amp;gt;C:\games\thedarkmod\fms\newjob&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The first approach is better, but it is useless if TDM crashes or you cannot even get into game console.&lt;br /&gt;
In any of these cases, use the second approach.&lt;br /&gt;
&lt;br /&gt;
When you have got the file, add it to your report just as you did with &amp;lt;tt&amp;gt;darkmod.cfg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Screenshot ===&lt;br /&gt;
&lt;br /&gt;
If something looks wrong for you, posting screenshot is a good thing to do.&lt;br /&gt;
Otherwise, the guy who tries to reproduce your issue and fails will have hard time guessing if he sees the same picture as you.&lt;br /&gt;
You can of course try to explain what you see with words, but it is vague and subjective.&lt;br /&gt;
&lt;br /&gt;
There are two ways to get a screenshot:&lt;br /&gt;
# Press a key in-game (F12 by default). Then find the screenshot in &amp;lt;tt&amp;gt;C:\games\thedarkmod\screenshots&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Ensure that you run game in Windowed mode. Press Print-Screen key to copy screen to clipboard. Start Paint and paste (Ctrl+V) it there. Trim the TDM window in it and save.&lt;br /&gt;
The first approach is preferred, but sometimes it fails to capture the glitch.&lt;br /&gt;
&lt;br /&gt;
When you want to share a picture on the forums, you can do one of:&lt;br /&gt;
* Add it as attachment to your forum post.&lt;br /&gt;
* Upload it to some free image hosting, and insert a link to it (click on Image icon) into the post. Surround the link/picture in spoiler tag (unless it is low-resolution) !&lt;br /&gt;
&lt;br /&gt;
When reporting on bugtracker, simply attach the file to the issue and mention it somewhere in the text.&lt;br /&gt;
&lt;br /&gt;
=== Coordinates ===&lt;br /&gt;
&lt;br /&gt;
Typically, a problem happens in-game on at least one of the released fan missions. In such case, please write the name of the FM and the world coordinates where the problem happens.&lt;br /&gt;
&lt;br /&gt;
In order to find world coordinates, execute &amp;lt;tt&amp;gt;getviewpos&amp;lt;/tt&amp;gt; in the game console.&lt;br /&gt;
The coordinates will be printed in response: the first three are the coordinates, and the last three are the viewing angles. Copy them all to your report.&lt;br /&gt;
Since you cannot copy text directly from the game console, use [[Reporting Problem#condump|one of the methods described above to get a condump]].&lt;br /&gt;
In fact, it is a good idea to run &amp;lt;tt&amp;gt;getviewpos&amp;lt;/tt&amp;gt; just before creating a condump.&lt;br /&gt;
By the way, you can execute &amp;lt;tt&amp;gt;setviewpos&amp;lt;/tt&amp;gt; with these six arguments to teleport yourself to this specific location, e.g. to ensure that you have copied coords correctly.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can set &amp;lt;tt&amp;gt;tdm_show_viewpos 1&amp;lt;/tt&amp;gt; to display current coordinates on screen, so that they can be captured in screenshot.&lt;br /&gt;
Or you can call command &amp;lt;tt&amp;gt;screenshot_viewpos&amp;lt;/tt&amp;gt; to make a special screenshot with coordinates visible on it.&lt;br /&gt;
&lt;br /&gt;
See also: https://forums.thedarkmod.com/index.php?/topic/22361-screenshots-with-coordinates/&lt;br /&gt;
&lt;br /&gt;
== Advanced ==&lt;br /&gt;
&lt;br /&gt;
Here are few more advanced tricks which may help debugging issues.&lt;br /&gt;
&lt;br /&gt;
=== Crashdump ===&lt;br /&gt;
&lt;br /&gt;
When TDM crashes, you can record a &amp;quot;memory dump&amp;quot; or &amp;quot;crash dump&amp;quot; of it.&lt;br /&gt;
It often contains information invaluable for coders, but it is only useful for debugging crashes.&lt;br /&gt;
&lt;br /&gt;
The article [[Save a Memory Dump for debugging Crashes]] explains in detail how to record it.&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
Some graphical issues are very obvious in dynamics, but when you take a still screenshot, it does not capture the tragedy well enough.&lt;br /&gt;
&lt;br /&gt;
In such case you can record a video of the problem.&lt;br /&gt;
[https://obsproject.com/ Open Broadcast Software] is a free program which can easily record a high-quality and high-FPS game footage.&lt;br /&gt;
The program is quite complicated, but the main thing you need is to add a &amp;quot;source&amp;quot;: either &amp;quot;Game Capture&amp;quot;, or &amp;quot;Window Capture&amp;quot;, or &amp;quot;Screen Capture&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When you have a video, you can either upload it to video hosting (like YouTube) and post a link, or upload it to cloud storage (like Google Drive) and post a shared link.&lt;br /&gt;
If you copy/paste a link to YouTube video into a forum post, the forum will show embedded player automatically.&lt;br /&gt;
&lt;br /&gt;
=== Installation state ===&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a chance that your TDM installation is corrupt.&lt;br /&gt;
In such case it is great to give people a brief overview of it.&amp;lt;br&amp;gt;&lt;br /&gt;
Like generating a filelist of the gamefolder.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To create a filelisting of the TDM gamefolder, in windows 10&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Open file explorer, navigate to the tdm gamefolder. &lt;br /&gt;
# click &amp;quot;file&amp;quot; (menu) &amp;gt; &amp;quot;open in powershell&amp;quot; and a blue window will appear.&lt;br /&gt;
# Fill in the following command line in that window and hit the enter-key: dir /s &amp;gt; mytmdfolderandfiles.txt&amp;lt;br&amp;gt;This command generate a textfile in your gamefolder.&lt;br /&gt;
# the content of this file mytmdfolderandfiles.txt you can give to people for research. &lt;br /&gt;
After this, just run the TDM installer to download the original files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: write some simple way to get good textual representation of TDM installation directory.&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34471</id>
		<title>DDS creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34471"/>
		<updated>2026-04-01T11:42:07Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* DDS Creation, In General */ added BC5 and changed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page was entirely rewritten in August 2020 by peter_spy and Geep - A shortened version of the prior content here may be found at new page [[DDS Creation with ATI Compressonator]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to DDS==&lt;br /&gt;
&lt;br /&gt;
DDS (Direct Draw Surface) is an image format often used in games due to its significant advantages over other file types:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No need for conversion during load&#039;&#039;&#039;: This is a target format in which textures are stored in your GPU memory. Other image types, like TGA, have to be converted during loading, and that makes the whole process longer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Better image quality with mipmapping&#039;&#039;&#039;: Game engines use LOD systems to generate textures further away from the player, but (without mipmaps available) that results in blurred image and moire patterns. Mipmaps are scaled-down versions of your texture, stored within the same file as the full-scale texture. Mipmaps will improve image quality, the transition between LOD stages, and overall performance. More on mipmapping: https://en.wikipedia.org/wiki/Mipmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very efficient compression&#039;&#039;&#039;: Depending on the DDS compression format, a typical results is around 25% of the original uncompressed file. For example, a 2048x2048 px RGB texture saved as uncompressed TGA will be around 12 MB. Save it as DDS, and you&#039;ll go below 3 MB. Other formats like PNG or Zip compression will give you around 9 MB.&lt;br /&gt;
&lt;br /&gt;
==Textures in TDM==&lt;br /&gt;
&lt;br /&gt;
TDM can handle textures in TGA, DDS, jpg and png formats. TGA and DDS are generally recomended for textures. For guidance in preparing compliant texture files, applicable to both formats, see:&lt;br /&gt;
* [[How_to_add_Textures_to_The_Dark_Mod]]&lt;br /&gt;
* [[Texture_Guidelines]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folder structure in your FM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While all TGA, png, jpg files go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DDS files should go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/&#039;&#039;&#039;dds&#039;&#039;&#039;/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In other words, you need to copy-paste your folder structure into the dds directory. (At one time, the DDS hierarchy could be no more than 5 deep; this is no longer an issue.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039;: TDM gives DDS files higher priority than TGAs. If you have both for a given material, the engine will only load the DDS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normal Maps&#039;&#039;&#039;: You can safely convert diffuse and specular textures to DDS. But normal (bump) maps are not images in the traditional sense; they&#039;re more like vector maps. lossy compression will usually introduce some artifacts and otherwise damage that data. You can either use BC5 DDS compression (as of TDM 2.10) for normal maps (this is a special DDS compression for normalmaps alone that doesn&#039;t damage the file) or use TGA format instead.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation, In General ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compression Formats&#039;&#039;&#039;: DDS files can be compressed in different ways, depending on source image requirements. As a general rule, use -&lt;br /&gt;
* DXT1 compression with RGB images&lt;br /&gt;
* DXT5 for textures with alpha channel transparency&lt;br /&gt;
* BC5 (only) for normalmaps&lt;br /&gt;
More info on compression formats: https://en.wikipedia.org/wiki/S3_Texture_Compression&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mipmaping&#039;&#039;&#039;: &#039;&#039;&#039;Mipmap generation is mandatory in TDM.&#039;&#039;&#039; Otherwise DDS textures won&#039;t show in game and you&#039;ll get console errors.&lt;br /&gt;
&lt;br /&gt;
TIP: You can improve texture quality - at no additional performance cost - by using the best mipmaps scaling filter available in the DDS file export settings. Usually they&#039;re ordered from faster/low-quality to slower/high-quality.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation with Specific Tools==&lt;br /&gt;
* [[DDS Creation with GIMP]]&lt;br /&gt;
* [[DDS Creation with ATI Compressonator]]&lt;br /&gt;
&lt;br /&gt;
==General Workflow Tips==&lt;br /&gt;
&lt;br /&gt;
* Convert to DDS only after you have finalized textures that make up your material. There are at least two reasons for that:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS format isn&#039;t suited for fast iteration&#039;&#039;&#039;: You have to restart the game and reload the map to see the any changes. With TGA files, you just need to use a refresh command to see your changes in an instant.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS compression is lossy&#039;&#039;&#039;: While the compression ratio is pretty great, it slightly reduces image quality. You shouldn&#039;t work on DDS textures directly, as you&#039;ll decrease image quality with each save. Keep your source files and work on them instead, then export TGAs to DDS when you&#039;re happy with the final result.&lt;br /&gt;
&lt;br /&gt;
* Planning to revise and test your material&#039;s textures? Besides re-exporting the updated textures as TGA, be sure to delete its old DDS textures, that would have priority.&lt;br /&gt;
&lt;br /&gt;
==Testing Your DDS Texture==&lt;br /&gt;
Mipmapping is affected by in-game Anisotropic Filtering. Set it to x16 to ensure maximum image quality while testing your materials.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://www.reedbeta.com/blog/understanding-bcn-texture-compression-formats/ Understanding bcn texture compression formats]&lt;br /&gt;
* [http://wiki.polycount.com/wiki/DXT DDS compression formats]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mipmap Mipmaps]&lt;br /&gt;
  &lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34470</id>
		<title>DDS creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34470"/>
		<updated>2026-04-01T11:35:07Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Textures in TDM */  changed info about BC5 DDS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page was entirely rewritten in August 2020 by peter_spy and Geep - A shortened version of the prior content here may be found at new page [[DDS Creation with ATI Compressonator]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to DDS==&lt;br /&gt;
&lt;br /&gt;
DDS (Direct Draw Surface) is an image format often used in games due to its significant advantages over other file types:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No need for conversion during load&#039;&#039;&#039;: This is a target format in which textures are stored in your GPU memory. Other image types, like TGA, have to be converted during loading, and that makes the whole process longer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Better image quality with mipmapping&#039;&#039;&#039;: Game engines use LOD systems to generate textures further away from the player, but (without mipmaps available) that results in blurred image and moire patterns. Mipmaps are scaled-down versions of your texture, stored within the same file as the full-scale texture. Mipmaps will improve image quality, the transition between LOD stages, and overall performance. More on mipmapping: https://en.wikipedia.org/wiki/Mipmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very efficient compression&#039;&#039;&#039;: Depending on the DDS compression format, a typical results is around 25% of the original uncompressed file. For example, a 2048x2048 px RGB texture saved as uncompressed TGA will be around 12 MB. Save it as DDS, and you&#039;ll go below 3 MB. Other formats like PNG or Zip compression will give you around 9 MB.&lt;br /&gt;
&lt;br /&gt;
==Textures in TDM==&lt;br /&gt;
&lt;br /&gt;
TDM can handle textures in TGA, DDS, jpg and png formats. TGA and DDS are generally recomended for textures. For guidance in preparing compliant texture files, applicable to both formats, see:&lt;br /&gt;
* [[How_to_add_Textures_to_The_Dark_Mod]]&lt;br /&gt;
* [[Texture_Guidelines]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folder structure in your FM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While all TGA, png, jpg files go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DDS files should go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/&#039;&#039;&#039;dds&#039;&#039;&#039;/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In other words, you need to copy-paste your folder structure into the dds directory. (At one time, the DDS hierarchy could be no more than 5 deep; this is no longer an issue.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039;: TDM gives DDS files higher priority than TGAs. If you have both for a given material, the engine will only load the DDS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normal Maps&#039;&#039;&#039;: You can safely convert diffuse and specular textures to DDS. But normal (bump) maps are not images in the traditional sense; they&#039;re more like vector maps. lossy compression will usually introduce some artifacts and otherwise damage that data. You can either use BC5 DDS compression (as of TDM 2.10) for normal maps (this is a special DDS compression for normalmaps alone that doesn&#039;t damage the file) or use TGA format instead.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation, In General ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compression Formats&#039;&#039;&#039;: DDS files can be compressed in different ways, depending on source image requirements. As a general rule, use -&lt;br /&gt;
* DXT1 compression with RGB images&lt;br /&gt;
* DXT5 for textures with alpha channel transparency&lt;br /&gt;
More info on compression formats: http://wiki.polycount.com/wiki/DXT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mipmaping&#039;&#039;&#039;: &#039;&#039;&#039;Mipmap generation is mandatory in TDM.&#039;&#039;&#039; Otherwise DDS textures won&#039;t show in game and you&#039;ll get console errors.&lt;br /&gt;
&lt;br /&gt;
TIP: You can improve texture quality - at no additional performance cost - by using the best mipmaps scaling filter available in the DDS file export settings. Usually they&#039;re ordered from faster/low-quality to slower/high-quality.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation with Specific Tools==&lt;br /&gt;
* [[DDS Creation with GIMP]]&lt;br /&gt;
* [[DDS Creation with ATI Compressonator]]&lt;br /&gt;
&lt;br /&gt;
==General Workflow Tips==&lt;br /&gt;
&lt;br /&gt;
* Convert to DDS only after you have finalized textures that make up your material. There are at least two reasons for that:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS format isn&#039;t suited for fast iteration&#039;&#039;&#039;: You have to restart the game and reload the map to see the any changes. With TGA files, you just need to use a refresh command to see your changes in an instant.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS compression is lossy&#039;&#039;&#039;: While the compression ratio is pretty great, it slightly reduces image quality. You shouldn&#039;t work on DDS textures directly, as you&#039;ll decrease image quality with each save. Keep your source files and work on them instead, then export TGAs to DDS when you&#039;re happy with the final result.&lt;br /&gt;
&lt;br /&gt;
* Planning to revise and test your material&#039;s textures? Besides re-exporting the updated textures as TGA, be sure to delete its old DDS textures, that would have priority.&lt;br /&gt;
&lt;br /&gt;
==Testing Your DDS Texture==&lt;br /&gt;
Mipmapping is affected by in-game Anisotropic Filtering. Set it to x16 to ensure maximum image quality while testing your materials.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://www.reedbeta.com/blog/understanding-bcn-texture-compression-formats/ Understanding bcn texture compression formats]&lt;br /&gt;
* [http://wiki.polycount.com/wiki/DXT DDS compression formats]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mipmap Mipmaps]&lt;br /&gt;
  &lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34469</id>
		<title>DDS creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34469"/>
		<updated>2026-04-01T11:27:37Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Textures in TDM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page was entirely rewritten in August 2020 by peter_spy and Geep - A shortened version of the prior content here may be found at new page [[DDS Creation with ATI Compressonator]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to DDS==&lt;br /&gt;
&lt;br /&gt;
DDS (Direct Draw Surface) is an image format often used in games due to its significant advantages over other file types:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No need for conversion during load&#039;&#039;&#039;: This is a target format in which textures are stored in your GPU memory. Other image types, like TGA, have to be converted during loading, and that makes the whole process longer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Better image quality with mipmapping&#039;&#039;&#039;: Game engines use LOD systems to generate textures further away from the player, but (without mipmaps available) that results in blurred image and moire patterns. Mipmaps are scaled-down versions of your texture, stored within the same file as the full-scale texture. Mipmaps will improve image quality, the transition between LOD stages, and overall performance. More on mipmapping: https://en.wikipedia.org/wiki/Mipmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very efficient compression&#039;&#039;&#039;: Depending on the DDS compression format, a typical results is around 25% of the original uncompressed file. For example, a 2048x2048 px RGB texture saved as uncompressed TGA will be around 12 MB. Save it as DDS, and you&#039;ll go below 3 MB. Other formats like PNG or Zip compression will give you around 9 MB.&lt;br /&gt;
&lt;br /&gt;
==Textures in TDM==&lt;br /&gt;
&lt;br /&gt;
TDM can handle textures in TGA, DDS, jpg and png formats. TGA and DDS are generally recomended for textures. For guidance in preparing compliant texture files, applicable to both formats, see:&lt;br /&gt;
* [[How_to_add_Textures_to_The_Dark_Mod]]&lt;br /&gt;
* [[Texture_Guidelines]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folder structure in your FM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While all TGA, png, jpg files go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DDS files should go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/&#039;&#039;&#039;dds&#039;&#039;&#039;/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In other words, you need to copy-paste your folder structure into the dds directory. (At one time, the DDS hierarchy could be no more than 5 deep; this is no longer an issue.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039;: TDM gives DDS files higher priority than TGAs. If you have both for a given material, the engine will only load the DDS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Leave Normal Maps as TGA&#039;&#039;&#039;: You can safely convert diffuse and specular textures to DDS. But normal (bump) maps are not images in the traditional sense; they&#039;re more like vector maps. Any lossy compression will always introduce some artifacts and otherwise damage that data. To be on the safe side, keep normal maps as TGAs. &amp;lt;br&amp;gt;&#039;&#039;&#039;NEW&#039;&#039;&#039;: As of TDM 2.10 and newer, we now support BC5 DDS ( RGTC ) compression for normal maps which shows no artifacts.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation, In General ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compression Formats&#039;&#039;&#039;: DDS files can be compressed in different ways, depending on source image requirements. As a general rule, use -&lt;br /&gt;
* DXT1 compression with RGB images&lt;br /&gt;
* DXT5 for textures with alpha channel transparency&lt;br /&gt;
More info on compression formats: http://wiki.polycount.com/wiki/DXT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mipmaping&#039;&#039;&#039;: &#039;&#039;&#039;Mipmap generation is mandatory in TDM.&#039;&#039;&#039; Otherwise DDS textures won&#039;t show in game and you&#039;ll get console errors.&lt;br /&gt;
&lt;br /&gt;
TIP: You can improve texture quality - at no additional performance cost - by using the best mipmaps scaling filter available in the DDS file export settings. Usually they&#039;re ordered from faster/low-quality to slower/high-quality.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation with Specific Tools==&lt;br /&gt;
* [[DDS Creation with GIMP]]&lt;br /&gt;
* [[DDS Creation with ATI Compressonator]]&lt;br /&gt;
&lt;br /&gt;
==General Workflow Tips==&lt;br /&gt;
&lt;br /&gt;
* Convert to DDS only after you have finalized textures that make up your material. There are at least two reasons for that:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS format isn&#039;t suited for fast iteration&#039;&#039;&#039;: You have to restart the game and reload the map to see the any changes. With TGA files, you just need to use a refresh command to see your changes in an instant.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS compression is lossy&#039;&#039;&#039;: While the compression ratio is pretty great, it slightly reduces image quality. You shouldn&#039;t work on DDS textures directly, as you&#039;ll decrease image quality with each save. Keep your source files and work on them instead, then export TGAs to DDS when you&#039;re happy with the final result.&lt;br /&gt;
&lt;br /&gt;
* Planning to revise and test your material&#039;s textures? Besides re-exporting the updated textures as TGA, be sure to delete its old DDS textures, that would have priority.&lt;br /&gt;
&lt;br /&gt;
==Testing Your DDS Texture==&lt;br /&gt;
Mipmapping is affected by in-game Anisotropic Filtering. Set it to x16 to ensure maximum image quality while testing your materials.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://www.reedbeta.com/blog/understanding-bcn-texture-compression-formats/ Understanding bcn texture compression formats]&lt;br /&gt;
* [http://wiki.polycount.com/wiki/DXT DDS compression formats]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mipmap Mipmaps]&lt;br /&gt;
  &lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34468</id>
		<title>DDS creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34468"/>
		<updated>2026-04-01T11:25:55Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Textures in TDM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page was entirely rewritten in August 2020 by peter_spy and Geep - A shortened version of the prior content here may be found at new page [[DDS Creation with ATI Compressonator]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to DDS==&lt;br /&gt;
&lt;br /&gt;
DDS (Direct Draw Surface) is an image format often used in games due to its significant advantages over other file types:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No need for conversion during load&#039;&#039;&#039;: This is a target format in which textures are stored in your GPU memory. Other image types, like TGA, have to be converted during loading, and that makes the whole process longer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Better image quality with mipmapping&#039;&#039;&#039;: Game engines use LOD systems to generate textures further away from the player, but (without mipmaps available) that results in blurred image and moire patterns. Mipmaps are scaled-down versions of your texture, stored within the same file as the full-scale texture. Mipmaps will improve image quality, the transition between LOD stages, and overall performance. More on mipmapping: https://en.wikipedia.org/wiki/Mipmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very efficient compression&#039;&#039;&#039;: Depending on the DDS compression format, a typical results is around 25% of the original uncompressed file. For example, a 2048x2048 px RGB texture saved as uncompressed TGA will be around 12 MB. Save it as DDS, and you&#039;ll go below 3 MB. Other formats like PNG or Zip compression will give you around 9 MB.&lt;br /&gt;
&lt;br /&gt;
==Textures in TDM==&lt;br /&gt;
&lt;br /&gt;
TDM can handle textures in TGA, DDS, jpg and png formats. TGA and DDS are generally recomended for textures. For guidance in preparing compliant texture files, applicable to both formats, see:&lt;br /&gt;
* [[How_to_add_Textures_to_The_Dark_Mod]]&lt;br /&gt;
* [[Texture_Guidelines]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folder structure in your FM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While all TGA, png, jpg files go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DDS files should go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/&#039;&#039;&#039;dds&#039;&#039;&#039;/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In other words, you need to copy-paste your folder structure into the dds directory. (At one time, the DDS hierarchy could be no more than 5 deep; this is no longer an issue.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039;: TDM gives DDS files higher priority than TGAs. If you have both for a given material, the engine will only load the DDS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Leave Normal Maps as TGA&#039;&#039;&#039;: You can safely convert diffuse and specular textures to DDS. But normal (bump) maps are not images in the traditional sense; they&#039;re more like vector maps. Any lossy compression will always introduce some artifacts and otherwise damage that data. To be on the safe side, keep normal maps as TGAs. &amp;lt;br&amp;gt;&#039;&#039;&#039;NEW&#039;&#039;&#039;: As of TDM 2.10 and newer, we now support BC5 DDS ( RGTC ) compression for normal maps.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation, In General ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compression Formats&#039;&#039;&#039;: DDS files can be compressed in different ways, depending on source image requirements. As a general rule, use -&lt;br /&gt;
* DXT1 compression with RGB images&lt;br /&gt;
* DXT5 for textures with alpha channel transparency&lt;br /&gt;
More info on compression formats: http://wiki.polycount.com/wiki/DXT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mipmaping&#039;&#039;&#039;: &#039;&#039;&#039;Mipmap generation is mandatory in TDM.&#039;&#039;&#039; Otherwise DDS textures won&#039;t show in game and you&#039;ll get console errors.&lt;br /&gt;
&lt;br /&gt;
TIP: You can improve texture quality - at no additional performance cost - by using the best mipmaps scaling filter available in the DDS file export settings. Usually they&#039;re ordered from faster/low-quality to slower/high-quality.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation with Specific Tools==&lt;br /&gt;
* [[DDS Creation with GIMP]]&lt;br /&gt;
* [[DDS Creation with ATI Compressonator]]&lt;br /&gt;
&lt;br /&gt;
==General Workflow Tips==&lt;br /&gt;
&lt;br /&gt;
* Convert to DDS only after you have finalized textures that make up your material. There are at least two reasons for that:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS format isn&#039;t suited for fast iteration&#039;&#039;&#039;: You have to restart the game and reload the map to see the any changes. With TGA files, you just need to use a refresh command to see your changes in an instant.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS compression is lossy&#039;&#039;&#039;: While the compression ratio is pretty great, it slightly reduces image quality. You shouldn&#039;t work on DDS textures directly, as you&#039;ll decrease image quality with each save. Keep your source files and work on them instead, then export TGAs to DDS when you&#039;re happy with the final result.&lt;br /&gt;
&lt;br /&gt;
* Planning to revise and test your material&#039;s textures? Besides re-exporting the updated textures as TGA, be sure to delete its old DDS textures, that would have priority.&lt;br /&gt;
&lt;br /&gt;
==Testing Your DDS Texture==&lt;br /&gt;
Mipmapping is affected by in-game Anisotropic Filtering. Set it to x16 to ensure maximum image quality while testing your materials.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://www.reedbeta.com/blog/understanding-bcn-texture-compression-formats/ Understanding bcn texture compression formats]&lt;br /&gt;
* [http://wiki.polycount.com/wiki/DXT DDS compression formats]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mipmap Mipmaps]&lt;br /&gt;
  &lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34467</id>
		<title>DDS creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=DDS_creation&amp;diff=34467"/>
		<updated>2026-04-01T11:24:31Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Textures in TDM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page was entirely rewritten in August 2020 by peter_spy and Geep - A shortened version of the prior content here may be found at new page [[DDS Creation with ATI Compressonator]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to DDS==&lt;br /&gt;
&lt;br /&gt;
DDS (Direct Draw Surface) is an image format often used in games due to its significant advantages over other file types:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No need for conversion during load&#039;&#039;&#039;: This is a target format in which textures are stored in your GPU memory. Other image types, like TGA, have to be converted during loading, and that makes the whole process longer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Better image quality with mipmapping&#039;&#039;&#039;: Game engines use LOD systems to generate textures further away from the player, but (without mipmaps available) that results in blurred image and moire patterns. Mipmaps are scaled-down versions of your texture, stored within the same file as the full-scale texture. Mipmaps will improve image quality, the transition between LOD stages, and overall performance. More on mipmapping: https://en.wikipedia.org/wiki/Mipmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very efficient compression&#039;&#039;&#039;: Depending on the DDS compression format, a typical results is around 25% of the original uncompressed file. For example, a 2048x2048 px RGB texture saved as uncompressed TGA will be around 12 MB. Save it as DDS, and you&#039;ll go below 3 MB. Other formats like PNG or Zip compression will give you around 9 MB.&lt;br /&gt;
&lt;br /&gt;
==Textures in TDM==&lt;br /&gt;
&lt;br /&gt;
TDM can handle textures in TGA, DDS, jpg and png formats. TGA and DDS are generally recomended for textures. For guidance in preparing compliant texture files, applicable to both formats, see:&lt;br /&gt;
* [[How_to_add_Textures_to_The_Dark_Mod]]&lt;br /&gt;
* [[Texture_Guidelines]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folder structure in your FM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While all TGA files go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DDS files should go to:&lt;br /&gt;
&lt;br /&gt;
     yourFmRootFolder/&#039;&#039;&#039;dds&#039;&#039;&#039;/textures/&#039;&#039;[optional subfolder(s)]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In other words, you need to copy-paste your folder structure into the dds directory. (At one time, the DDS hierarchy could be no more than 5 deep; this is no longer an issue.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039;: TDM gives DDS files higher priority than TGAs. If you have both for a given material, the engine will only load the DDS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Leave Normal Maps as TGA&#039;&#039;&#039;: You can safely convert diffuse and specular textures to DDS. But normal (bump) maps are not images in the traditional sense; they&#039;re more like vector maps. Any lossy compression will always introduce some artifacts and otherwise damage that data. To be on the safe side, keep normal maps as TGAs. &amp;lt;br&amp;gt;&#039;&#039;&#039;NEW&#039;&#039;&#039;: As of TDM 2.10 and newer, we now support BC5 DDS ( RGTC ) compression for normal maps.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation, In General ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compression Formats&#039;&#039;&#039;: DDS files can be compressed in different ways, depending on source image requirements. As a general rule, use -&lt;br /&gt;
* DXT1 compression with RGB images&lt;br /&gt;
* DXT5 for textures with alpha channel transparency&lt;br /&gt;
More info on compression formats: http://wiki.polycount.com/wiki/DXT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mipmaping&#039;&#039;&#039;: &#039;&#039;&#039;Mipmap generation is mandatory in TDM.&#039;&#039;&#039; Otherwise DDS textures won&#039;t show in game and you&#039;ll get console errors.&lt;br /&gt;
&lt;br /&gt;
TIP: You can improve texture quality - at no additional performance cost - by using the best mipmaps scaling filter available in the DDS file export settings. Usually they&#039;re ordered from faster/low-quality to slower/high-quality.&lt;br /&gt;
&lt;br /&gt;
==DDS Creation with Specific Tools==&lt;br /&gt;
* [[DDS Creation with GIMP]]&lt;br /&gt;
* [[DDS Creation with ATI Compressonator]]&lt;br /&gt;
&lt;br /&gt;
==General Workflow Tips==&lt;br /&gt;
&lt;br /&gt;
* Convert to DDS only after you have finalized textures that make up your material. There are at least two reasons for that:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS format isn&#039;t suited for fast iteration&#039;&#039;&#039;: You have to restart the game and reload the map to see the any changes. With TGA files, you just need to use a refresh command to see your changes in an instant.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;DDS compression is lossy&#039;&#039;&#039;: While the compression ratio is pretty great, it slightly reduces image quality. You shouldn&#039;t work on DDS textures directly, as you&#039;ll decrease image quality with each save. Keep your source files and work on them instead, then export TGAs to DDS when you&#039;re happy with the final result.&lt;br /&gt;
&lt;br /&gt;
* Planning to revise and test your material&#039;s textures? Besides re-exporting the updated textures as TGA, be sure to delete its old DDS textures, that would have priority.&lt;br /&gt;
&lt;br /&gt;
==Testing Your DDS Texture==&lt;br /&gt;
Mipmapping is affected by in-game Anisotropic Filtering. Set it to x16 to ensure maximum image quality while testing your materials.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://www.reedbeta.com/blog/understanding-bcn-texture-compression-formats/ Understanding bcn texture compression formats]&lt;br /&gt;
* [http://wiki.polycount.com/wiki/DXT DDS compression formats]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mipmap Mipmaps]&lt;br /&gt;
  &lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Secrets&amp;diff=34462</id>
		<title>Secrets</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Secrets&amp;diff=34462"/>
		<updated>2026-03-27T13:14:09Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Secrets */ removed irrelevant double info about version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Secrets==&lt;br /&gt;
&lt;br /&gt;
Secrets are typically well-hidden or hard to reach items or locations. You might like to recognise the player&#039;s achievement in finding a secret by showing a message with a sound, and show how many secrets the player has found at the end of the mission.&lt;br /&gt;
&lt;br /&gt;
As of 2.10, this can be done easily with spawnargs or secret-related entities and no longer requires scripts or tweaking GUI files.&lt;br /&gt;
&lt;br /&gt;
== Setting up a secret ==&lt;br /&gt;
=== Frob-based secret ===&lt;br /&gt;
Often a secret is just a piece of loot or gear that the player can frob. Setting the spawnarg &lt;br /&gt;
 &amp;quot;secret&amp;quot; &amp;quot;1&amp;quot; &lt;br /&gt;
will mark it as a secret, and it will be considered found when the player frobs it. Each entity with this spawnarg will increase the total number of secrets in the map by 1, regardless of whether the player can frob the entity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Trigger-based secret ===&lt;br /&gt;
An alternative way to setup a secret is by creating an&lt;br /&gt;
 atdm:secret&lt;br /&gt;
entity, found in the Info/ folder. When this entity is triggered by something, for example a lever, a trigger_once brush or as the &amp;quot;completion target&amp;quot; of an objective, the player is considered to have found a secret.&lt;br /&gt;
&lt;br /&gt;
By default, each of these atdm:secret entities can only be triggered once and will add 1 to the total number of secrets in the map. &lt;br /&gt;
&lt;br /&gt;
You can reuse an atdm:secret entity for multiple secrets by increasing the &amp;quot;count&amp;quot; spawnarg, but you should make sure that each secret can only send one trigger. A trigger_once brush would be suitable, but not a button or reversible objective.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The message ==&lt;br /&gt;
Whenever the player finds a secret a message will be shown and a sound will play. The message &amp;amp; sound change when the player has found all secrets.&lt;br /&gt;
&lt;br /&gt;
You can customise or disable this by placing an entity of the following type in your map (found in the Info folder) and changing its spawnargs:&lt;br /&gt;
 atdm:secret_messages&lt;br /&gt;
&lt;br /&gt;
=== Spawnargs of the message entity ===&lt;br /&gt;
It offers the following spawnargs:&lt;br /&gt;
* &#039;&#039;message&#039;&#039; and &#039;&#039;sound&#039;&#039; - These spawnargs determine whether and when a message or sound will appear. &lt;br /&gt;
** 0 = never&lt;br /&gt;
** 1 = whenever the player finds a secret (default)&lt;br /&gt;
** 2 = only when the player has found all secrets&lt;br /&gt;
* &#039;&#039;delay&#039;&#039; - Wait this amount of time in seconds after finding a secret before showing the message and starting the sound.&lt;br /&gt;
* &#039;&#039;s_volume&#039;&#039; - This allows to increase or decrease the volume of the sound in dB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following spawnargs have either &amp;quot;found&amp;quot; or &amp;quot;found_all&amp;quot; in their names. This allows you to configure 2 different messages, depending on whether the player has found some or all secrets.&lt;br /&gt;
** &#039;&#039;gui&#039;&#039; - which GUI to use for the message, i.e. a scroll or only white text. This also determines the position of the message.&lt;br /&gt;
** &#039;&#039;show&#039;&#039; - how long to show the message.&lt;br /&gt;
** &#039;&#039;lines&#039;&#039; - how many lines the message is long (affects positioning of the lines).&lt;br /&gt;
** &#039;&#039;text&#039;&#039; - the text shown by the message.&lt;br /&gt;
** &#039;&#039;snd&#039;&#039; - the sound to play. It should not loop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;text&#039;&#039; spawnargs deserve special mention since they support keywords that are automatically converted by the script:&lt;br /&gt;
* ${numFound} - how many secrets the player has found so far.&lt;br /&gt;
* ${numTotal} - how many secrets there are in total.&lt;br /&gt;
* ${numRemaining} - how many secrets the player hasn&#039;t found yet.&lt;br /&gt;
* ${s} - this letter only appears if the player has found 2 or more secrets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As an example, these are the default &#039;&#039;text&#039;&#039; spawnarg values:&lt;br /&gt;
* &amp;quot;text_found&amp;quot; &amp;quot;You found ${numFound} secret${s}, ${numRemaining} to go!&amp;quot;&lt;br /&gt;
* &amp;quot;text_found_all&amp;quot; &amp;quot;Congratulations! You have found all ${numTotal} secrets!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Listing all secrets ==&lt;br /&gt;
You can find out which entities are considered as secrets by the game at any time by placing this entity from the Info folder in your map:&lt;br /&gt;
 atdm:secrets_list&lt;br /&gt;
&lt;br /&gt;
At map start, it will post the names of all &amp;quot;secret&amp;quot; entities near the bottom of the console log and by how much each one increases the total number of secrets, i.e.&lt;br /&gt;
 Secret, counts as 1: golden_chalice_1&lt;br /&gt;
 Secret, counts as 1: atdm_secret_1&lt;br /&gt;
 Secret, counts as 2: atdm_secret_4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
The secrets system supports the following script events, allowing you to check the current status or even make your own system without using anything else mentioned in this article:&lt;br /&gt;
 getMissionStatistic( &amp;quot;secretsFound&amp;quot; )&lt;br /&gt;
 getMissionStatistic( &amp;quot;secretsTotal&amp;quot; )&lt;br /&gt;
 setSecretsFound( float secrets )&lt;br /&gt;
 setSecretsTotal( float secrets )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Updating your mission to use the secrets system ===&lt;br /&gt;
If you already have your own system for tracking secrets, you may want to update your FM so that secrets are shown on the statistics screen. This can be done ad hoc with little effort by adding the following to your script:&lt;br /&gt;
* setSecretsTotal() at map start (i.e. in void main()), passing the total number of secrets.&lt;br /&gt;
* setSecretsFound() when your script detects that a secret has been found, passing the variable for the number of secrets found so far.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Skybox_Basic_Details&amp;diff=34442</id>
		<title>Skybox Basic Details</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Skybox_Basic_Details&amp;diff=34442"/>
		<updated>2026-03-13T13:13:17Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;How to create sky:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Go to {{menu|l1=File|l2=Import Prefab}} and select &#039;&#039;&#039;skybox &amp;gt; tdm_starry.pfb&#039;&#039;&#039;.&lt;br /&gt;
# Check the &#039;&#039;&#039;Texture Lock&#039;&#039;&#039; [[Image:DRtexLock.jpg]] status, it must be enabled. Lock textures on the [[prefab]] by pressing {{key|name=S}}, or the moon texture may get out of alignment.&lt;br /&gt;
# The loaded prefab is already selected, so move it out of the way of your normal map geometry. The exact place doesn&#039;t really matter, just move it where it doesn&#039;t get in the way later.&lt;br /&gt;
# In your map, texture the &#039;&#039;&#039;inside facing sides&#039;&#039;&#039; of your sky brushes with &#039;&#039;&#039;&amp;lt;code&amp;gt;textures/smf/portal_sky&amp;lt;/code&amp;gt;&#039;&#039;&#039;, by selecting them with {{key-ctrl}}+{{key-shift}}+{{LMB}}.&lt;br /&gt;
&lt;br /&gt;
Finished. When you load your level, you will see an attractive night sky with clouds, moon and stars.&lt;br /&gt;
&lt;br /&gt;
=== How to change the moon ===&lt;br /&gt;
&lt;br /&gt;
Go to the loaded prefab, and hide everything until you find a very tiny brush. This brush has the moon texture on one side, and the placement of this brush changes the place of the moon on the sky.&lt;br /&gt;
&lt;br /&gt;
=== How to change sky background color ===&lt;br /&gt;
&lt;br /&gt;
If you use the tdm_sky_starry1.pfb in the directions above, notice that there&#039;s a patch mesh in the skybox room covered with a blank white texture &amp;lt;code&amp;gt;(textures/darkmod/nature/skybox/starry1/skyfade)&amp;lt;/code&amp;gt;; in many maps it shows up as black, however -- that&#039;s because in the shader definition it has &amp;lt;code&amp;gt;&amp;quot;spectrum 2&amp;quot;&amp;lt;/code&amp;gt;, meaning that it is only lit by light textures in that spectrum. Most lights you place are usually in spectrum 1, so nothing is lighting that white texture, and so it ends up black!&lt;br /&gt;
&lt;br /&gt;
So, place a light in the middle of the skybox room. Choose a light texture with &amp;quot;spectrum2&amp;quot; in it &amp;lt;code&amp;gt;(lights/spectrum2Light_round)&amp;lt;/code&amp;gt; and choose a dark color for the light (maybe #0A192B?). Keep in mind that [http://media.photobucket.com/image/night%20sky%20trees/calendermod/NightSkyTrees1.jpg the sky is usually brighter than the Earth&#039;s surface in real-life, especially at night] -- and for ease of level readability and cool silhouettes, it&#039;s probably better for you to follow that. (e.g. my level&#039;s outdoor ambient light &amp;quot;value&amp;quot; is 5, but my level&#039;s skybox background light &amp;quot;value&amp;quot; is &amp;quot;16&amp;quot;) However, you should definitely test often and see what settings you like.&lt;br /&gt;
&lt;br /&gt;
== Background information ==&lt;br /&gt;
&lt;br /&gt;
To get good performance, you have to create spaces that are separated by [[Visportals]] from each other.&lt;br /&gt;
&lt;br /&gt;
Therefore the outside area of your building should be a series of corridors around the building with the brushes designated &#039;&#039;skybox&#039;&#039; stretching from the outside wall or buildings forming the border of your level, to the highest point of the building you want to be visible, to the top of the roof.  Note, PortalSky used here will show sky in front of whatever is behind, Caulk used here will show sky but also allow func_static (not worldspawn brushes) that have part in the same &amp;quot;leaf&amp;quot; section.  This use of Caulk allows sealing, but also permit skyline to appear beyond.&lt;br /&gt;
&lt;br /&gt;
This enables the use of visportals stretching from the skybox to the ground at key corners, so that when you are standing on the north side of the map, you won&#039;t also be seeing (and rendering) the south side at the same time.&lt;br /&gt;
&lt;br /&gt;
The sides of the brushes which face outside the level have to textured with anything that is solid and a valid texture, people often use caulk, but as long as it&#039;s not &amp;lt;code&amp;gt;no_draw&amp;lt;/code&amp;gt;, you&#039;re fine.&lt;br /&gt;
&lt;br /&gt;
{{tutorial-editing}}&lt;br /&gt;
[[Category:Skybox]]&lt;br /&gt;
[[Category:Mapping Tutorials]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Security_Camera&amp;diff=34441</id>
		<title>Security Camera</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Security_Camera&amp;diff=34441"/>
		<updated>2026-03-10T16:57:31Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Examining a Test Map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Security Camera==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;This article documents the security camera after the major overhaul in version 2.10 onwards. See [[Security Camera (legacy)]] if you&#039;re working with TDM 2.09 or older.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The security camera provides the following features:&lt;br /&gt;
&lt;br /&gt;
* It can either sweep back and forth between two angles or remain stationary.&lt;br /&gt;
* If the camera sees the player, an AI on a hostile team or a body, it plays a short alert sound that is silent to nearby guards. If the enemy or body is still in view several seconds later, an alarm sounds. This alarm will repeat every few seconds for a while, even if the enemy moves out of sight.&lt;br /&gt;
* The camera is able to track its enemy, making it much harder to escape its view.&lt;br /&gt;
* An optional spotlight that points forward, lighting the area in the direction the camera faces.&lt;br /&gt;
* The ability to toggle the camera power on/off by triggering it. Each of the above described subsystems can be toggled individually.&lt;br /&gt;
* If the camera has targets, these will be activated when the camera is fully alerted. This gives the map author the ability to play a more powerful alarm than the one given off by the camera (or to do a variety of other things.)&lt;br /&gt;
* Sending what it sees to a separate, func_static display screen. Alternatively, it can send what another entity (typically a target_null) sees.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Security Camera: Entities and Prefabs==&lt;br /&gt;
&lt;br /&gt;
Security camera entities can be found in &#039;&#039;AI/Machines/Security Camera&#039;&#039; and inherit from &#039;&#039;func_securitycamera&#039;&#039;. Prefabs can be found in &#039;&#039;AI/Machines&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Place the camera entity in your map, and orient it toward its starting direction. A rotating camera will sweep clockwise, halt a moment, then sweep back counter-clockwise.&lt;br /&gt;
&lt;br /&gt;
Some cameras may be designed to use additional parts, i.e. a ceiling pivot entity with scripted gears. See the prefabs or the entity descriptions for more info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Spawnargs==&lt;br /&gt;
&lt;br /&gt;
===Movement Spawnargs===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;rotate&amp;quot; - If &amp;quot;1&amp;quot; (default) the camera will rotate. If &amp;quot;0&amp;quot;, the camera is stationary.&lt;br /&gt;
* &amp;quot;sweepSpeed&amp;quot; - Horizontal rotation speed in degrees per second.&lt;br /&gt;
* &amp;quot;sweepAngle&amp;quot; - The number of degrees the camera covers during its sweep. You can cause a camera to initially sweep in the counter-clockwise direction by setting this to a negative number.&lt;br /&gt;
* &amp;quot;sweepWait&amp;quot; - How long the pause is after the end of a sweep. Default is 0.5 seconds.&lt;br /&gt;
* &amp;quot;sweepWaitSoundOffset&amp;quot; - Start playing snd_end before the camera reaches the end of its sweep, by this amount of seconds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Detection Spawnargs===&lt;br /&gt;
&lt;br /&gt;
These spawnargs govern how the security camera detects and reacts to enemies: max detection distance, at what light intensity, how long the alarm lasts, whether to trigger anything and so on.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;scanDist&amp;quot; - The distance limit for spotting the enemy.&lt;br /&gt;
* &amp;quot;scanFov&amp;quot; - The camera&#039;s field of view.&lt;br /&gt;
* &amp;quot;seePlayer&amp;quot; - Whether the camera will react to the player.&lt;br /&gt;
* &amp;quot;seeAI&amp;quot; - Whether the camera will react to AIs, and what their relationship to the camera&#039;s team has to be.&lt;br /&gt;
* &amp;quot;seeBodies&amp;quot; - Whether the camera will react to bodies.&lt;br /&gt;
* &amp;quot;seeAnimals&amp;quot; - Whether the camera will react to animals.&lt;br /&gt;
* &amp;quot;sight_threshold&amp;quot; - From 0.0 to 1.0, how lit up the lightgem has to be for the player to be detected.&lt;br /&gt;
* &amp;quot;sightTime&amp;quot; - After seeing the enemy (partial alert), the camera will wait this amount of time. If it still sees the enemy, it will sound the alarm. This gives the enemy some time to hide.&lt;br /&gt;
* &amp;quot;sightResume&amp;quot; - If the camera can&#039;t see the enemy anymore after a partial alert, pause for this amount of time. When this expires, the camera will resume sweeping.&lt;br /&gt;
* &amp;quot;alarm_duration&amp;quot; - Minimum duration of the fully alert state. Will be extended by half if the enemy is still in view at the end or was recently seen.&lt;br /&gt;
* &amp;quot;alarm_interval&amp;quot; - Amount of time inbetween each activation of the alarm sound, when fully alerted.&lt;br /&gt;
* &amp;quot;trigger_alarm_start&amp;quot; - Trigger targets when an alarm begins.&lt;br /&gt;
* &amp;quot;trigger_alarm_end&amp;quot; - Trigger targets when an alarm ends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Follow Spawnargs===&lt;br /&gt;
&lt;br /&gt;
The security camera can track the enemy&#039;s movements. For as long as the security camera is partially or fully alerted, it will turn to the closest enemy it can see. The models for the camera and mount should be able to support this without clipping into each other. A ceiling-mounted camera will generally have much more freedom to turn than a wall-mounted camera.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;follow&amp;quot; - Enable to let the camera track the enemy horizontally.&lt;br /&gt;
* &amp;quot;follow_tolerance&amp;quot; - How far in degrees the enemy has to move before the camera readjusts its rotation, horizontally.&lt;br /&gt;
* &amp;quot;follow_speed_mult&amp;quot; - Speed up horizontal movements by this multiplier when the camera is following the enemy.&lt;br /&gt;
* &amp;quot;follow_incline&amp;quot; - The camera will also track the enemy vertically.&lt;br /&gt;
* &amp;quot;follow_incline_tolerance&amp;quot; - How far in degrees the enemy has to move before the camera readjusts its rotation, vertically.&lt;br /&gt;
* &amp;quot;follow_incline_speed&amp;quot; - Speed of vertical movements to track the enemy. Not affected by &#039;follow_speed_mult&#039;.&lt;br /&gt;
* &amp;quot;follow_constrain_up&amp;quot; - Limit how far the camera can turn upwards from its starting orientation.&lt;br /&gt;
* &amp;quot;follow_constrain_down&amp;quot; - Limit how far the camera can turn downwards from its starting orientation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Spotlight Spawnargs===&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;spotLight&amp;quot; is set to 1, the security camera&#039;s code will spawn a spotlight and align it with its view. This dates back to the Doom 3 days, so it follows different rules from the def_attach systems. If &amp;quot;useColors&amp;quot; is enabled, the spotlight&#039;s color will change depending on alert state. Otherwise it will look for a &amp;quot;_color&amp;quot; spawnarg on the camera.&lt;br /&gt;
&lt;br /&gt;
Alternatively you can specify an existing light with the spawnarg &amp;quot;spotlight_custom&amp;quot;. Apart from &amp;quot;spotLight&amp;quot; and &amp;quot;useColors&amp;quot;, all other spotlight-relevant spawnargs are ignored. If no valid entity of spawnclass idLight is found, it&#039;ll spawn a spotlight instead.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;spotLight&amp;quot; - If &amp;quot;1&amp;quot; the camera will use a spotlight.&lt;br /&gt;
* &amp;quot;spotlight_range&amp;quot; - Reach of the spotlight.&lt;br /&gt;
* &amp;quot;spotlight_diameter&amp;quot; - Diameter of the spotlight&#039;s projection. If 0, will automatically be calculated to match spotlight_range and scanFov, for scanFov up to 90°.&lt;br /&gt;
* &amp;quot;spotlight_texture&amp;quot; - Texture used by the spotlight. You should use a texture that&#039;s designed for projected lights: one that uses a gradient as its falloff image. This ensures that light intensity gradually fades to black, rather than abruptly cutting to black.&lt;br /&gt;
* &amp;quot;spotlight_volumetric&amp;quot; - The spawned spotlight will be volumetric.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Color Spawnargs===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;useColors&amp;quot; - If &amp;quot;1&amp;quot; the camera will change the colour of its model and spotlight depending on its alert state.&lt;br /&gt;
* &amp;quot;color_sweeping&amp;quot; - Color when the camera is sweeping = unalerted. Default green.&lt;br /&gt;
* &amp;quot;color_sighted&amp;quot; - Color when the camera has noticed an enemy = partially alerted. Default yellow.&lt;br /&gt;
* &amp;quot;color_alerted&amp;quot; - Color when the camera has sounded the alarm = fully alerted. Default red.&lt;br /&gt;
* &amp;quot;_color&amp;quot; - If &amp;quot;useColors&amp;quot; is disabled, the model and spotlight will always have this color.&lt;br /&gt;
&lt;br /&gt;
As an alternative or complement to color spawnargs, you may make use of shaderParm7 in materials used by the security camera. shaderParm7 represents the alert state of the camera:&lt;br /&gt;
* 0 = unalerted&lt;br /&gt;
* 1 = was partially alerted for &amp;quot;sightTime&amp;quot; seconds but the enemy has disappeared, now waiting &amp;quot;sightResume&amp;quot; seconds before resuming sweeping.&lt;br /&gt;
* 2 = partially alerted&lt;br /&gt;
* 3 = fully alerted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Damage Spawnargs===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;health&amp;quot; - amount of damage the camera can take before being destroyed. Setting to 0 will make the camera invincible. Setting to 0 will make the camera invincible. Default base damage per hit: sword - 42; broadhead - 35; fire arrow direct hit - 400.&lt;br /&gt;
* &amp;quot;damage_blackjack&amp;quot; - how much damage the security camera takes from blackjack hits, default: 0.&lt;br /&gt;
* &amp;quot;damage_mult_&amp;quot; - a series of spawnargs to multiply how much damage the security camera takes from various damage sources. You can name specific weapon classnames or damageDefs in the spawnarg, i.e. &amp;quot;damage_mult_atdm:weapon_shortsword&amp;quot; &amp;quot;0.5&amp;quot;.&lt;br /&gt;
* &amp;quot;damage_splash_falloff&amp;quot; - how quickly splash damage from fire arrows exponentially decreases with distance, default: 3.&lt;br /&gt;
* &amp;quot;damage_flinderize&amp;quot; - if a security camera is destroyed and the destroying hit (or post-destruction hit) is greater than this value, the security camera explodes into pieces. Default: 90.&lt;br /&gt;
* &amp;quot;def_flinder1&amp;quot; - the classname of the flinder pieces generated when a camera is flinderized by a heavy hit. Use &amp;quot;def_flinder2&amp;quot; etc. to generate more flinders.&lt;br /&gt;
* &amp;quot;flinder_offset1&amp;quot; - specifies the spawn point of the respective flinder piece relative to the camera&#039;s origin. Takes the camera&#039;s current rotation into account.&lt;br /&gt;
* &amp;quot;broken&amp;quot; - the security camera switches to this model when destroyed&lt;br /&gt;
* &amp;quot;broken_flinderized&amp;quot; - Optional. Specify the model of the security camera when destroyed + flinderized.&lt;br /&gt;
* &amp;quot;skin_broken&amp;quot; - the security camera switches to this skin when destroyed&lt;br /&gt;
* &amp;quot;skin_flinderized&amp;quot; - Optional. Specify the skin of the security camera when destroyed + flinderized.&lt;br /&gt;
* &amp;quot;hideModelOnBreak&amp;quot; - the security camera will be hidden when destroyed, default: 0.&lt;br /&gt;
* &amp;quot;notice_destroyed&amp;quot; - Whether AIs will become alerted if they find this security camera destroyed.&lt;br /&gt;
* &amp;quot;fx_damage&amp;quot; - Fx to play whenever the camera is damaged while power is on.&lt;br /&gt;
* &amp;quot;fx_damage_nopower&amp;quot; - Fx to play whenever the camera is damaged while power is off.&lt;br /&gt;
* &amp;quot;fx_destroyed&amp;quot; - Fx to play whenever the camera is destroyed while power is on.&lt;br /&gt;
* &amp;quot;fx_destroyed_nopower&amp;quot; - Fx to play whenever the camera is destroyed while power is off.&lt;br /&gt;
* &amp;quot;break_up_script&amp;quot; - This script is called when the camera is destroyed.&lt;br /&gt;
* &amp;quot;break_up_target&amp;quot; - This entity is triggered if the camera is destroyed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sound Spawnargs===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;snd_sight&amp;quot; - Sound emitted when the camera notices an enemy.&lt;br /&gt;
* &amp;quot;snd_moving&amp;quot; - Sound emitted when the camera is rotating.&lt;br /&gt;
* &amp;quot;snd_stationary&amp;quot; - Sound emitted by a stationary type of camera.&lt;br /&gt;
* &amp;quot;snd_alert&amp;quot; - Alarm sound emitted when fully alerted.&lt;br /&gt;
* &amp;quot;snd_end&amp;quot; - Sound emitted when the camera is about to reach the end point of a sweep.&lt;br /&gt;
* &amp;quot;snd_death&amp;quot; - Sound emitted when the camera is destroyed.&lt;br /&gt;
* &amp;quot;snd_death_nopower&amp;quot; - Sound emitted when the camera is destroyed while power is off.&lt;br /&gt;
* &amp;quot;snd_sparks&amp;quot; - Sound emitted when the camera emits sparks after it was destroyed.&lt;br /&gt;
* &amp;quot;sprS_alert&amp;quot; - How far snd_alert propagates to AIs, at default this is a few rooms. Higher settings than mild can cause large framedrops due to mass AI alerts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sparks Spawnargs===&lt;br /&gt;
&lt;br /&gt;
The security camera spawns a particle emitter when it&#039;s destroyed. By default it uses a single-cycle spark particle which is periodically triggered at random intervals. When power to the camera is switched off, the sparks stop appearing.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;sparks&amp;quot; - Whether to spawn a particle emitter at all.&lt;br /&gt;
* &amp;quot;sparks_particle&amp;quot; - Particle that is spawned.&lt;br /&gt;
* &amp;quot;sparks_delay&amp;quot; - Time taken for the particle emitter to spawn initially.&lt;br /&gt;
* &amp;quot;sparks_power_dependent&amp;quot; - Only show the particle if power to the destroyed camera is on.&lt;br /&gt;
* &amp;quot;sparks_interval&amp;quot; - For non-looping particles, minimum time between triggers.&lt;br /&gt;
* &amp;quot;sparks_interval_rand&amp;quot; - For non-looping particles, additional random factor added to the time between triggers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Model Spawnargs===&lt;br /&gt;
&lt;br /&gt;
These spawnargs are important if you change the camera model:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;broken&amp;quot; - Use this model when the camera is destroyed.&lt;br /&gt;
* &amp;quot;viewOffset&amp;quot; - A vector that defines the offset of the camera&#039;s &#039;eye&#039; from the camera&#039;s origin.&lt;br /&gt;
* &amp;quot;lightOffset&amp;quot; - A vector that defines the spotlight offset from the camera&#039;s origin.&lt;br /&gt;
* &amp;quot;flipAxis&amp;quot; - This and the next spawnarg can be used to turn a model such that it faces forwards. Not needed if the model was created forward-facing.&lt;br /&gt;
* &amp;quot;modelAxis&amp;quot;&lt;br /&gt;
* &amp;quot;skin&amp;quot; - This is the &amp;quot;on&amp;quot; skin. It may contain materials that make use of the colored keyword or shaderParm7, to change depending on alert state.&lt;br /&gt;
* &amp;quot;skin_on_spotlight_off&amp;quot; - This is the &amp;quot;on&amp;quot; skin, but with the spotlight toggled off. This is useful if your model contains inbuilt lightrays that should represent the spotlight.&lt;br /&gt;
* &amp;quot;skin_off&amp;quot; - This is the &amp;quot;off&amp;quot; skin. It should not contain materials with the colored keyword or shaderParm7.&lt;br /&gt;
* &amp;quot;skin_broken&amp;quot; - When the camera is destroyed it will switch to this skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Misc Spawnargs===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;start_off&amp;quot; - Whether the camera starts powered on or off.&lt;br /&gt;
* &amp;quot;cameraTarget&amp;quot; - Use the view from this entity instead of from self if sending a view to the display screen. See section &#039;&#039;The Display Screen&#039;&#039; for more.&lt;br /&gt;
* &amp;quot;gearSpeed&amp;quot; - This spawnarg is set on the ceiling pivot of the 2nd type of security camera. It controls how fast the gears turn when the security camera turns.&lt;br /&gt;
* &amp;quot;legacy&amp;quot; - This marks an old version of the security camera, for backwards compatibility with older missions.&lt;br /&gt;
&lt;br /&gt;
The security camera uses spawnargs to place its &#039;eye&#039; and spotlight in front of the model to ensure the view and spotlight aren&#039;t blocked by the model. If you use a different model, you might need to change these.&lt;br /&gt;
* &amp;quot;lightOffset&amp;quot;&lt;br /&gt;
* &amp;quot;viewOffset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Damaging the Camera==&lt;br /&gt;
&lt;br /&gt;
===Damage sources===&lt;br /&gt;
&lt;br /&gt;
By default the security camera is vulnerable only to fire arrows (direct &amp;amp; splash damage). The &amp;quot;damage_&amp;quot; and &amp;quot;damage_mult_&amp;quot; spawnargs allow you to to specify how much damage security cameras take from each weapon, but be sure to communicate the camera&#039;s vulnerabilities to the player. You can create your own &amp;quot;damage_mult_&amp;quot; spawnargs by adding the name of a specific weapon classname or damageDef, i.e. &amp;quot;damage_mult_atdm:weapon_shortsword&amp;quot; &amp;quot;0.5&amp;quot;. Unfortunately it does not appear to be possible to make water damage the camera, since TDM will crash upon load when a water response is applied to the camera. &lt;br /&gt;
&lt;br /&gt;
Setting &amp;quot;health&amp;quot; to 0 will make the camera totally invicible. Alternatively, you can make the camera immune to everything but fire arrow splash damage by binding a tight-fitting nodrawsolid_metal brush. A similar approach is to bind a brush that leaves parts of the camera exposed, i.e. the lens or face. Note that it will weaken fire arrows considerably if they hit from the wrong angle. A direct hit does up to 400 damage, while the splash does a distance-dependent amount of damage below 100. Note that collision detection is done using the camera&#039;s clipmodel, which has a different shape than the visual model.&lt;br /&gt;
&lt;br /&gt;
The player will receive feedback that the camera took damage in the form of spark effects, specified in spawnargs beginning with fx_. An .fx definiton is basically an instruction to emit a sequence of particles and sounds.&lt;br /&gt;
&lt;br /&gt;
===Destroying the Camera===&lt;br /&gt;
&lt;br /&gt;
Security cameras can not only be destroyed, but also be flinderized (burst apart into pieces) which occurs when the security camera takes a hit whose damage is higher than the value of the &amp;quot;damage_flinderize&amp;quot; spawnarg. The &amp;quot;broken&amp;quot; and &amp;quot;skin_broken&amp;quot; spawnargs let you set the model and skin when the camera is destroyed, while the optional &amp;quot;broken_flinderized&amp;quot; and &amp;quot;skin_flinderized&amp;quot; let you set the model and skin when the camera has been flinderized. The &amp;quot;def_flinder&amp;quot; and &amp;quot;flinder_offset&amp;quot; spawnargs allow you to specify the flinder pieces and their spawn point relative to the camera&#039;s origin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
&lt;br /&gt;
===Script Events===&lt;br /&gt;
&lt;br /&gt;
The security camera supports the following script events:&lt;br /&gt;
* getSecurityCameraState() - Returns the security camera&#039;s state. 1 = unalerted, 2 = partially alerted, 3 = fully alerted, 4 = inactive (power off), 5 = destroyed, 0 = not a security camera.&lt;br /&gt;
* getShaderParm(7) - Returns the current value of shaderParm7 on the camera model. 0 = unalerted, 1 = about to resume sweep after a partial alert, 2 = partially alerted, 3 = fully alerted.&lt;br /&gt;
* On() and Off() - Switch the camera&#039;s power on or off (note the capitalisation).&lt;br /&gt;
* activate() and trigger() - Toggle the camera&#039;s power.&lt;br /&gt;
* getHealth() and setHealth(float newHealth) - As per the name. Setting health to 0 or lower will destroy the security camera, which is irreversible. setHealth() will make an invincible camera vulnerable.&lt;br /&gt;
* getEnemy() - Returns the entity that most recently caused or refreshed the security camera&#039;s suspicious or alert state.&lt;br /&gt;
* canSee() - Tests whether the security camera is able to see a specific entity. Currently only player1 is supported.&lt;br /&gt;
* setSightThreshold() - This changes how lit up the player&#039;s lightgem has to be for the security camera to see him, from 0.0 to 1.0.&lt;br /&gt;
* state_light(boolean set) - Switch the camera&#039;s spotlight on/off, if the camera has one.&lt;br /&gt;
* state_sweep(boolean set) - Switch the camera&#039;s sweep on/off. This will also affect enemy tracking.&lt;br /&gt;
* state_see_player(boolean set) - Toggle whether the camera is able to detect the player. An alternative is just to set &amp;quot;seePlayer&amp;quot; to &amp;quot;1&amp;quot; or &amp;quot;0&amp;quot;, since the code monitors this spawnarg.&lt;br /&gt;
* toggle_light() - Toggle the spotlight on/off, if the camera has one.&lt;br /&gt;
* toggle_sweep() - Toggle the camera&#039;s sweep on/off. This will also affect enemy tracking.&lt;br /&gt;
* toggle_see_player() - Toggle whether the camera is able to detect the player. An alternative is just to set &amp;quot;seePlayer&amp;quot; to &amp;quot;1&amp;quot; or &amp;quot;0&amp;quot;, since the code monitors this spawnarg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Functions===&lt;br /&gt;
&lt;br /&gt;
The security camera&#039;s scriptobject contains the following object functions:&lt;br /&gt;
* toggleSCSpotlight() - calls toggle_light() on the camera if it has a spotlight (spawnarg &amp;quot;spotLight&amp;quot; = &amp;quot;1&amp;quot;)&lt;br /&gt;
* toggleSCSweep() - calls toggle_sweep() on the camera&lt;br /&gt;
* toggleSCPlayer() - calls toggle_see_player() on the camera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see, these object functions simply call the toggle script events on the camera they belong to. This allows you to call the script events from i.e. buttons without scripting. To set this up:&lt;br /&gt;
# create an atdm:target_callobjectfunction entity&lt;br /&gt;
# give it the spawnarg &amp;quot;call&amp;quot; with the name of the desired object function, i.e. &amp;quot;toggleSCSpotlight&amp;quot;&lt;br /&gt;
# let it target the security camera&lt;br /&gt;
# when desired, trigger this entity (from a script, from a button etc.).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scriptobjects===&lt;br /&gt;
&lt;br /&gt;
The security camera&#039;s scriptobject only consists of the 3 object functions mentioned above. Beyond some added utility, this scriptobject has no importance for the security camera and you can easily give it your own scriptobject instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upon Destruction===&lt;br /&gt;
&lt;br /&gt;
You may call a script when the camera is destroyed, as per the spawnarg &amp;quot;break_up_script&amp;quot;. This script should be able to receive the name of the destroyed security camera as input, i.e.:&lt;br /&gt;
 void camera_destroyed ( entity camera )&lt;br /&gt;
&lt;br /&gt;
An alternative is to use the spawnarg &amp;quot;break_up_target&amp;quot; to name an entity that calls the script when triggered, but this will not pass the name of the destroyed security camera unless you use an atdm:target_callscriptfunction entity with the spawnarg &amp;quot;forEach&amp;quot; &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sending the camera&#039;s view to a Display Screen==&lt;br /&gt;
&lt;br /&gt;
You can create a display screen that shows that the camera sees: all that&#039;s needed is a func_static patch that uses a texture like &#039;&#039;textures/common/camera/camera1&#039;&#039;. It&#039;s recommended to put another patch behind it, since this func_static will get hidden if it&#039;s switched off. The screen then needs to be given a spawnarg &amp;quot;cameraTarget&amp;quot; that names either a security camera or a different entity, typically a target_null. The screen will display what that entity sees.&lt;br /&gt;
&lt;br /&gt;
To change the screen&#039;s field of view, apply the spawnargs &amp;quot;cameraFovX&amp;quot; and &amp;quot;cameraFovY&amp;quot; to the entity sending the view. Otherwise it will default to &amp;quot;scanFov&amp;quot; for security cameras or 120 for other entities.&lt;br /&gt;
&lt;br /&gt;
The screen is hidden or shown automatically if the screen is displaying a security camera&#039;s view. The screen can also be switched on/off manually by triggering it, but this requires the screen to start with the spawnarg &amp;quot;hide&amp;quot; &amp;quot;0&amp;quot; or &amp;quot;hide&amp;quot; &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Multiple Display Screens / Reflective Water / Skybox===&lt;br /&gt;
&lt;br /&gt;
If you plan to have multiple security cameras sending to multiple display screens in your mission, or if the camera display will appear in the same player POV as the sky or reflective water surfaces, you&#039;ll need to use unique camera materials for each screen. You can find 9 additional camera materials in the textures/common/camera/ folder. If you should need even more, you can simply clone one of the materials and change the name after the &#039;&#039;map&#039;&#039; keyword.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examining a Test Map ==&lt;br /&gt;
&lt;br /&gt;
You can obtain a test map with sample cameras in it here: [https://ftp.thedarkmod.com/tutorials/RemoteCamera/camerawiki2.pk4 camerawiki2.pk4]. Similar setups can be found as prefabs in AI/Machines.&lt;br /&gt;
&lt;br /&gt;
Open the map &#039;&#039;camerawiki.map&#039;&#039; in Dark Radiant. In this map, we have examples of the different cameras.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cw1.jpg|256px|thumb|right|cam1]]&lt;br /&gt;
&lt;br /&gt;
=== A rotating camera that sweeps back and forth ===&lt;br /&gt;
&lt;br /&gt;
This camera (&#039;&#039;cam1&#039;&#039;) starts its rotation at 135 degrees (assuming +X is 0 degrees), and sweeps clockwise until it reaches 45 degrees. It pauses for a moment, then return-sweeps back to 135 degrees. It has a spotlight.&lt;br /&gt;
&lt;br /&gt;
The display for &#039;&#039;cam1&#039;&#039; is on the wall behind it. (Don&#039;t worry about the material being displayed backward in the screenshot.)&lt;br /&gt;
&lt;br /&gt;
The display patch uses the material &#039;&#039;camera1&#039;&#039; (provided in the camerawiki/materials/tdm_camera.mtr file).&lt;br /&gt;
&lt;br /&gt;
The four buttons below the display do the following (from left to right):&lt;br /&gt;
&lt;br /&gt;
* Toggle Power - targets &#039;&#039;cam1&#039;&#039; directly. When power is off, the display screen is hidden. You can simulate an &amp;quot;off&amp;quot; screen by making sure there&#039;s a black material behind the display. You could also place a glass material behind the display.&lt;br /&gt;
* Toggle Spotlight - calls the &#039;&#039;toggleSCSpotlight()&#039;&#039; object function in the camera&#039;s scriptobject, turning the spotlight on/off&lt;br /&gt;
* Toggle Player Sighting - calls the &#039;&#039;toggleSCPlayer()&#039;&#039; object function in the camera&#039;s scriptobject, turning Player detection on/off&lt;br /&gt;
* Toggle Sweep - calls the &#039;&#039;toggleSCSweep()&#039;&#039; object function in the camera&#039;s scriptobject, turning camera sweep on/off&lt;br /&gt;
&lt;br /&gt;
[[Image:Cw2.jpg|256px|thumb|right|cam1&#039;s display]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
=== A stationary camera that doesn&#039;t move ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Cw3.jpg|320px|thumb|right|cam2 and its display]]&lt;br /&gt;
This camera (&#039;&#039;cam2&#039;&#039;)  is stationary, w/o a spotlight.&lt;br /&gt;
&lt;br /&gt;
Its display, to its left, uses the material &#039;&#039;camera2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The two buttons below the display do the following (from left to right):&lt;br /&gt;
&lt;br /&gt;
* Toggle Power - targets &#039;&#039;cam2&#039;&#039; directly. When power is off, the display screen is hidden.&lt;br /&gt;
* Toggle Player Sighting - calls the &#039;&#039;toggleSCPlayer()&#039;&#039; object function in the camera&#039;s scriptobject, turning player detection on/off&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A screen showing the view from another entity (a target_null) ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Cw6.jpg|320px|thumb|right|a small screen showing what a target_null is seeing]]&lt;br /&gt;
&lt;br /&gt;
This is simply a screen referencing a &#039;&#039;target_null&#039;&#039; as its &#039;&#039;cameraTarget&#039;&#039;. The &#039;&#039;target_null&#039;&#039; is in a separate room pointed at a guard.&lt;br /&gt;
&lt;br /&gt;
If you look in the room where the guard is standing, you&#039;ll see that the &#039;&#039;target_null&#039;&#039; has the spawnargs &#039;&#039;cameraFovX&#039;&#039; and &#039;&#039;cameraFovY&#039;&#039;. These were set because the default field of view for a view from a non-camera entity is 120 by 120, which looks quite zoomed out. For a small screen like this one, 60 by 60 is much better.&lt;br /&gt;
&lt;br /&gt;
Also notice that the screen itself has the spawnarg &#039;&#039;hide&#039;&#039; &#039;&#039;0&#039;&#039;. This makes it respond to triggers by hiding or showing itself, allowing you to switch it on or off at the push of a button (see below).&lt;br /&gt;
&lt;br /&gt;
The button below the display does the following:&lt;br /&gt;
&lt;br /&gt;
* Toggle Power - targets the screen directly to show or hide it. This only works because the screen has a &#039;&#039;hide&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Video_Briefing&amp;diff=34437</id>
		<title>Video Briefing</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Video_Briefing&amp;diff=34437"/>
		<updated>2026-02-28T18:11:12Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* More About Formats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;by Geep, 2020&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This extends the tutorial on [[Briefing|Briefing]] and serves as a useful bridge to the format specifications given in [[Cutscene video with FFmpeg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== Style and Content ===&lt;br /&gt;
&lt;br /&gt;
Like other TDM briefing styles, a video conveys important information or teasers at the game start. After first viewing, the player can subsequently skip it.&lt;br /&gt;
&lt;br /&gt;
A typical &amp;quot;historical documentary&amp;quot; approach to producing a video briefing would be to:&lt;br /&gt;
* capture screen shots from within the game&lt;br /&gt;
* supplement these with other images&lt;br /&gt;
* assemble the results into a timeline and add pans, zooms, rotations, transitions, titles, overlays, and special effects&lt;br /&gt;
* possibly include video clips, e.g., video capture during game play; animated logos&lt;br /&gt;
* separately develop a soundtrack using standard TDM sound clips and other music, sound effects, and custom narration (with possibly multiple voices). The heart of the briefing is conveyed by the narrator.&lt;br /&gt;
* be cognizant of copyright and licensing issues&lt;br /&gt;
&lt;br /&gt;
Specific software systems to do all this - video capture &amp;amp; editing, audio recording &amp;amp; editing, animation, and FX - are beyond our scope here. Also touched on elsewhere are other methods that could convey briefing-like information &#039;&#039;during&#039;&#039; the game, not at the beginning:&lt;br /&gt;
* [[Playing ROQ Video Files]] demonstrates in-game video on a small screen. The example uses an in-game laptop model, but is applicable to more &amp;quot;lore friendly&amp;quot; surfaces like magic mirrors.&lt;br /&gt;
* [[Full-Screen Video Cutscenes]] uses methodology similar to but different in detail from what is described here.&lt;br /&gt;
&lt;br /&gt;
=== Video and Audio Formats ===&lt;br /&gt;
&lt;br /&gt;
Traditionally, games using the id engine have used the RoQ format for video, with separate .OGG audio. RoQ remains supported in TDM for compatibility with existing FMs. But starting in TDM 2.06, a focused set of more popular formats is preferable with new FMs. The new formats allow a higher quality presentation. The audio source may be either a separate file, or from the video itself.&lt;br /&gt;
&lt;br /&gt;
== Quick Start ==&lt;br /&gt;
&lt;br /&gt;
The quickest way to implement this in your FM is to copy a video briefing from an existing recent FM, then replace the AV media files with your own. We will use as our example [https://forums.thedarkmod.com/index.php?/topic/19936-fan-mission-shadows-of-northdale-act-ii-down-the-rabbit-hole-by-goldwell-20190320 Goldwell&#039;s &amp;quot;Shadows of Northdale ACT II&amp;quot; from 2019]. This has a single-mission briefing and uses a .MP4 video with a separate .OGG soundtrack. After you have installed it, look within northdale2.pk4 for these files:&lt;br /&gt;
&lt;br /&gt;
* guis/mainmenu_background.gui&lt;br /&gt;
* guis/mainmenu_briefing_video.gui&lt;br /&gt;
* guis/mainmenu_custom_defs.gui&lt;br /&gt;
* materials/briefing.mtr&lt;br /&gt;
* video/briefing.mp4&lt;br /&gt;
* sound/video/briefing_video.ogg&lt;br /&gt;
&lt;br /&gt;
Copy these to your own FM, creating folders as needed. When you compile and run your FM, you should see and hear the video briefing (with its quite high production values) instead of a text briefing page.&lt;br /&gt;
&lt;br /&gt;
If you want to change media filenames, or make certain other customizations, mainmenu_custom_defs.gui is where to start. It has documentation on additional configurations, like multiple briefings for multi-mission campaigns, or adding mission debriefing videos, that are not covered here. Some of this info is also documented at page [[Setting up Campaigns]].&lt;br /&gt;
&lt;br /&gt;
== Skipping a Video Briefing ==&lt;br /&gt;
The video briefing, once started, can be skipped by either:&lt;br /&gt;
* Pressing LMB. This is the best way, though the viewer may not always be aware of it.&lt;br /&gt;
* Using the ESC key. This aborts to the text Briefing page, from which the viewer may navigate to the Objectives page. It is not possible to resume the video briefing.&lt;br /&gt;
&lt;br /&gt;
Regarding the latter, note that Goldwell&#039;s method includes a special treatment so that when a briefing video ends normally (not skipped), the viewer arrives directly at the Objectives page, not the Briefing page. Unfortunately, that is not the case with ESC skipping. You might accommodate this by editing the xdata/briefing.xd to have either:&lt;br /&gt;
* No text&lt;br /&gt;
* Something like: &amp;quot;Select &#039;Objectives&#039; to continue...&amp;quot;&lt;br /&gt;
* A text summary or transcript of the video briefing.&lt;br /&gt;
&lt;br /&gt;
== More About Formats ==&lt;br /&gt;
&lt;br /&gt;
When getting set to replace the media assets with your own, you may find it informative to inspect the properties of northdale2&#039;s briefing.mp4 and briefing_video.ogg files, e.g.:&lt;br /&gt;
* Video has 1920 wide x 1080 high frames, at 29.97 frames per second.&lt;br /&gt;
* Audio is stereo, 128kps bit rate, 48.000 kHz sampling.&lt;br /&gt;
There are other media options, but in any event be sure to be compliant with format restrictions given in [[Cutscene video with FFmpeg]]. There you will also find details of how to use a video&#039;s audio instead of a separate audio file. For still more, see [https://forums.thedarkmod.com/index.php?/topic/19447-206-videos-without-roq/ 2.06 - Videos Without RoQ]&lt;br /&gt;
&lt;br /&gt;
If you do need to work with the RoQ format, you can find similar examples among your installed FMs (i.e., by searching for *.roq files). There is a pioneering (circa 2006, but revised in 2020) TDM report on [[Playing ROQ Video Files]]. This covers RoQ creation with 2006-era and 2015-era tools, the latter from the useful information at [https://openarena.fandom.com/wiki/RoQ RoQ - particularly ZaRR&#039;s RoQ How-to for OpenArena Mappers]. Note that RoQ file duration is limited to 1 minute. (Possibly the mainmenu_... guis can be used to sequence multiple RoQ files.)&lt;br /&gt;
&lt;br /&gt;
See also: Overview of [[GUI_Scripting_Language]] and [https://iddevnet.dhewm3.org/doom3/guis.html idDevNet GUIs]&lt;br /&gt;
&lt;br /&gt;
== Debugging Playback ==&lt;br /&gt;
&lt;br /&gt;
If your video shows a black screen, you may have a GUI error. In the console, &amp;quot;testgui guis/xxxx.gui&amp;quot; (note the partial path inclusion) may be helpful to locate where.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
For information about mid-game videos, see [[Video Cutscene Creation]].&lt;br /&gt;
{{GUI}}&lt;br /&gt;
[[Category:Video and cutscenes]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Video_Briefing&amp;diff=34436</id>
		<title>Video Briefing</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Video_Briefing&amp;diff=34436"/>
		<updated>2026-02-28T18:05:50Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Quick Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;by Geep, 2020&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This extends the tutorial on [[Briefing|Briefing]] and serves as a useful bridge to the format specifications given in [[Cutscene video with FFmpeg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== Style and Content ===&lt;br /&gt;
&lt;br /&gt;
Like other TDM briefing styles, a video conveys important information or teasers at the game start. After first viewing, the player can subsequently skip it.&lt;br /&gt;
&lt;br /&gt;
A typical &amp;quot;historical documentary&amp;quot; approach to producing a video briefing would be to:&lt;br /&gt;
* capture screen shots from within the game&lt;br /&gt;
* supplement these with other images&lt;br /&gt;
* assemble the results into a timeline and add pans, zooms, rotations, transitions, titles, overlays, and special effects&lt;br /&gt;
* possibly include video clips, e.g., video capture during game play; animated logos&lt;br /&gt;
* separately develop a soundtrack using standard TDM sound clips and other music, sound effects, and custom narration (with possibly multiple voices). The heart of the briefing is conveyed by the narrator.&lt;br /&gt;
* be cognizant of copyright and licensing issues&lt;br /&gt;
&lt;br /&gt;
Specific software systems to do all this - video capture &amp;amp; editing, audio recording &amp;amp; editing, animation, and FX - are beyond our scope here. Also touched on elsewhere are other methods that could convey briefing-like information &#039;&#039;during&#039;&#039; the game, not at the beginning:&lt;br /&gt;
* [[Playing ROQ Video Files]] demonstrates in-game video on a small screen. The example uses an in-game laptop model, but is applicable to more &amp;quot;lore friendly&amp;quot; surfaces like magic mirrors.&lt;br /&gt;
* [[Full-Screen Video Cutscenes]] uses methodology similar to but different in detail from what is described here.&lt;br /&gt;
&lt;br /&gt;
=== Video and Audio Formats ===&lt;br /&gt;
&lt;br /&gt;
Traditionally, games using the id engine have used the RoQ format for video, with separate .OGG audio. RoQ remains supported in TDM for compatibility with existing FMs. But starting in TDM 2.06, a focused set of more popular formats is preferable with new FMs. The new formats allow a higher quality presentation. The audio source may be either a separate file, or from the video itself.&lt;br /&gt;
&lt;br /&gt;
== Quick Start ==&lt;br /&gt;
&lt;br /&gt;
The quickest way to implement this in your FM is to copy a video briefing from an existing recent FM, then replace the AV media files with your own. We will use as our example [https://forums.thedarkmod.com/index.php?/topic/19936-fan-mission-shadows-of-northdale-act-ii-down-the-rabbit-hole-by-goldwell-20190320 Goldwell&#039;s &amp;quot;Shadows of Northdale ACT II&amp;quot; from 2019]. This has a single-mission briefing and uses a .MP4 video with a separate .OGG soundtrack. After you have installed it, look within northdale2.pk4 for these files:&lt;br /&gt;
&lt;br /&gt;
* guis/mainmenu_background.gui&lt;br /&gt;
* guis/mainmenu_briefing_video.gui&lt;br /&gt;
* guis/mainmenu_custom_defs.gui&lt;br /&gt;
* materials/briefing.mtr&lt;br /&gt;
* video/briefing.mp4&lt;br /&gt;
* sound/video/briefing_video.ogg&lt;br /&gt;
&lt;br /&gt;
Copy these to your own FM, creating folders as needed. When you compile and run your FM, you should see and hear the video briefing (with its quite high production values) instead of a text briefing page.&lt;br /&gt;
&lt;br /&gt;
If you want to change media filenames, or make certain other customizations, mainmenu_custom_defs.gui is where to start. It has documentation on additional configurations, like multiple briefings for multi-mission campaigns, or adding mission debriefing videos, that are not covered here. Some of this info is also documented at page [[Setting up Campaigns]].&lt;br /&gt;
&lt;br /&gt;
== Skipping a Video Briefing ==&lt;br /&gt;
The video briefing, once started, can be skipped by either:&lt;br /&gt;
* Pressing LMB. This is the best way, though the viewer may not always be aware of it.&lt;br /&gt;
* Using the ESC key. This aborts to the text Briefing page, from which the viewer may navigate to the Objectives page. It is not possible to resume the video briefing.&lt;br /&gt;
&lt;br /&gt;
Regarding the latter, note that Goldwell&#039;s method includes a special treatment so that when a briefing video ends normally (not skipped), the viewer arrives directly at the Objectives page, not the Briefing page. Unfortunately, that is not the case with ESC skipping. You might accommodate this by editing the xdata/briefing.xd to have either:&lt;br /&gt;
* No text&lt;br /&gt;
* Something like: &amp;quot;Select &#039;Objectives&#039; to continue...&amp;quot;&lt;br /&gt;
* A text summary or transcript of the video briefing.&lt;br /&gt;
&lt;br /&gt;
== More About Formats ==&lt;br /&gt;
&lt;br /&gt;
When getting set to replace the media assets with your own, you may find it informative to inspect the properties of northdale2&#039;s briefing.mp4 and briefing_video.ogg files, e.g.:&lt;br /&gt;
* Video has 1920 wide x 1080 high frames, at 29.97 frames per second.&lt;br /&gt;
* Audio is stereo, 128kps bit rate, 48.000 kHz sampling.&lt;br /&gt;
There are other media options, but in any event be sure to be compliant with format restrictions given in [[Cutscene video with FFmpeg]]. There you will also find details of how to use a video&#039;s audio instead of a separate audio file. For still more, see [https://forums.thedarkmod.com/index.php?/topic/19447-206-videos-without-roq/ 2.06 - Videos Without RoQ]&lt;br /&gt;
&lt;br /&gt;
If you do need to work with the RoQ format, you can find similar examples among your installed FMs (i.e., by searching for *.roq files). There is a pioneering (circa 2006, but revised in 2020) TDM report on [[Playing ROQ Video Files]]. This covers RoQ creation with 2006-era and 2015-era tools, the latter from the useful information at [https://openarena.fandom.com/wiki/RoQ RoQ - particularly ZaRR&#039;s RoQ How-to for OpenArena Mappers]. Note that RoQ file duration is limited to 1 minute. (Possibly the mainmenu_... guis can be used to sequence multiple RoQ files.)&lt;br /&gt;
&lt;br /&gt;
See also: Overview of [https://modwiki.dhewm3.org/GUI_scripting GUI scripting] and [https://iddevnet.dhewm3.org/doom3/guis.html idDevNet GUIs]&lt;br /&gt;
&lt;br /&gt;
== Debugging Playback ==&lt;br /&gt;
&lt;br /&gt;
If your video shows a black screen, you may have a GUI error. In the console, &amp;quot;testgui guis/xxxx.gui&amp;quot; (note the partial path inclusion) may be helpful to locate where.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
For information about mid-game videos, see [[Video Cutscene Creation]].&lt;br /&gt;
{{GUI}}&lt;br /&gt;
[[Category:Video and cutscenes]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Video_Briefing&amp;diff=34435</id>
		<title>Video Briefing</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Video_Briefing&amp;diff=34435"/>
		<updated>2026-02-28T17:59:51Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* More About Formats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;by Geep, 2020&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This extends the tutorial on [[Briefing|Briefing]] and serves as a useful bridge to the format specifications given in [[Cutscene video with FFmpeg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== Style and Content ===&lt;br /&gt;
&lt;br /&gt;
Like other TDM briefing styles, a video conveys important information or teasers at the game start. After first viewing, the player can subsequently skip it.&lt;br /&gt;
&lt;br /&gt;
A typical &amp;quot;historical documentary&amp;quot; approach to producing a video briefing would be to:&lt;br /&gt;
* capture screen shots from within the game&lt;br /&gt;
* supplement these with other images&lt;br /&gt;
* assemble the results into a timeline and add pans, zooms, rotations, transitions, titles, overlays, and special effects&lt;br /&gt;
* possibly include video clips, e.g., video capture during game play; animated logos&lt;br /&gt;
* separately develop a soundtrack using standard TDM sound clips and other music, sound effects, and custom narration (with possibly multiple voices). The heart of the briefing is conveyed by the narrator.&lt;br /&gt;
* be cognizant of copyright and licensing issues&lt;br /&gt;
&lt;br /&gt;
Specific software systems to do all this - video capture &amp;amp; editing, audio recording &amp;amp; editing, animation, and FX - are beyond our scope here. Also touched on elsewhere are other methods that could convey briefing-like information &#039;&#039;during&#039;&#039; the game, not at the beginning:&lt;br /&gt;
* [[Playing ROQ Video Files]] demonstrates in-game video on a small screen. The example uses an in-game laptop model, but is applicable to more &amp;quot;lore friendly&amp;quot; surfaces like magic mirrors.&lt;br /&gt;
* [[Full-Screen Video Cutscenes]] uses methodology similar to but different in detail from what is described here.&lt;br /&gt;
&lt;br /&gt;
=== Video and Audio Formats ===&lt;br /&gt;
&lt;br /&gt;
Traditionally, games using the id engine have used the RoQ format for video, with separate .OGG audio. RoQ remains supported in TDM for compatibility with existing FMs. But starting in TDM 2.06, a focused set of more popular formats is preferable with new FMs. The new formats allow a higher quality presentation. The audio source may be either a separate file, or from the video itself.&lt;br /&gt;
&lt;br /&gt;
== Quick Start ==&lt;br /&gt;
&lt;br /&gt;
The quickest way to implement this in your FM is to copy a video briefing from an existing recent FM, then replace the AV media files with your own. We will use as our example [https://forums.thedarkmod.com/index.php?/topic/19936-fan-mission-shadows-of-northdale-act-ii-down-the-rabbit-hole-by-goldwell-20190320 Goldwell&#039;s &amp;quot;Shadows of Northdale ACT II&amp;quot; from 2019]. This has a single-mission briefing and uses a .MP4 video with a separate .OGG soundtrack. After you have installed it, look within northdale2.pk4 for these files:&lt;br /&gt;
&lt;br /&gt;
* guis/mainmenu_background.gui&lt;br /&gt;
* guis/mainmenu_briefing_video.gui&lt;br /&gt;
* guis/mainmenu_custom_defs.gui&lt;br /&gt;
* materials/briefing.mtr&lt;br /&gt;
* video/briefing.mp4&lt;br /&gt;
* sound/video/briefing_video.ogg&lt;br /&gt;
&lt;br /&gt;
Copy these to your own FM, creating folders as needed. When you compile and run your FM, you should see and hear the video briefing (with its quite high production values) instead of a text briefing page.&lt;br /&gt;
&lt;br /&gt;
If you want to change media filenames, or make certain other customizations, mainmenu_custom_defs.gui is where to start. It has documentation on additional configurations, like multiple briefings for multi-mission campaigns, or adding mission debriefing videos, that are not covered here.&lt;br /&gt;
&lt;br /&gt;
== Skipping a Video Briefing ==&lt;br /&gt;
The video briefing, once started, can be skipped by either:&lt;br /&gt;
* Pressing LMB. This is the best way, though the viewer may not always be aware of it.&lt;br /&gt;
* Using the ESC key. This aborts to the text Briefing page, from which the viewer may navigate to the Objectives page. It is not possible to resume the video briefing.&lt;br /&gt;
&lt;br /&gt;
Regarding the latter, note that Goldwell&#039;s method includes a special treatment so that when a briefing video ends normally (not skipped), the viewer arrives directly at the Objectives page, not the Briefing page. Unfortunately, that is not the case with ESC skipping. You might accommodate this by editing the xdata/briefing.xd to have either:&lt;br /&gt;
* No text&lt;br /&gt;
* Something like: &amp;quot;Select &#039;Objectives&#039; to continue...&amp;quot;&lt;br /&gt;
* A text summary or transcript of the video briefing.&lt;br /&gt;
&lt;br /&gt;
== More About Formats ==&lt;br /&gt;
&lt;br /&gt;
When getting set to replace the media assets with your own, you may find it informative to inspect the properties of northdale2&#039;s briefing.mp4 and briefing_video.ogg files, e.g.:&lt;br /&gt;
* Video has 1920 wide x 1080 high frames, at 29.97 frames per second.&lt;br /&gt;
* Audio is stereo, 128kps bit rate, 48.000 kHz sampling.&lt;br /&gt;
There are other media options, but in any event be sure to be compliant with format restrictions given in [[Cutscene video with FFmpeg]]. There you will also find details of how to use a video&#039;s audio instead of a separate audio file. For still more, see [https://forums.thedarkmod.com/index.php?/topic/19447-206-videos-without-roq/ 2.06 - Videos Without RoQ]&lt;br /&gt;
&lt;br /&gt;
If you do need to work with the RoQ format, you can find similar examples among your installed FMs (i.e., by searching for *.roq files). There is a pioneering (circa 2006, but revised in 2020) TDM report on [[Playing ROQ Video Files]]. This covers RoQ creation with 2006-era and 2015-era tools, the latter from the useful information at [https://openarena.fandom.com/wiki/RoQ RoQ - particularly ZaRR&#039;s RoQ How-to for OpenArena Mappers]. Note that RoQ file duration is limited to 1 minute. (Possibly the mainmenu_... guis can be used to sequence multiple RoQ files.)&lt;br /&gt;
&lt;br /&gt;
See also: Overview of [https://modwiki.dhewm3.org/GUI_scripting GUI scripting] and [https://iddevnet.dhewm3.org/doom3/guis.html idDevNet GUIs]&lt;br /&gt;
&lt;br /&gt;
== Debugging Playback ==&lt;br /&gt;
&lt;br /&gt;
If your video shows a black screen, you may have a GUI error. In the console, &amp;quot;testgui guis/xxxx.gui&amp;quot; (note the partial path inclusion) may be helpful to locate where.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
For information about mid-game videos, see [[Video Cutscene Creation]].&lt;br /&gt;
{{GUI}}&lt;br /&gt;
[[Category:Video and cutscenes]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Script_objects&amp;diff=34433</id>
		<title>Script objects</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Script_objects&amp;diff=34433"/>
		<updated>2026-02-24T19:42:52Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: changed size of titles/subtitles so it&amp;#039;s more clear what belongs to what&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;big&amp;gt;Introduction&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;script object&#039;&#039;&#039; is an object that is written in the idTech4 scripting language, and an be attached to arbitrary entities. Each entity can have &#039;&#039;&#039;only one&#039;&#039;&#039; script object, but one script object can be attached to multiple entities.&lt;br /&gt;
&lt;br /&gt;
To use a script object on an entity, give it the spawnarg &#039;&#039;&#039;scriptobject&#039;&#039;&#039; set to the name of the script object. For your convience, TDM already contains a few useful script objects, here is a list:&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;big&amp;gt;List of script objects&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;tdm_alarm&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
A script object that sounds an alarm sound that can be heard by AI as suspicious sound, as well as a player audible sound.&lt;br /&gt;
&lt;br /&gt;
Functions:&lt;br /&gt;
&lt;br /&gt;
    void    start_alarm();&lt;br /&gt;
    void    stop_alarm();&lt;br /&gt;
&lt;br /&gt;
See [[atdm:alarm_sound]] on how to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;tdm_suicide&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;quot;scriptobject&amp;quot; &amp;quot;tdm_suicide&amp;quot;&lt;br /&gt;
 &amp;quot;remove_delay&amp;quot;  &amp;quot;100&amp;quot;              // remove this entity 100 seconds after spawning it&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: In TDM v1.03 the delay &#039;&#039;&#039;must be&#039;&#039;&#039; &amp;gt;= 1, or the script will wait 360 seconds. In TDM v1.04, the time can also be between 0 and 1 second, for instance 0.5 seconds.&lt;br /&gt;
&lt;br /&gt;
Note #3: From TDM v1.04 onwards, any entity with this script object will activate its targets right before it removes itself. This can be used to trigger things after a certain time from map start has passed, and is used f.i. by the new &amp;quot;atdm:vanishing_platform&amp;quot; entity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;tdm_light_holder&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;quot;scriptobject&amp;quot; &amp;quot;tdm_light_holder&amp;quot;&lt;br /&gt;
 &amp;quot;extinguished&amp;quot;  &amp;quot;1&amp;quot;                // the light starts off, but can be lit by the player&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is typical attached to either lights (an electrical lamp f.i.) or light holders (a candle holder with attached candle + flame, or a torch with attached flame). This script object has handy methods to toggle all lights that this holder has, regardless how many (multiple flames?) or where (flame on holder or flame on candle on holder?).&lt;br /&gt;
&lt;br /&gt;
This script object also makes the entity react to triggers like when you link a button/lever/trigger to this entity.&lt;br /&gt;
&lt;br /&gt;
(See also the light_ext and light_moving_ext scriptobjects, used by extinguishable light sources to respond to fire/water/gas stims.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;tdm_gui_message&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This script object is attached to an &#039;&#039;&#039;atdm:gui_message&#039;&#039;&#039; entity, and the entity shows a message to the player, based on cvars and spawnargs. You can use this script object for the &amp;quot;popup&amp;quot; messages that appear on the upper left corner (f.i. to give the player hints) or for screeen overlays like in a movie, where it says f.i. &amp;quot;Random Town, past midnight&amp;quot;. Where the message appears and how it looks is entirely customizable by using a different gui.&lt;br /&gt;
&lt;br /&gt;
See [[Popup messages]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== CVARs ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tdm_show_trainer_messages&#039;&#039;&#039; - if true, trainer messages are shown, if false, suppressed&lt;br /&gt;
&lt;br /&gt;
==== Spawnargs ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;show&#039;&#039;&#039;- The time in seconds the message is shown, will be longer by approx. one second to fade the message out. If set to 0, shows the message for 6 seconds plus 1s fade out.&lt;br /&gt;
* &#039;&#039;&#039;lines&#039;&#039;&#039; - Number of lines the text has&lt;br /&gt;
* &#039;&#039;&#039;text&#039;&#039;&#039; - The text to be shown on the message.&lt;br /&gt;
* &#039;&#039;&#039;gui&#039;&#039;&#039; - Name of the GUI file, defaults to &#039;&#039;guis/tdm_message.gui&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;wait&#039;&#039;&#039;, &#039;&#039;&#039;delay&#039;&#039;&#039; - These two are inherited from &#039;&#039;&#039;atdm:target_callobjectfunction&#039;&#039;&#039; and set the &amp;quot;wait&amp;quot; between triggers and the initial &amp;quot;delay&amp;quot; before the messsage show.&lt;br /&gt;
* &#039;&#039;&#039;fade_out_time&#039;&#039;&#039; - Defaults to 1, in seconds. This time is waited for the GUI to fade out, then the message is forcefully removed. If you use a different gui with &amp;quot;gui&amp;quot;, then set this spawnarg to match the fadeout time of your gui.&lt;br /&gt;
* &#039;&#039;&#039;auto_trigger&#039;&#039;&#039; - Boolean, if true, the msg is triggered &amp;quot;delay&amp;quot; seconds after map load automatically.&lt;br /&gt;
* &#039;&#039;&#039;force&#039;&#039;&#039; - Boolean, if true, the msg is always shown, regardless of the menu setting (e.g. the CVAR).&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
# Currently messages just overlay each other on the screen. So if a later messages is displayed while an old message is still there, they fade over from the old one to the new one.&lt;br /&gt;
# If the player then steps back into the first trigger, the old message is not displayed again, because it is still waiting around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;tdm_voice&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
A script object for atdm:voice, which can play voices (or any other sounds) so they appear to come from the player. Can be used for voiceovers and narrator effects. These effects use separate volumes defined by two different CVARs. &lt;br /&gt;
&lt;br /&gt;
How to use:&lt;br /&gt;
&lt;br /&gt;
# Place an &#039;&#039;&#039;atdm:voice&#039;&#039;&#039; entity (in &#039;&#039;&#039;Sound&#039;&#039;&#039; folder) in your map (location does not matter, and you need only one)&lt;br /&gt;
# Place multiple &#039;&#039;&#039;atdm:voice_trigger&#039;&#039;&#039; entities (in &#039;&#039;&#039;Targets&#039;&#039;&#039; folder) in your map&lt;br /&gt;
# Link your &#039;&#039;&#039;atdm:voice_trigger&#039;&#039;&#039; entities to your &#039;&#039;&#039;atdm:voice&#039;&#039;&#039; entity ({{key|CTRL}}+{{key|K}} in [[DarkRadiant]])&lt;br /&gt;
&lt;br /&gt;
Give the following spawnargs to the &#039;&#039;&#039;atdm:voice_trigger&#039;&#039;&#039; entities:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;snd_say&amp;quot;    &amp;quot;sound_you_want_to_play&amp;quot;                       // generic, male or female&lt;br /&gt;
&amp;quot;as_player&amp;quot;  &amp;quot;1&amp;quot;                                            // if the player should say things&lt;br /&gt;
&amp;quot;as_player&amp;quot;  &amp;quot;0&amp;quot;                                            // if the narrator should say things&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;quot;as_player&amp;quot; is set to &amp;quot;1&amp;quot;, the sound volume is controlled by the &amp;quot;Player Voice Volume&amp;quot; slider in the TDM Audio menu.&lt;br /&gt;
&lt;br /&gt;
When &amp;quot;as_player&amp;quot; is set to &amp;quot;0&amp;quot;, the sound volume is controlled by the &amp;quot;Narrator Volume&amp;quot; slider in the TDM Audio menu.&lt;br /&gt;
==== CVARS ====&lt;br /&gt;
&lt;br /&gt;
* tdm_voice_player_volume // Player Voice Volume&lt;br /&gt;
* tdm_voice_from_off_volume // Narrator Volume&lt;br /&gt;
* Menu settings&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unsupported&#039;&#039;&#039; options (taken out because the team doesn&#039;t want to add them):&lt;br /&gt;
&lt;br /&gt;
* CVAR: tdm_player_is_female&lt;br /&gt;
* Spawnarg: &amp;quot;snd_say_female&amp;quot; &amp;quot;female_sound_you_want_to_play&amp;quot; // overrides snd_say if the player is female&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;big&amp;gt;See also&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing script objects]]&lt;br /&gt;
&lt;br /&gt;
{{scripting}}&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Starting_to_Model_for_TDM&amp;diff=34428</id>
		<title>Starting to Model for TDM</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Starting_to_Model_for_TDM&amp;diff=34428"/>
		<updated>2026-02-12T21:03:26Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Modeling Software */ added links to orbweaver&amp;#039;s import export scripts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modeling Software ==&lt;br /&gt;
&lt;br /&gt;
Most modelers on the team use [http://www.lightwave3d.com/ Lightwave] or [http://www.blender.org/ Blender].  Anything that can save in either .lwo (prefered) or .ase format is acceptable. There are ase and lwo exporters and an lwo importer for Blender at [https://gitlab.com/orbweaver/darkblender gitlab.com/orbweaver/darkblender] (up to Blender 5.0.1) and [https://www.katsbits.com/site/category/tools/ katsbits.com] has some import/export scripts for Blender (2.49 or below), otherwise ask somebody in the Dark Mod Forums. &lt;br /&gt;
[http://www.autodesk.com/products/autodesk-3ds-max/overview/ 3ds Max] can be used to model and import/export .ase files.&lt;br /&gt;
&lt;br /&gt;
== Making the Model ==&lt;br /&gt;
&lt;br /&gt;
You will need to make, for each individual object:&lt;br /&gt;
* a highpoly model. There&#039;s no poly limit to this--make it as detailed as possible.&lt;br /&gt;
* a lowpoly version of the same size and basic shape (see dimensions below). &lt;br /&gt;
&lt;br /&gt;
The detailed version is used, by Doom 3, or another tool such as ORB or xnormals, to generate a normalmap with all the details on it.  This normalmap is then used with the lowpoly model to fake higher detail.  See [[Renderbump]] for more information on using D3 to generate normalmaps.&lt;br /&gt;
&lt;br /&gt;
* Lightwave: Your model needs to be tripled before being used in game ({{key-shift}}+{{key|T}}), or D3 will spit out tons of warning messages. &lt;br /&gt;
* Blender: The ASE exporter will automatically convert all your faces to triangles.&lt;br /&gt;
* 3dsMax: turn to poly, max sides 3, turn to edit mesh before export.&lt;br /&gt;
&lt;br /&gt;
== Model and Texture Dimensions ==&lt;br /&gt;
&lt;br /&gt;
Aim for less than 5000 polys for significant AI, and less than 500 for most common objects. Testing has shown that rendering polys does not slow down FPS much if they don&#039;t cast shadows.  It is therefore ok to have a higher poly model if you create a low-poly shadowmesh built into it (a 1000 poly model can often have a decent shadowmesh for 300 polys). Generally, objects that might only be used once in a scene (like a well) can have higher polys, but objects that might appear many times (like lights or chairs) should have less than 500.  Round objects (vases, plates, etc) should have a minimum of 8-10 sides (depending on the size of the object) to appear fairly smooth. Less important parts of an object (like the legs of a stool) can have fewer sides to keep polys down.&lt;br /&gt;
&lt;br /&gt;
About 200-300 polys is the average for most smallish size props, like weapons or lights. Even our wide bookshelf model is less than 250 polys, so it&#039;s not always dependent on size.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t generally need to sacrifice detail just to get a model less than 300 polys, however.&lt;br /&gt;
&lt;br /&gt;
Texture sizes go in powers of two: 2, 16, 32, 64, 128, 256, 512, 1024, 2048. D3 will automatically rescale TGA textures that are not in powers of two, which could stretch your texture and waste processing time (and look blurry as well). Note that the dimensions of DDS textures &#039;&#039;&#039;absolutely have to&#039;&#039;&#039; match powers of two, otherwise they appear black in-game.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
&lt;br /&gt;
The following convention should be used for naming all new model additions to TDM (many existing models do not follow this convention, and over time effort will be made to update them).  Following this convention will make it easier for mappers to find the models they want in a long list--if they are looking for a chest, they want to look under &amp;quot;c&amp;quot; for chest, not &amp;quot;w&amp;quot; for wooden_chest.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Object Type&#039;&#039;&#039; descriptor first.  Mappers are generally going to search by object, so they will want to find all objects of a similar type grouped together. It&#039;s a window, a plate, a chest, etc.  Don&#039;t bother duplicating the name of the folder, however.  If your object is inside the &amp;quot;lights&amp;quot; folder, then you don&#039;t need to call it &amp;quot;light_torch_wood&amp;quot;.&lt;br /&gt;
# &#039;&#039;&#039;Material&#039;&#039;&#039; descriptor next.  This may be appropriate, but remember that different textures can be used on the same model, so calling something &amp;quot;statue_marble&amp;quot; could be misleading if it also has a metal texture.  &lt;br /&gt;
# &#039;&#039;&#039;Size&#039;&#039;&#039; descriptor next.  This is primarily useful if there are multiple versions of the same mesh, like &amp;quot;statue_lion_large&amp;quot; and &amp;quot;statue_lion_small&amp;quot;.&lt;br /&gt;
# &#039;&#039;&#039;Quality&#039;&#039;&#039; descriptors next.  Optional.  Remember that skins might exist.  However, descriptors like ornate, plain, etc, can help mappers.&lt;br /&gt;
# &#039;&#039;&#039;Number Increment&#039;&#039;&#039; next. Adding a number to the end is useful if there are likely to be more versions of the same kind of object.&lt;br /&gt;
&lt;br /&gt;
If establishing precedent (creating a new &#039;&#039;&#039;Size&#039;&#039;&#039; descriptor, e.g., &amp;quot;huge&amp;quot;), try to avoid ambiguity and unnecessary overlapping with other descriptors (e.g., &amp;quot;enormous&amp;quot;), and set a good example others will follow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1.  &#039;&#039;apple_001&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This name omits all but the mandatory descriptors.  If valuable information about the object can help differentiate it from others, optional descriptors may be added.  If it is indeed generic, this name is fine.&lt;br /&gt;
&lt;br /&gt;
2.  &#039;&#039;chest_wood_battered_005&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This highly descriptive name omits a &#039;&#039;&#039;Size&#039;&#039;&#039; descriptor.&lt;br /&gt;
&lt;br /&gt;
It should be noted that a given descriptor can use more than one word if needed, for example, lamp_wall_ (uses two object descriptors), as long as it either follows precedent or establishes a good one.&lt;br /&gt;
&lt;br /&gt;
== Where to Save your Model and Textures ==&lt;br /&gt;
&lt;br /&gt;
Models should be saved in the models/darkmod tree.  See [[Model Folder Structure]] for specific information about where to put things.&lt;br /&gt;
&lt;br /&gt;
== Grid Alignment and Origin ==&lt;br /&gt;
&lt;br /&gt;
Please make sure your models are grid-aligned (the bottom of the object rests on a grid line in your modelling software).  If they don&#039;t, it can be difficult to get the model to sit on the floor or other surfaces in the editor.  If the object is likely to have other things placed on top of it (tables, shelves, etc) then it is also helpful if the top surface is grid-aligned as well.  &lt;br /&gt;
&lt;br /&gt;
Keep this in mind for all objects. The back of a door handle should sit very close to flush with the grid so it&#039;ll align well with doors. The back of a torch should be right on the grid so it doesn&#039;t sink into or float away from a wall. objects like chests are made of three different models; A chest, a lid and a lockbar. The chest can be flush to the floor, but the top might not align to the grid, it&#039;s best to move the verts to the closest grid line in this case. The lid&#039;s pivot needs to be at 0 in the z plane, so the bottom of the lid also needs to hit a grid line so it can sit flush with the top of the chest and not leave a gap. The lock bars pivot also need to be flush with 0 in the z plane (for rotation pivot) but it need sto also align on the grid so it&#039;ll match up  closely to the lockbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re:&#039;&#039;&#039;Grid size&#039;&#039;&#039;, testing in your 3d program:&lt;br /&gt;
An easy way to check your grid is to open a new file in DarkRadiant, choose a large grid size and drag out a cube brush, choose the next smaller grid size and drag out another brush, do this with 3-4 grid sizes. Make each cube as small as possible for that grid size. No need to texture them, place them all close to each other.&lt;br /&gt;
Now select all of them and choose &#039;&#039;&#039;file/export as obj&#039;&#039;&#039;, this will make them an obj file that can be imported into most 3d programs, if not you can convert it with a program like Accutrans into a 3ds mesh and import that.&lt;br /&gt;
Now these cubes are in your 3d program, do they align to the grid? Don&#039;t move them, if they don&#039;t align, instead adjust your grid size to match them. In 3ds Max you do this by choosing the customize &#039;&#039;menu/grid and snap settings/home grid tab/&#039;&#039; and for &#039;&#039;grid settings&#039;&#039; use a number in the power of 2, 4, 8,16... (you can use 1, or .5, or0.25 for smaller grids). This sets the alignment equal to DR&#039;s grid. 3ds Max is natuarally set at 10 which doesn&#039;t DR grid at all. You can set the &#039;&#039;major grid lines&#039;&#039; to something you are comfortable with, 4, 8, ect...That just makes a darker grid line every 4 or 8 lines.&lt;br /&gt;
Now any verts placed on a grid line will match the grid in DR.&lt;br /&gt;
&lt;br /&gt;
Re: &#039;&#039;&#039;Origins&#039;&#039;&#039;.  D3 uses the origin of the model to determine physics for movement--moveable objects will rotate around the origin when they are bouncing around.  Any model that will likely be made into a moveable object (basically any unattached object smaller than a chair) should have its origin where its center of gravity would be. The frob trace is also done to an object&#039;s origin.  Typically a player will look at the center of an object to frob it, not the bottom, so having the origin in the center of moveables makes them easier/more realistic to frob.&lt;br /&gt;
&lt;br /&gt;
Large objects that are not likely to be moveables, like desks or wardrobes, can have their origin at the bottom of the object, for easy placement on the floor. An exception would be something like trees that an author might possibly sink into the ground far enough to reach outside the world. In this case have a centered origin would be best so the origin stays inside world.&lt;br /&gt;
&lt;br /&gt;
Objects that might be designed to swing or rotate (like a hanging sign) should have their origin at the point of rotation.&lt;br /&gt;
&lt;br /&gt;
== Collision Meshes ==&lt;br /&gt;
&lt;br /&gt;
Collision models should be used on most objects for several reasons. They can help simplify pathfinding databases for AI and weapons, they also simplify the shape of the object so it can be moveable. If an object is going to be static and not move, like a pillar, its collision model can be as complex as you want, however this defeats the purpose of a collision mesh. Generally you want to make the collision mesh as simple as possible while retaining the basic shape of the model. This will guaranty that arrows will bounce off of it, or stick to it in a realistic way. If the mesh doesn&#039;t match the original object close enough you will get things like arrows bouncing off the air next to the model, or arrows that go through the model.&lt;br /&gt;
&lt;br /&gt;
Collision models must be exported with the original object mesh. This makes them hard to see in the editor, but the collision surface can be toggled so it&#039;s not a problem. Collision meshes won&#039;t be seen in game, nor will their effects if done properly.&lt;br /&gt;
&lt;br /&gt;
A static object can use one or more collision models, the purpose of this is to apply different materials to the colllision model. For instance, the generic Doom collision sounds like stone when an arrow bounces off of it, and arrows will always bounce off of it. However Dark Radiant allows the use of material specific collision shaders. So a chest can be made of metal and wood, an arrow will bounce of the metal parts and stick into the wood parts. The number of collision meshes on a static object is undetermined but should be limitless.&lt;br /&gt;
This is a good way to simplify collision while retaining the objects material types. A collision model overrides an objects shader properties (the image will be the same but noise and collision props will not work), so if you export with collision try to seperate it into materials.&lt;br /&gt;
 Examples of collision shader names: //base/tdm_collision_wood, //base/tdm_collision_ceramic&lt;br /&gt;
&lt;br /&gt;
Moveable objects &#039;&#039;must&#039;&#039; have collision models unlike static objects. These meshes have to be very simple. Currently the exact specs of a moveables collision mesh are under debate. You will often see these specs stated as less than 16 polys, no concave polys, ect... But it is possible to make workable collision models with both of the above rules broken, however it is very unlikely and you are lucky if it works. Most of the time if you do break those rules you will get an unstable mesh that will fly across the room when frobbed, sometimes even resulting in SHAS (Sudden Heart Attack Syndrom) when the player dies without warning. So sticking to those guidlines is usually best and can still result in a decent collision model in most cases. Multiple collision meshes have been successfully exported also, however they only use the material type of the first collision model loaded, this can also lead to instability. Generally simple shapes work best, just try to make it fit your object as close as possible.&lt;br /&gt;
&lt;br /&gt;
Shapes that work well for moveable collision models are cubes, pyramids and cylinders (up to 7 sides seems to work well). An L-shape of 2 collision meshes has proven to work with chairs (basically 2 cubes).&lt;br /&gt;
&lt;br /&gt;
For an idea what will work look at models in the model viewer. Of course a crate has a cube, a gear will have a cylinder, a lamp might have a pyramid. Objects that use unconventional shapes that defy the rules above are keys and the silver teapot.&lt;br /&gt;
&lt;br /&gt;
== Shadow Meshes ==&lt;br /&gt;
&lt;br /&gt;
Shadow meshes are similar to collision meshes. Basically they are just to simplify shadow casting, this can have great benefits to maps, especially if there are multiple lights hitting the object. Doom 3 can handle an enormous amount of polys on screen without flinching, however throw in a couple lights and you can bring it to its knees. This is where the importance of shadow meshes really counts. Doom3 calculates how each triangle is hit by a light and what shadow that triangle will cast, this is no big deal with one triangle, or one light but in a map you are sure to have many lights and many polys. These calculations are done every frame.&lt;br /&gt;
&lt;br /&gt;
We have done tests with 100,000 polys and one light, FPS will be around 60. Add a second light and the FPS will drop to 45, add a 3rd light and FPS will drop to 30 (rough estimates)... So if your objects are 100,000 polys but your shadow meshes only equal 50,000 polys you have already cut the lag in half.&lt;br /&gt;
&lt;br /&gt;
All materials and/or objects (including game created func_static meshes) can have noshadows set to 1. While this really helps performance it can look very bad and have bad effects on gameplay. Darkmod is a game set in very shadowy places and the player uses shadows for stealth, the major gameplay component, hence the importance of shadow meshes once again.&lt;br /&gt;
&lt;br /&gt;
When modeling the shadow mesh try to match the basic shape of your object as close as possible while using as few triangles as possible. Say you have a pipe object that has 20 sides and is very round. You could make a shadow mesh with only 4 sides and for the most part the shadow would look the same, the noticable difference would be that the ends would cast sharp corners, but often times these can be hidden within another shadow and wont be noticeable in game at all. Even the shape of the pipe going into a wall would mask the bad edges of the shadow.&lt;br /&gt;
&lt;br /&gt;
Shadow meshes must be exported with objects and their collision models. Unlike collision shaders the shadow shaders do &#039;&#039;not&#039;&#039; override the objects shadows. So when making a model that uses a shadow mesh you need to use material shaders for the object with noshadows on it, this has to be set in the material file (materials/.mtr). However do not go and start adding &#039;&#039;noshadows&#039;&#039; to all the materials as some objects or terrain might need shadows. Instead copy/paste the shader deffinition into a new .mtr file, give it a new name and add noshadows to it, that way the original material doesn&#039;t change. You should also use &#039;&#039;NoSelfShadow&#039;&#039; which will stop the material from casting shadows on itself.&lt;br /&gt;
&lt;br /&gt;
There are 2 material shaders for shadow meshes, they can be combined and both used for one model at the same time. They are &#039;&#039;&#039;textures/common/shadow&#039;&#039;&#039; and &#039;&#039;&#039;textures/common/shadow2&#039;&#039;&#039;. &#039;&#039;Shadow&#039;&#039; material casts shadows and self shadows (on the object the mesh is exported with, it is all considered one object although the collision and shadow meshes are  not seen in game). Shadow2 casts shadows (on terrain and other objects) but does not cast shadows on itself. This is very handy for things like apples where the player really won&#039;t notice if the stem casts a shadow on the apple. Remember, this is one of the most important considerations for performance so if an object can live without shadows, or without casting shadows on itself then use that option first.&lt;br /&gt;
&lt;br /&gt;
Weird lighting issues due to shadow meshes. .Ase files from 3ds max have an issue with shadow meshes clipping outside of an objects mesh which can cause weird shadow fragments on the objects they belong to. The cure for this is to make sure that the shadow mesh is entirely inside the objects mesh. If it sticks out anywhere you will get a weird shadow. A workaround I have found that works good is to model large parts of a shadow mesh that are easy to hide, this can cut down alot of shadow casting polys on an object. Then I will split small details off of the object and give them a material that has shadows, then I don&#039;t have to mess with the very hard areas but have still done some good. (example: a small pot with tiny handles, the pot will cast no shadows but will have a shadow mesh to do that, The tiny handles will themselves cast shadows so there is no weird shadow mesh clippling - both use the same base material, but the noshadows and noself shadow lines are removed from a copy of the original shader).&lt;br /&gt;
There seems to be no issue with lwo files, I am not sure why this is, but if you are making these files it seems you can be a bit more lax in the overall shape/clipping of your shadow mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tutorial-models}}&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Console_Useful_Controls&amp;diff=34364</id>
		<title>Console Useful Controls</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Console_Useful_Controls&amp;diff=34364"/>
		<updated>2026-01-13T01:01:16Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Notes */ tdm_end_mission&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
This is a list of common console commands and cvars that are of use to Dark Mod mappers and developers for testing etc. It is in order of key words and meaning. The console can be called by hitting &amp;quot;{{key|CTRL}}+{{key|ALT}}+{{key|~}}&amp;quot; (&amp;quot;{{key|CTRL}}+{{key|ALT}}+{{key|Key left of number 1}}&amp;quot; in general, e.g. &amp;quot;{{key|CTRL}}+{{key|ALT}}+{{key|^}}&amp;quot; on a German keyboard).&lt;br /&gt;
&lt;br /&gt;
This will open the console to cover the upper 50% of the screen. To cover more (80%), also hold down the {{key|SHIFT}} key.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
* Where a cvar or command is followed by a 1 (parameter) it can be taken that it is enabled by 1 and disabled by 0 unless otherwise stated. &#039;&#039;&#039;N&#039;&#039;&#039; indicates a range of values.&lt;br /&gt;
* The current value of a cvar can be shown by entering its name without a value.&lt;br /&gt;
* Parameters can be toggled between values by preceding the control with &#039;toggle&#039; and following it with eg, 1 0. Example : toggle r_showtris 3 0&lt;br /&gt;
* Controls can be bound to keys to be used in-game, including the toggle command, eg, &amp;lt;tt&amp;gt;bind &amp;quot;v&amp;quot; &amp;quot;toggle r_showportals 1 0&amp;quot;&amp;lt;/tt&amp;gt; . See also [[Bindings and User Settings]].&lt;br /&gt;
* Many controls can be included in the file &amp;lt;s&amp;gt;Doomconfig.cfg&amp;lt;/s&amp;gt;  &#039;&#039;&#039;Darkmod.cfg&#039;&#039;&#039;  in the darkmod folder so they are automatically effective.&lt;br /&gt;
* Some controls are disabled on exit from a map; others are permanent until manually changed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em&amp;quot; cellspacing=0 cellpadding=3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#ffdead|Command&lt;br /&gt;
!bgcolor=#ffdead|Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|noclip&lt;br /&gt;
|Player flies through everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|notarget&lt;br /&gt;
|AI will not know the player is there.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|invisible&lt;br /&gt;
|AI will not see the player, but can still hear him.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|inaudible&lt;br /&gt;
|AI will not hear the player, but can still see him.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|god&lt;br /&gt;
|Player cannot be harmed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|killmonsters&lt;br /&gt;
|Removes all AI from a map.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_open_doors&lt;br /&gt;
|Opens all doors on map: even locked and unpickable ones!&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_close_doors&lt;br /&gt;
|Closes all doors on map&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_end_mission&lt;br /&gt;
|Force a mission ending (handy for testing campaigns and debriefings)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|trigger entityname&lt;br /&gt;
|Triggers the named entity&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_show_loot&lt;br /&gt;
|Shows loot items through walls for a short time.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_show_keys&lt;br /&gt;
|Shows keys through walls for a short time.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|g_dragentity 1&lt;br /&gt;
|Aim at entity and hold attack control then pull back.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|pm_noclipspeed N&lt;br /&gt;
|Changes the speed of player noclip movement.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|g_fov N&lt;br /&gt;
|N=angle of field of view, eg, &#039;&#039;&#039;&amp;lt;code&amp;gt;g_fov 30&amp;lt;/code&amp;gt;&#039;&#039;&#039; = zoom in to restrict field of view to 30 degrees. Default = 90.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|g_showEntityInfo 1&lt;br /&gt;
|Show info about near entities (as box with classname).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|com_showfps 1&lt;br /&gt;
|Show fps to test performance.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|com_numQuickSaves N&lt;br /&gt;
|How many quicksaves to retain. Reducing the number won&#039;t delete any that you already have.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|g_frametime 1&lt;br /&gt;
|Timing info for each frame, see [[Profiling#g_frametime|Profiling]].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|r_showPrimitives 1&lt;br /&gt;
|Show info about number of [[drawcalls]] and tris/shadow tris rendered.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|con_noprint 0&lt;br /&gt;
|Prints console messages to the screen as an overlay.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|r_showSurfaceInfo 1&lt;br /&gt;
|Show info about closest rendered surface under crosshair: model name, index of surface in model, material name&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|r_showskel 1&lt;br /&gt;
|Shows skeleton in-game with joint names.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|g_showCollisionModels 1&lt;br /&gt;
|Shows collision models. Use &#039;&#039;&#039;g_maxShowDistance N&#039;&#039;&#039; to increase the distance where they are shown to.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|r_showtris N&lt;br /&gt;
|(1) Shows triangles being rendered directly.&amp;lt;br&amp;gt;(2) Shows overdrawn tri&#039;s.&amp;lt;br&amp;gt;(3) Shows all tri&#039;s in scene, direct and indirect.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|r_showportals N&lt;br /&gt;
|(1) Shows all portals in scene (red=closed, green=open). If your portals don&#039;t show up they are most likely not sealing. Yellow indicates a portal that is effectively closed but which connects to a visleaf visible through another portal.&lt;br /&gt;
(2) Also prints area numbers, mainly where player&#039;s eye is right now.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|r_showlightcount 1&lt;br /&gt;
|Using colours, shows the number of lights hitting a surface, black = 0, red = 1, blue = 2... etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|seta tdm_showsprop 1&lt;br /&gt;
|Shows the volume of sounds heard by AI.  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_ai_showbark 1&lt;br /&gt;
|Gives the def name (not the soundshader) of barks used by AI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_ai_showalert 1&lt;br /&gt;
|Shows the AI&#039;s current alert total and alert state.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_ai_showdest 1&lt;br /&gt;
|Shows the AI&#039;s current path destination.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|bind &amp;quot;f1&amp;quot; &amp;quot;_impulse27&amp;quot; &lt;br /&gt;
|Pressing F1 shows the AAS regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|timescale 2&lt;br /&gt;
|Double speed, good for testing pathing, 1 = normal speed, 2 = double, 0.5 = half speed. To have an effect, the &amp;quot;Uncapped FPS&amp;quot; setting must be Off.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|g_timeModifier 2&lt;br /&gt;
|Same as timescale 2 but somewhat different&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|g_stopTime 1&lt;br /&gt;
|Stops gameplay time, but player can move normally.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|teleport &amp;quot;entity name&amp;quot;&lt;br /&gt;
|teleports the player to the named entity&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|teleportArea N&lt;br /&gt;
|teleports the player into the area with number N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|getviewpos&lt;br /&gt;
|get player&#039;s position and orientation [[Reporting_Problem#Coordinates|coordinates]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|setviewpos X Y Z [P Y R]&lt;br /&gt;
|teleports the player to the coordinates and optionally sets camera orientation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|tdm_show_viewpos&lt;br /&gt;
|show/hide the viewpos on the player HUD, which can be set to the following: 0 (hide), 1 (gray font color), 2 (cyan font color)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|screenshot_viewpos &amp;lt;gamma&amp;gt;&lt;br /&gt;
|takes a screenshot with the viewpos added to it. The &amp;lt;gamma&amp;gt; argument is optional and defaults to the r_ambientGamma value.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spawning entities ==&lt;br /&gt;
&lt;br /&gt;
Spawns entity in front of the player. Look up if entity gets spawned under the floor. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em&amp;quot; cellspacing=0 cellpadding=3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#ffdead|Command&lt;br /&gt;
!bgcolor=#ffdead|Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:weapon_blackjack&lt;br /&gt;
|Spawns blackjack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:weapon_shortsword&lt;br /&gt;
|Spawns a sword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_broadhead&lt;br /&gt;
|Spawns one arrow.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_broadhead inv_ammo_amount 50&lt;br /&gt;
|Spawns 50 arrows (one entity with 50 ammo). Similar technique can be used for other ammo types.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_firearrow&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_gasarrow&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_mossarrow&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_noisemaker&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_ropearrow&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|spawn atdm:ammo_waterarrow&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With the TDM console you can press tab after typing something to autocomplete. For example &amp;lt;tt&amp;gt;spawn atdm:&amp;lt;tab&amp;gt;&amp;lt;/tt&amp;gt; will cycle through the various spawnables. You can also add additional spawnargs using the following syntax: &amp;lt;tt&amp;gt;spawn classname [key value] [key value] ...&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Diagnostic information ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em&amp;quot; cellspacing=0 cellpadding=3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#ffdead|Command&lt;br /&gt;
!bgcolor=#ffdead|Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|listEntities&lt;br /&gt;
|lists all current entities followed by a count.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|listEntities GLOB&lt;br /&gt;
|lists all alive entities whose names match given glob/wildcard (e.g. use asterisks like &amp;lt;tt&amp;gt;*func_static*&amp;lt;/tt&amp;gt; to search for substring).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|countEntities&lt;br /&gt;
|displays a count of entities by class. &#039;&#039;TDM 2.03+&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|listCvars GLOB&lt;br /&gt;
|lists all cvars matching the given glob/wildcard (no argument = lists everything).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|listCmds GLOB&lt;br /&gt;
|lists all console commands matching the given glob/wildcard (no argument = lists everything).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!align=left|condump [unwrap] &#039;&#039;filename.txt&#039;&#039;&lt;br /&gt;
|Writes the text content of the console to text file &#039;&#039;filename.txt&#039;&#039; (you can use any file name). If optional keyword &#039;&#039;unwrap&#039;&#039; is used, full lines from the console will be stitched together with the following line. Useful when exporting long file paths from the console, that have been broken up by its width limit. &#039;&#039;TDM 2.03+&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
[[Cvars in The Dark Mod]]&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
&lt;br /&gt;
[[Category:CVARS]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34154</id>
		<title>Setting up Campaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34154"/>
		<updated>2025-12-19T22:38:27Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* De-Briefing Videos */ Changed text to new way of specifying de-briefing video&amp;#039;s per mission in campaign&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an attempt to describe the various options mappers need to consider when setting up campaigns or multi-mission packages (I&#039;ll refer to campaigns for both of these for the sake of simplicity). Campaign support has been added in TDM 1.06. &lt;br /&gt;
&lt;br /&gt;
= Map Files =&lt;br /&gt;
Regular, single-map TDM missions are packed in PK4 files, campaigns are no different. If your campaign consists of three missions (&amp;quot;red.map&amp;quot;, &amp;quot;blue.map&amp;quot; and &amp;quot;green.map&amp;quot;), all three of them still go into the same maps folder in your PK4 file.&lt;br /&gt;
&lt;br /&gt;
The actual order in which the missions are to be played is defined through the &amp;lt;tt&amp;gt;tdm_mapsequence.txt&amp;lt;/tt&amp;gt; file, which should be added to the PK4 (just next to the readme.txt). Following the example of the &amp;quot;red&amp;quot;, &amp;quot;blue&amp;quot; and &amp;quot;green&amp;quot; maps above the map sequence file would look like this:&lt;br /&gt;
&lt;br /&gt;
 Mission 1: red&lt;br /&gt;
 Mission 2: blue&lt;br /&gt;
 Mission 3: green&lt;br /&gt;
&lt;br /&gt;
Looking at that, the syntax of the file is pretty much self-explanatory. The first mission has the number one, the map file is mentioned after the colon and the following space. You don&#039;t need to specify the &amp;quot;.map&amp;quot; extension of the map file that is handled automatically. See the main [[tdm_mapsequence.txt]] article for further reference, for this article it&#039;s enough to have the above lines I suppose.&lt;br /&gt;
&lt;br /&gt;
= Text briefings =&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . &lt;br /&gt;
For example you can put every briefing of every seperate mission inside &#039;&#039;mission_briefing_1&#039;&#039;.gui, &#039;&#039;mission_briefing_2&#039;&#039;.gui, &#039;&#039;mission_briefing_3&#039;&#039;.gui, then inside mainmenu_briefing.gui you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mission_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mission_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mission_briefing_3.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each mission inside the campaign you customize settings in file mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See for complete information on this text inside mainmenu_custom_defs.gui, which can be found inside file tdm_gui01.pk4 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 60%&amp;quot;&amp;gt;&lt;br /&gt;
Via the [Expand]-button you can access the old (still viable) method of making advanced text briefings work in campaigns. It&#039;s adviced to not use this, because it means more work and is more complicated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
For advanced setups like the &amp;quot;Timed Flowing Briefing&amp;quot; mentioned in the [[Briefing]] article there are a few modifications to be made to your GUI code. As the mainmenu_briefing.gui file is the same for the whole campaign your GUI needs to know which map the player is about to play next. For this purpose a GUI variable &amp;lt;tt&amp;gt;gui::CurrentMission&amp;lt;/tt&amp;gt; has been introduced which can be used in if-else GUI code blocks in the BriefingStateInit windowDef. For single-missions, mappers just called the GUI animation block like this:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		set &amp;quot;BriefingAnimation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		resetTime &amp;quot;BriefingAnimation&amp;quot; 0;&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
For multi-mission setups an if-else block should be added to switch to the correct briefing animation for the current map:&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Of course you&#039;ll need to define a &amp;lt;tt&amp;gt;BriefingMissionXAnimation&amp;lt;/tt&amp;gt; block for each mission. You can use the instructions in the [[Briefing]] article to learn how to do that, just keep in mind to change the windowDef&#039;s name such that you don&#039;t end up with duplicate names for your windowDefs (this will lead to warnings in the console at game startup at best).&lt;br /&gt;
&lt;br /&gt;
Starting the correct mission briefing animation is only half the rent, you&#039;ll need to stop the correct animation as well when the player proceeds to the objectives screen:&lt;br /&gt;
 windowDef BriefingStateEnd&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
If you don&#039;t do that the player might see remnants of the previous mission&#039;s briefing when proceeding to the next map briefing.&lt;br /&gt;
&lt;br /&gt;
The same holds analogously for the BriefingSkip windowDef which is used to skip the briefing on mouse clicks:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingSkip&lt;br /&gt;
 {&lt;br /&gt;
 	notime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		// Stop the animation&lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Video briefings =&lt;br /&gt;
It&#039;s possible to define briefing/intro videos for each mission in a campaign. To enable videos mappers need to include a mainmenu_custom_defs.gui file in their PK4 and define a few variables in there. You can look at the default file &amp;lt;code&amp;gt;tdm_gui01.pk4/guis/mainmenu_custom_defs.gui&amp;lt;/code&amp;gt; to get more info and read some comments. I&#039;ll include the most important settings briefly here:&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to specify which video to be played for each mission:&lt;br /&gt;
&lt;br /&gt;
 #if MM_CURRENTMISSION == 1&lt;br /&gt;
    #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_1&amp;quot;&lt;br /&gt;
    #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_1;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The line &amp;lt;code&amp;gt;#if MM_CURRENTMISSION == 1&amp;lt;/code&amp;gt; tells this is the first mission of the campaign. The lines under it are single mission video specifics settings that are only applied to the first mission in the campaign because of the top line.&lt;br /&gt;
&lt;br /&gt;
The last line in this triple is defining the sound to be played along the video: &amp;lt;code&amp;gt;MM_BRIEFING_1_VIDEO_SOUND_CMD&amp;lt;/code&amp;gt;. Be sure to include the &amp;quot;music&amp;quot; command in the string and to refer to a valid sound shader.&lt;br /&gt;
&lt;br /&gt;
For the second mission you use line &amp;lt;code&amp;gt;#if MM_CURRENTMISSION == 2&amp;lt;/code&amp;gt; and then specify the correct video and sound files for the second mission&#039;s video briefing.&lt;br /&gt;
&lt;br /&gt;
= De-Briefing Videos =&lt;br /&gt;
It&#039;s possible to have a video played back immediately after &amp;quot;Mission Complete&amp;quot;. So-called de-briefings.&lt;br /&gt;
&lt;br /&gt;
The mechanism to set these up is very similar to the above briefing videos, all you need is to add the correct lines in your mainmenu_custom_defs.gui file:&lt;br /&gt;
&lt;br /&gt;
 #if MM_CURRENTMISSION == 1&lt;br /&gt;
   #define MM_DEBRIEFING_VIDEO_MATERIAL_1 &amp;quot;guis/video/credits/typing_sequence01&amp;quot;&lt;br /&gt;
   #define MM_DEBRIEFING_VIDEO_SOUND_CMD &amp;quot;music tdm_mainmenu_background_music;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This example will play a credits video after &amp;quot;Mission Complete&amp;quot;. Please refer to the above &amp;quot;Video briefings&amp;quot; section to learn about the precise meaning of these lines, they are pretty much analogous.&lt;br /&gt;
&lt;br /&gt;
Side note: this option is not exclusive to campaigns, you can have a de-briefing video in single-mission setups just as well.&lt;br /&gt;
&lt;br /&gt;
= Conditional Objectives =&lt;br /&gt;
You can have your mission objectives depend on the state of objectives in previous missions. It&#039;s possible to set an objective in the second mission to &amp;quot;COMPLETE&amp;quot; if the player managed to fulfill an objective in the first mission.&lt;br /&gt;
&lt;br /&gt;
[[Image:Objective conditions editor.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Consider a campaign consisting of two maps: red.map and blue.map, played in this order. You have an optional objective in red.map telling the player to find 50 loot in gold. If the player manages to complete that objective the mandatory objective in mission 2 &#039;&#039;&amp;quot;Find enough gold for your rent&amp;quot;&#039;&#039; should already be marked as &#039;&#039;&amp;quot;Completed&amp;quot;&#039;&#039;. Such a thing can be achieved through a set of spawnargs that have been introduced in TDM 1.06 (see the [[Objectives#Objective_Conditions|Objectives]] article for reference), but you can do it through the Objectives Editor just as fine.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll assume the use of the Conditions editor is fairly straightforward, but feel free to ask specific questions in our forums.&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
There are a few script methods which are specifically designed to be used in maps. See the file tdm_events.script for more details about them.&lt;br /&gt;
&lt;br /&gt;
===== mission number =====&lt;br /&gt;
Use the getCurrentMission() method on the sys entity to retrieve the current mission number. Note that the mission numbers are 0-based in the code, the function will return 0 for the first mission in a campaign. The following snippet will print the number to the console:&lt;br /&gt;
 sys.println(&amp;quot;Current Mission: &amp;quot; + sys.getCurrentMissionNum());&lt;br /&gt;
&lt;br /&gt;
===== persistent info =====&lt;br /&gt;
There are a couple of script events that can be used to store data in between missions. This data is stored in the so-called &amp;quot;persistent level info&amp;quot;, which is designed to store key/value pairs.&lt;br /&gt;
See &amp;lt;tt&amp;gt;tdm_events.script&amp;lt;/tt&amp;gt; file for further reference:&lt;br /&gt;
&lt;br /&gt;
 void   setPersistentArg( string key, string value );&lt;br /&gt;
 string getPersistentString( string key );&lt;br /&gt;
 float  getPersistentFloat( string key );&lt;br /&gt;
 vector getPersistentVector( string key );&lt;br /&gt;
&lt;br /&gt;
For example, you can store a number value like this (all values are stored as strings):&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;dummyvar&amp;quot;, &amp;quot;20&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Later on you receive the number value like this:&lt;br /&gt;
 float testvar = sys.getPersistentFloat(&amp;quot;dummyvar&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If you ever need to clear out the entire level info there&#039;s a separate routine for that:&lt;br /&gt;
 sys.clearPersistentArgs();&lt;br /&gt;
&lt;br /&gt;
===== game &amp;amp; gui =====&lt;br /&gt;
&lt;br /&gt;
Starting with &#039;&#039;&#039;TDM 2.13&#039;&#039;&#039;, persistent information is also provided as GUI variables ([https://bugs.thedarkmod.com/view.php?id=6509 #6509]).&lt;br /&gt;
The information is automatically synchronized between game script variables and GUI variables.&lt;br /&gt;
&lt;br /&gt;
For example, here is how you access &amp;quot;killed_berny&amp;quot; persistent argument in game script:&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;killed_berny&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
 float value = sys.getPersistentFloat(&amp;quot;killed_berny&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here is how you access it in GUI script:&lt;br /&gt;
 set &amp;quot;gui::persistent_killed_berny&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 if (&amp;quot;gui::persistent_killed_berny&amp;quot; == 0) { ... }&lt;br /&gt;
&lt;br /&gt;
You can add a custom checkbox in GUI briefing, and then customize the game depending on whether the player enabled it or not.&lt;br /&gt;
Or you can implement game script functions &amp;lt;tt&amp;gt;on_mission_complete&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;on_mission_failed&amp;lt;/tt&amp;gt; and save some info about game state in order to customize debriefing.&lt;br /&gt;
This feature can be useful for single missions as well.&lt;br /&gt;
&lt;br /&gt;
= Inventory Items =&lt;br /&gt;
The player&#039;s inventory contains all the keys, tools, lockpicks, lantern as well as all the weapons. The mapper can define which of these should be kept when proceeding to the next mission. Items that are allowed to be kept are called &amp;quot;persistent&amp;quot;, and the corresponding spawnarg controlling that property is called &amp;quot;inv_persistent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tools &amp;amp; Items ==&lt;br /&gt;
By default regular inventory items are not marked as persistent, i.e. the inv_persistent key is set to &amp;quot;0&amp;quot;. Once the mapper flips that spawnarg to &amp;quot;1&amp;quot; the item will be kept throughout the following missions. The item will be kept until the end of the whole campaign, unless:&lt;br /&gt;
* the player drops the item&lt;br /&gt;
* it is removed from the inventory by script or other events&lt;br /&gt;
* a rule on the atdm:campaign_info entity is forcing the item to be removed after &amp;quot;Mission Complete&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Even though TDM 2.02+ will resolve naming conflicts across maps, map authors should try to make sure that persistent items have unique names. For example, if the first map has a persistent item named &amp;quot;My Water Bottle&amp;quot;, none of the subsequent maps should have an item named &amp;quot;My Water Bottle&amp;quot;. If you must have a second water bottle, name it &amp;quot;My Second Water Bottle&amp;quot;, or something along those lines.&lt;br /&gt;
&lt;br /&gt;
If you have a persistent stackable item in map N, and you don&#039;t consume it in that map, and you have another instance of the same stackable item in map N+1 (whether it&#039;s marked &#039;persistent&#039; or not), when you pick it up, it will be added to the stack count of map N&#039;s item and become persistent.&lt;br /&gt;
&lt;br /&gt;
== Weapons &amp;amp; Arrows ==&lt;br /&gt;
All weapon inventory items are persistent by default including their ammo, so without further action the player will keep all his weapons and all the arrows when proceeding to the next mission. However it&#039;s possible to define ammo limits on the atdm:campaign_info entity, which is described below.&lt;br /&gt;
&lt;br /&gt;
Important: it&#039;s not advisable to mess with the inv_persistent spawnarg on weapon items - it&#039;s recommended to leave that spawnarg at the default value and control the carry-over by the rules on the campaign info entity.&lt;br /&gt;
&lt;br /&gt;
== Inventory Item and Weapon Limits ==&lt;br /&gt;
An [[atdm:campaign_info]] entity can be placed in a map to control which items make it to the next mission (and their amount) - and which should be dropped. The rules defined on the [[atdm:campaign_info]] entity will be enforced after the &amp;quot;Mission Complete&amp;quot; event, when the map is still active, i.e. it&#039;s &amp;quot;filtering&amp;quot; outgoing items. Each map can have its own campaign info entity to define its own set of rules.&lt;br /&gt;
&lt;br /&gt;
Please refer to the main [[atdm:campaign_info]] article to get precise info on how to set up these rules.&lt;br /&gt;
&lt;br /&gt;
= Loot Limits =&lt;br /&gt;
Special handling is possible for the amount of loot that is carried over and usable in the shop of the next mission. These so-called &amp;quot;loot carry-over&amp;quot; rules are defined on the shop entity of the respective map, e.g. the shop entity in Mission B will define the loot carry-over roles applicable to the loot collected in Mission A.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Shop#Limiting_the_Loot_from_previous_Missions|Shop]] article for further reference.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Campaigns]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34153</id>
		<title>Setting up Campaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34153"/>
		<updated>2025-12-19T22:14:35Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Video briefings */ Changed text to new way of specifying video&amp;#039;s per mission in campaign.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an attempt to describe the various options mappers need to consider when setting up campaigns or multi-mission packages (I&#039;ll refer to campaigns for both of these for the sake of simplicity). Campaign support has been added in TDM 1.06. &lt;br /&gt;
&lt;br /&gt;
= Map Files =&lt;br /&gt;
Regular, single-map TDM missions are packed in PK4 files, campaigns are no different. If your campaign consists of three missions (&amp;quot;red.map&amp;quot;, &amp;quot;blue.map&amp;quot; and &amp;quot;green.map&amp;quot;), all three of them still go into the same maps folder in your PK4 file.&lt;br /&gt;
&lt;br /&gt;
The actual order in which the missions are to be played is defined through the &amp;lt;tt&amp;gt;tdm_mapsequence.txt&amp;lt;/tt&amp;gt; file, which should be added to the PK4 (just next to the readme.txt). Following the example of the &amp;quot;red&amp;quot;, &amp;quot;blue&amp;quot; and &amp;quot;green&amp;quot; maps above the map sequence file would look like this:&lt;br /&gt;
&lt;br /&gt;
 Mission 1: red&lt;br /&gt;
 Mission 2: blue&lt;br /&gt;
 Mission 3: green&lt;br /&gt;
&lt;br /&gt;
Looking at that, the syntax of the file is pretty much self-explanatory. The first mission has the number one, the map file is mentioned after the colon and the following space. You don&#039;t need to specify the &amp;quot;.map&amp;quot; extension of the map file that is handled automatically. See the main [[tdm_mapsequence.txt]] article for further reference, for this article it&#039;s enough to have the above lines I suppose.&lt;br /&gt;
&lt;br /&gt;
= Text briefings =&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . &lt;br /&gt;
For example you can put every briefing of every seperate mission inside &#039;&#039;mission_briefing_1&#039;&#039;.gui, &#039;&#039;mission_briefing_2&#039;&#039;.gui, &#039;&#039;mission_briefing_3&#039;&#039;.gui, then inside mainmenu_briefing.gui you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mission_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mission_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mission_briefing_3.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each mission inside the campaign you customize settings in file mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See for complete information on this text inside mainmenu_custom_defs.gui, which can be found inside file tdm_gui01.pk4 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 60%&amp;quot;&amp;gt;&lt;br /&gt;
Via the [Expand]-button you can access the old (still viable) method of making advanced text briefings work in campaigns. It&#039;s adviced to not use this, because it means more work and is more complicated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
For advanced setups like the &amp;quot;Timed Flowing Briefing&amp;quot; mentioned in the [[Briefing]] article there are a few modifications to be made to your GUI code. As the mainmenu_briefing.gui file is the same for the whole campaign your GUI needs to know which map the player is about to play next. For this purpose a GUI variable &amp;lt;tt&amp;gt;gui::CurrentMission&amp;lt;/tt&amp;gt; has been introduced which can be used in if-else GUI code blocks in the BriefingStateInit windowDef. For single-missions, mappers just called the GUI animation block like this:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		set &amp;quot;BriefingAnimation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		resetTime &amp;quot;BriefingAnimation&amp;quot; 0;&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
For multi-mission setups an if-else block should be added to switch to the correct briefing animation for the current map:&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Of course you&#039;ll need to define a &amp;lt;tt&amp;gt;BriefingMissionXAnimation&amp;lt;/tt&amp;gt; block for each mission. You can use the instructions in the [[Briefing]] article to learn how to do that, just keep in mind to change the windowDef&#039;s name such that you don&#039;t end up with duplicate names for your windowDefs (this will lead to warnings in the console at game startup at best).&lt;br /&gt;
&lt;br /&gt;
Starting the correct mission briefing animation is only half the rent, you&#039;ll need to stop the correct animation as well when the player proceeds to the objectives screen:&lt;br /&gt;
 windowDef BriefingStateEnd&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
If you don&#039;t do that the player might see remnants of the previous mission&#039;s briefing when proceeding to the next map briefing.&lt;br /&gt;
&lt;br /&gt;
The same holds analogously for the BriefingSkip windowDef which is used to skip the briefing on mouse clicks:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingSkip&lt;br /&gt;
 {&lt;br /&gt;
 	notime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		// Stop the animation&lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Video briefings =&lt;br /&gt;
It&#039;s possible to define briefing/intro videos for each mission in a campaign. To enable videos mappers need to include a mainmenu_custom_defs.gui file in their PK4 and define a few variables in there. You can look at the default file &amp;lt;code&amp;gt;tdm_gui01.pk4/guis/mainmenu_custom_defs.gui&amp;lt;/code&amp;gt; to get more info and read some comments. I&#039;ll include the most important settings briefly here:&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to specify which video to be played for each mission:&lt;br /&gt;
&lt;br /&gt;
 #if MM_CURRENTMISSION == 1&lt;br /&gt;
    #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_1&amp;quot;&lt;br /&gt;
    #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_1;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The line &amp;lt;code&amp;gt;#if MM_CURRENTMISSION == 1&amp;lt;/code&amp;gt; tells this is the first mission of the campaign. The lines under it are single mission video specifics settings that are only applied to the first mission in the campaign because of the top line.&lt;br /&gt;
&lt;br /&gt;
The last line in this triple is defining the sound to be played along the video: &amp;lt;code&amp;gt;MM_BRIEFING_1_VIDEO_SOUND_CMD&amp;lt;/code&amp;gt;. Be sure to include the &amp;quot;music&amp;quot; command in the string and to refer to a valid sound shader.&lt;br /&gt;
&lt;br /&gt;
For the second mission you use line &amp;lt;code&amp;gt;#if MM_CURRENTMISSION == 2&amp;lt;/code&amp;gt; and then specify the correct video and sound files for the second mission&#039;s video briefing.&lt;br /&gt;
&lt;br /&gt;
= De-Briefing Videos =&lt;br /&gt;
With TDM 1.06 and upwards it&#039;s possible to have a video played back immediately after &amp;quot;Mission Complete&amp;quot;, so-called de-briefings.&lt;br /&gt;
&lt;br /&gt;
The mechanism to set these up is very similar to the above &amp;quot;SDK-controlled&amp;quot; briefing videos, all you need is to add the correct #DEFINE lines in your mainmenu_custom_defs.gui file:&lt;br /&gt;
&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_MATERIALS &amp;quot;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_LENGTHS &amp;quot;2000;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music tdm_mainmenu_background_music;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This example will play a credits video after &amp;quot;Mission Complete&amp;quot; for 2 seconds (= 2000 milliseconds). Please refer to the above &amp;quot;Briefings&amp;quot; section to learn about the precise meaning of these lines, they are pretty much analogous.&lt;br /&gt;
&lt;br /&gt;
Side note: this option is not exclusive to campaigns, you can have a de-briefing video in single-mission setups just as well.&lt;br /&gt;
&lt;br /&gt;
= Conditional Objectives =&lt;br /&gt;
You can have your mission objectives depend on the state of objectives in previous missions. It&#039;s possible to set an objective in the second mission to &amp;quot;COMPLETE&amp;quot; if the player managed to fulfill an objective in the first mission.&lt;br /&gt;
&lt;br /&gt;
[[Image:Objective conditions editor.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Consider a campaign consisting of two maps: red.map and blue.map, played in this order. You have an optional objective in red.map telling the player to find 50 loot in gold. If the player manages to complete that objective the mandatory objective in mission 2 &#039;&#039;&amp;quot;Find enough gold for your rent&amp;quot;&#039;&#039; should already be marked as &#039;&#039;&amp;quot;Completed&amp;quot;&#039;&#039;. Such a thing can be achieved through a set of spawnargs that have been introduced in TDM 1.06 (see the [[Objectives#Objective_Conditions|Objectives]] article for reference), but you can do it through the Objectives Editor just as fine.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll assume the use of the Conditions editor is fairly straightforward, but feel free to ask specific questions in our forums.&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
There are a few script methods which are specifically designed to be used in maps. See the file tdm_events.script for more details about them.&lt;br /&gt;
&lt;br /&gt;
===== mission number =====&lt;br /&gt;
Use the getCurrentMission() method on the sys entity to retrieve the current mission number. Note that the mission numbers are 0-based in the code, the function will return 0 for the first mission in a campaign. The following snippet will print the number to the console:&lt;br /&gt;
 sys.println(&amp;quot;Current Mission: &amp;quot; + sys.getCurrentMissionNum());&lt;br /&gt;
&lt;br /&gt;
===== persistent info =====&lt;br /&gt;
There are a couple of script events that can be used to store data in between missions. This data is stored in the so-called &amp;quot;persistent level info&amp;quot;, which is designed to store key/value pairs.&lt;br /&gt;
See &amp;lt;tt&amp;gt;tdm_events.script&amp;lt;/tt&amp;gt; file for further reference:&lt;br /&gt;
&lt;br /&gt;
 void   setPersistentArg( string key, string value );&lt;br /&gt;
 string getPersistentString( string key );&lt;br /&gt;
 float  getPersistentFloat( string key );&lt;br /&gt;
 vector getPersistentVector( string key );&lt;br /&gt;
&lt;br /&gt;
For example, you can store a number value like this (all values are stored as strings):&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;dummyvar&amp;quot;, &amp;quot;20&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Later on you receive the number value like this:&lt;br /&gt;
 float testvar = sys.getPersistentFloat(&amp;quot;dummyvar&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If you ever need to clear out the entire level info there&#039;s a separate routine for that:&lt;br /&gt;
 sys.clearPersistentArgs();&lt;br /&gt;
&lt;br /&gt;
===== game &amp;amp; gui =====&lt;br /&gt;
&lt;br /&gt;
Starting with &#039;&#039;&#039;TDM 2.13&#039;&#039;&#039;, persistent information is also provided as GUI variables ([https://bugs.thedarkmod.com/view.php?id=6509 #6509]).&lt;br /&gt;
The information is automatically synchronized between game script variables and GUI variables.&lt;br /&gt;
&lt;br /&gt;
For example, here is how you access &amp;quot;killed_berny&amp;quot; persistent argument in game script:&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;killed_berny&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
 float value = sys.getPersistentFloat(&amp;quot;killed_berny&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here is how you access it in GUI script:&lt;br /&gt;
 set &amp;quot;gui::persistent_killed_berny&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 if (&amp;quot;gui::persistent_killed_berny&amp;quot; == 0) { ... }&lt;br /&gt;
&lt;br /&gt;
You can add a custom checkbox in GUI briefing, and then customize the game depending on whether the player enabled it or not.&lt;br /&gt;
Or you can implement game script functions &amp;lt;tt&amp;gt;on_mission_complete&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;on_mission_failed&amp;lt;/tt&amp;gt; and save some info about game state in order to customize debriefing.&lt;br /&gt;
This feature can be useful for single missions as well.&lt;br /&gt;
&lt;br /&gt;
= Inventory Items =&lt;br /&gt;
The player&#039;s inventory contains all the keys, tools, lockpicks, lantern as well as all the weapons. The mapper can define which of these should be kept when proceeding to the next mission. Items that are allowed to be kept are called &amp;quot;persistent&amp;quot;, and the corresponding spawnarg controlling that property is called &amp;quot;inv_persistent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tools &amp;amp; Items ==&lt;br /&gt;
By default regular inventory items are not marked as persistent, i.e. the inv_persistent key is set to &amp;quot;0&amp;quot;. Once the mapper flips that spawnarg to &amp;quot;1&amp;quot; the item will be kept throughout the following missions. The item will be kept until the end of the whole campaign, unless:&lt;br /&gt;
* the player drops the item&lt;br /&gt;
* it is removed from the inventory by script or other events&lt;br /&gt;
* a rule on the atdm:campaign_info entity is forcing the item to be removed after &amp;quot;Mission Complete&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Even though TDM 2.02+ will resolve naming conflicts across maps, map authors should try to make sure that persistent items have unique names. For example, if the first map has a persistent item named &amp;quot;My Water Bottle&amp;quot;, none of the subsequent maps should have an item named &amp;quot;My Water Bottle&amp;quot;. If you must have a second water bottle, name it &amp;quot;My Second Water Bottle&amp;quot;, or something along those lines.&lt;br /&gt;
&lt;br /&gt;
If you have a persistent stackable item in map N, and you don&#039;t consume it in that map, and you have another instance of the same stackable item in map N+1 (whether it&#039;s marked &#039;persistent&#039; or not), when you pick it up, it will be added to the stack count of map N&#039;s item and become persistent.&lt;br /&gt;
&lt;br /&gt;
== Weapons &amp;amp; Arrows ==&lt;br /&gt;
All weapon inventory items are persistent by default including their ammo, so without further action the player will keep all his weapons and all the arrows when proceeding to the next mission. However it&#039;s possible to define ammo limits on the atdm:campaign_info entity, which is described below.&lt;br /&gt;
&lt;br /&gt;
Important: it&#039;s not advisable to mess with the inv_persistent spawnarg on weapon items - it&#039;s recommended to leave that spawnarg at the default value and control the carry-over by the rules on the campaign info entity.&lt;br /&gt;
&lt;br /&gt;
== Inventory Item and Weapon Limits ==&lt;br /&gt;
An [[atdm:campaign_info]] entity can be placed in a map to control which items make it to the next mission (and their amount) - and which should be dropped. The rules defined on the [[atdm:campaign_info]] entity will be enforced after the &amp;quot;Mission Complete&amp;quot; event, when the map is still active, i.e. it&#039;s &amp;quot;filtering&amp;quot; outgoing items. Each map can have its own campaign info entity to define its own set of rules.&lt;br /&gt;
&lt;br /&gt;
Please refer to the main [[atdm:campaign_info]] article to get precise info on how to set up these rules.&lt;br /&gt;
&lt;br /&gt;
= Loot Limits =&lt;br /&gt;
Special handling is possible for the amount of loot that is carried over and usable in the shop of the next mission. These so-called &amp;quot;loot carry-over&amp;quot; rules are defined on the shop entity of the respective map, e.g. the shop entity in Mission B will define the loot carry-over roles applicable to the loot collected in Mission A.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Shop#Limiting_the_Loot_from_previous_Missions|Shop]] article for further reference.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Campaigns]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Xrays_in_GUIs&amp;diff=34152</id>
		<title>Xrays in GUIs</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Xrays_in_GUIs&amp;diff=34152"/>
		<updated>2025-12-17T11:37:35Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* The scriptobject */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Xrays in GUIs ==&lt;br /&gt;
&lt;br /&gt;
Xray materials can be part of GUI overlays. This page will describe how the &amp;quot;xray glasses&amp;quot; mentioned in the main [[Xrays]] article were created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating the GUI ==&lt;br /&gt;
&lt;br /&gt;
=== The image ===&lt;br /&gt;
&lt;br /&gt;
GUI overlays should be 1024x1024 square images with an alpha channel, saved as either:&lt;br /&gt;
* .tga without RLE compression or &lt;br /&gt;
* .dds with DXT5 compression and generating mipmaps.&lt;br /&gt;
&lt;br /&gt;
The GUI will be designed to apply the xray effect only to transparent parts of the overlay image. If you have artistic details like dirt smudges, it may be useful to also create a clean version of the image for purposes of cleanly restricting the xray effect, like below:&lt;br /&gt;
&lt;br /&gt;
[[File:Glasses overlay.jpg|450px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The material ===&lt;br /&gt;
&lt;br /&gt;
The next step is to make a material that uses these images. This is what &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot; from the core assets looks like:&lt;br /&gt;
&lt;br /&gt;
 xray_glasses_overlay_mixed_warped&lt;br /&gt;
 {&lt;br /&gt;
 	description	&amp;quot;Xray GUI overlay for glasses that shows both the normal and xray models transparently. No xray vision through opaque obstacles. Has blurred effect.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	noshadows&lt;br /&gt;
 	nonsolid&lt;br /&gt;
 &lt;br /&gt;
 	{&lt;br /&gt;
 		blend GL_SRC_ALPHA, GL_ZERO&lt;br /&gt;
 		map makealpha(guis/assets/hud/glasses_overlay)&lt;br /&gt;
 		maskcolor&lt;br /&gt;
 		alpha 0.7&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	{&lt;br /&gt;
 		blend GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA&lt;br /&gt;
 		xrayRenderMap inclusive        &lt;br /&gt;
 		program		heatHazeWithMask.vfp&lt;br /&gt;
 		vertexParm	0	time * 0.008 , time * 0.005		// texture scrolling&lt;br /&gt;
 		vertexParm	1	0.02							// magnitude of the distortion&lt;br /&gt;
 		fragmentMap	0	_xray&lt;br /&gt;
 		fragmentMap	1	textures/sfx/vp1				// the normal map for distortion&lt;br /&gt;
 		fragmentMap	2	guis/assets/hud/glasses_overlay	// the distortion blend map&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This material has the following features:&lt;br /&gt;
* The first block creates an alpha mask from the white parts of the glasses overlay image. This allows to restrict the xray vision effect to only the central parts of the overlay image, while the black parts of the overlay image will still show normal vision.&lt;br /&gt;
* The line &amp;quot;alpha 0.7&amp;quot; determines how opaque the xray vision should be. If a value less than 1, xray models would appear transparent. At values greater than 1, they would appear unnaturally bright.&lt;br /&gt;
* The first 2 lines of the second block apply the xray effect to the areas defined by the abovementioned alpha mask.&lt;br /&gt;
* All later lines in the second block are optional, applying a heat haze warp to the xray image. The speed of the warp effect can be modified with the &amp;quot;vertexParm0&amp;quot; line, while the strength of the distortion effect can be adjusted with the &amp;quot;vertexParm1&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The GUI === &lt;br /&gt;
&lt;br /&gt;
Lastly, create a gui/playertools folder in your FM, add a text file with the intended name of your GUI and change its extension to .gui (in this case: xray_glasses.gui). Then add the following contents to it:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
    	rect      0, 0, 640, 480&lt;br /&gt;
 	nocursor 1&lt;br /&gt;
 	background &amp;quot;gui_backdrop_semiopaque&amp;quot;&lt;br /&gt;
 	&lt;br /&gt;
 	windowDef SquareFit&lt;br /&gt;
 	{&lt;br /&gt;
 		forceScreenAspect&lt;br /&gt;
 		hcenter&lt;br /&gt;
     		rect      0, 0, 480, 480&lt;br /&gt;
 		background &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This GUI has the following features:&lt;br /&gt;
* it uses a background material called &amp;quot;gui_backdrop_semiopaque&amp;quot; from the core assets, which is simply a pure black image at half transparency. This fills out any space on the screen that&#039;s not covered by the overlay image itself. Alternatives would be to delete this line for no background or to use &amp;quot;gui_backdrop_opaque&amp;quot;.&lt;br /&gt;
* next comes a square window which will contain the overlay material, &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot;, which should consist of a square 1024x1024 image with an alpha channel. The keywords &amp;quot;forceScreenAspect&amp;quot; and &amp;quot;hcenter&amp;quot; will stretch the image to match the player&#039;s resolution settings.&lt;br /&gt;
* the 2nd &amp;quot;rect&amp;quot; line allows to adjust the overlay image. The first 2 numbers control its horizontal/vertical position on the screen, while the 2nd numbers control its horizontal/vertical scale.&lt;br /&gt;
&lt;br /&gt;
The GUI is now ready to use. The most suitable way would be to create and destroy it from within the scriptobject of a &amp;quot;glasses&amp;quot; inventory item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The inventory item ==&lt;br /&gt;
&lt;br /&gt;
To make an &amp;quot;xray glasses&amp;quot; inventory item, an entity definition and a scriptobject are needed. The aim is to be able to press the &amp;quot;use&amp;quot; key (default: enter) while it&#039;s selected in the inventory to create or destroy the GUI overlay.&lt;br /&gt;
&lt;br /&gt;
=== The def ===&lt;br /&gt;
&lt;br /&gt;
The def should inherit from the &amp;quot;atdm:playertool&amp;quot; and point to a custom scriptobject to be made later on. Apart from that it needs a suitable model and inventory icon.&lt;br /&gt;
&lt;br /&gt;
 entityDef atdm:xray_glasses&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:playertool&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;editor_usage&amp;quot;			&amp;quot;X-Ray glasses&amp;quot;&lt;br /&gt;
 	&amp;quot;editor_displayFolder&amp;quot;  	&amp;quot;playertools&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;model&amp;quot;				&amp;quot;models/darkmod/wearables/headgear/spectacles.ase&amp;quot;&lt;br /&gt;
 	&amp;quot;scriptobject&amp;quot;			&amp;quot;playertools_xray_glasses&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;gui&amp;quot;				&amp;quot;guis/playertools/xray_glasses.gui&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;inv_name&amp;quot;			&amp;quot;X-Ray Glasses&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/hud/inventory_icons/spectacles&amp;quot;&lt;br /&gt;
 	&amp;quot;inv_droppable&amp;quot;			&amp;quot;1&amp;quot;&lt;br /&gt;
 	&amp;quot;snd_bounce&amp;quot;			&amp;quot;tdm_impact_knife_large&amp;quot;&lt;br /&gt;
 	&amp;quot;snd_bounce_wood&amp;quot;		&amp;quot;tdm_impact_knife_large&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The scriptobject ===&lt;br /&gt;
&lt;br /&gt;
See below for the &amp;quot;xray glasses&amp;quot; scriptobject:&lt;br /&gt;
&lt;br /&gt;
 #ifndef __XRAY_GLASSES__&lt;br /&gt;
 #define __XRAY_GLASSES__&lt;br /&gt;
 &lt;br /&gt;
 float wearing_xray_glasses;&lt;br /&gt;
 &lt;br /&gt;
 object playertools_xray_glasses : player_tools&lt;br /&gt;
 {&lt;br /&gt;
 	void init();&lt;br /&gt;
 	void inventoryUse(entity userEntity, entity frobbedEntity, float buttonState);&lt;br /&gt;
 &lt;br /&gt;
 	float overlayHandle;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 void playertools_xray_glasses::init()&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void playertools_xray_glasses::inventoryUse(entity userEntity, entity frobbedEntity, float buttonState)&lt;br /&gt;
 {&lt;br /&gt;
 	if ( !wearing_xray_glasses )&lt;br /&gt;
 	{&lt;br /&gt;
 		wearing_xray_glasses = true;&lt;br /&gt;
 		overlayHandle = $player1.createOverlay(getKey(&amp;quot;gui&amp;quot;), ZOOM_GUI_LAYER);&lt;br /&gt;
 		sys.fadeIn(&#039;0 0 0&#039;, 1);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	else&lt;br /&gt;
 	{&lt;br /&gt;
 		wearing_xray_glasses = false;&lt;br /&gt;
 		$player1.destroyOverlay(overlayHandle);&lt;br /&gt;
 		sys.fadeIn(&#039;0 0 0&#039;, 1);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #endif //__XRAY_GLASSES__&lt;br /&gt;
&lt;br /&gt;
(In &#039;&#039;&#039;TDM 2.14&#039;&#039;&#039; in the above codeblock code &amp;lt;code&amp;gt;$player1.createOverlay(getKey(&amp;quot;gui&amp;quot;)&amp;lt;/code&amp;gt; should be replaced with &amp;lt;code&amp;gt;$player1.create&#039;&#039;&#039;Xray&#039;&#039;&#039;Overlay(getKey(&amp;quot;gui&amp;quot;)&amp;lt;/code&amp;gt;. Above codeblock is for TDM 2.10-2.13 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It has the following features:&lt;br /&gt;
* First off, it creates a global variable called &amp;quot;wearing_xray_glasses&amp;quot;. Since it&#039;s global, other scripts will be able to tell whether the player currently has xray glasses on. This may come in useful for you, depending on what you want to do with xrays in your map.&lt;br /&gt;
* The scriptobject itself is fairly barebones: all it needs is a function &amp;quot;inventoryUse&amp;quot; - called whenever the player presses the &amp;quot;use&amp;quot; key with it selected.&lt;br /&gt;
* The &amp;quot;inventoryUse&amp;quot; function checks for whether the &amp;quot;wearing_xray_glasses&amp;quot; variable is true. Depending on the result, it chooses to either create or destroy the xray overlay and updates the variable. You may want to add more to these 2 blocks, such as changing the frobability or solidity of certain entities.&lt;br /&gt;
* Since models can pop a little when they&#039;re loaded in by the xray system, the scriptobject has a short 1s fade from black to hide the transition.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[Xrays]]: Main article describing the xray feature.&lt;br /&gt;
&lt;br /&gt;
{{GUI}}&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Xrays_in_GUIs&amp;diff=34151</id>
		<title>Xrays in GUIs</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Xrays_in_GUIs&amp;diff=34151"/>
		<updated>2025-12-17T11:37:04Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* The scriptobject */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Xrays in GUIs ==&lt;br /&gt;
&lt;br /&gt;
Xray materials can be part of GUI overlays. This page will describe how the &amp;quot;xray glasses&amp;quot; mentioned in the main [[Xrays]] article were created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating the GUI ==&lt;br /&gt;
&lt;br /&gt;
=== The image ===&lt;br /&gt;
&lt;br /&gt;
GUI overlays should be 1024x1024 square images with an alpha channel, saved as either:&lt;br /&gt;
* .tga without RLE compression or &lt;br /&gt;
* .dds with DXT5 compression and generating mipmaps.&lt;br /&gt;
&lt;br /&gt;
The GUI will be designed to apply the xray effect only to transparent parts of the overlay image. If you have artistic details like dirt smudges, it may be useful to also create a clean version of the image for purposes of cleanly restricting the xray effect, like below:&lt;br /&gt;
&lt;br /&gt;
[[File:Glasses overlay.jpg|450px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The material ===&lt;br /&gt;
&lt;br /&gt;
The next step is to make a material that uses these images. This is what &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot; from the core assets looks like:&lt;br /&gt;
&lt;br /&gt;
 xray_glasses_overlay_mixed_warped&lt;br /&gt;
 {&lt;br /&gt;
 	description	&amp;quot;Xray GUI overlay for glasses that shows both the normal and xray models transparently. No xray vision through opaque obstacles. Has blurred effect.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	noshadows&lt;br /&gt;
 	nonsolid&lt;br /&gt;
 &lt;br /&gt;
 	{&lt;br /&gt;
 		blend GL_SRC_ALPHA, GL_ZERO&lt;br /&gt;
 		map makealpha(guis/assets/hud/glasses_overlay)&lt;br /&gt;
 		maskcolor&lt;br /&gt;
 		alpha 0.7&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	{&lt;br /&gt;
 		blend GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA&lt;br /&gt;
 		xrayRenderMap inclusive        &lt;br /&gt;
 		program		heatHazeWithMask.vfp&lt;br /&gt;
 		vertexParm	0	time * 0.008 , time * 0.005		// texture scrolling&lt;br /&gt;
 		vertexParm	1	0.02							// magnitude of the distortion&lt;br /&gt;
 		fragmentMap	0	_xray&lt;br /&gt;
 		fragmentMap	1	textures/sfx/vp1				// the normal map for distortion&lt;br /&gt;
 		fragmentMap	2	guis/assets/hud/glasses_overlay	// the distortion blend map&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This material has the following features:&lt;br /&gt;
* The first block creates an alpha mask from the white parts of the glasses overlay image. This allows to restrict the xray vision effect to only the central parts of the overlay image, while the black parts of the overlay image will still show normal vision.&lt;br /&gt;
* The line &amp;quot;alpha 0.7&amp;quot; determines how opaque the xray vision should be. If a value less than 1, xray models would appear transparent. At values greater than 1, they would appear unnaturally bright.&lt;br /&gt;
* The first 2 lines of the second block apply the xray effect to the areas defined by the abovementioned alpha mask.&lt;br /&gt;
* All later lines in the second block are optional, applying a heat haze warp to the xray image. The speed of the warp effect can be modified with the &amp;quot;vertexParm0&amp;quot; line, while the strength of the distortion effect can be adjusted with the &amp;quot;vertexParm1&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The GUI === &lt;br /&gt;
&lt;br /&gt;
Lastly, create a gui/playertools folder in your FM, add a text file with the intended name of your GUI and change its extension to .gui (in this case: xray_glasses.gui). Then add the following contents to it:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
    	rect      0, 0, 640, 480&lt;br /&gt;
 	nocursor 1&lt;br /&gt;
 	background &amp;quot;gui_backdrop_semiopaque&amp;quot;&lt;br /&gt;
 	&lt;br /&gt;
 	windowDef SquareFit&lt;br /&gt;
 	{&lt;br /&gt;
 		forceScreenAspect&lt;br /&gt;
 		hcenter&lt;br /&gt;
     		rect      0, 0, 480, 480&lt;br /&gt;
 		background &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This GUI has the following features:&lt;br /&gt;
* it uses a background material called &amp;quot;gui_backdrop_semiopaque&amp;quot; from the core assets, which is simply a pure black image at half transparency. This fills out any space on the screen that&#039;s not covered by the overlay image itself. Alternatives would be to delete this line for no background or to use &amp;quot;gui_backdrop_opaque&amp;quot;.&lt;br /&gt;
* next comes a square window which will contain the overlay material, &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot;, which should consist of a square 1024x1024 image with an alpha channel. The keywords &amp;quot;forceScreenAspect&amp;quot; and &amp;quot;hcenter&amp;quot; will stretch the image to match the player&#039;s resolution settings.&lt;br /&gt;
* the 2nd &amp;quot;rect&amp;quot; line allows to adjust the overlay image. The first 2 numbers control its horizontal/vertical position on the screen, while the 2nd numbers control its horizontal/vertical scale.&lt;br /&gt;
&lt;br /&gt;
The GUI is now ready to use. The most suitable way would be to create and destroy it from within the scriptobject of a &amp;quot;glasses&amp;quot; inventory item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The inventory item ==&lt;br /&gt;
&lt;br /&gt;
To make an &amp;quot;xray glasses&amp;quot; inventory item, an entity definition and a scriptobject are needed. The aim is to be able to press the &amp;quot;use&amp;quot; key (default: enter) while it&#039;s selected in the inventory to create or destroy the GUI overlay.&lt;br /&gt;
&lt;br /&gt;
=== The def ===&lt;br /&gt;
&lt;br /&gt;
The def should inherit from the &amp;quot;atdm:playertool&amp;quot; and point to a custom scriptobject to be made later on. Apart from that it needs a suitable model and inventory icon.&lt;br /&gt;
&lt;br /&gt;
 entityDef atdm:xray_glasses&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:playertool&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;editor_usage&amp;quot;			&amp;quot;X-Ray glasses&amp;quot;&lt;br /&gt;
 	&amp;quot;editor_displayFolder&amp;quot;  	&amp;quot;playertools&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;model&amp;quot;				&amp;quot;models/darkmod/wearables/headgear/spectacles.ase&amp;quot;&lt;br /&gt;
 	&amp;quot;scriptobject&amp;quot;			&amp;quot;playertools_xray_glasses&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;gui&amp;quot;				&amp;quot;guis/playertools/xray_glasses.gui&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;inv_name&amp;quot;			&amp;quot;X-Ray Glasses&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/hud/inventory_icons/spectacles&amp;quot;&lt;br /&gt;
 	&amp;quot;inv_droppable&amp;quot;			&amp;quot;1&amp;quot;&lt;br /&gt;
 	&amp;quot;snd_bounce&amp;quot;			&amp;quot;tdm_impact_knife_large&amp;quot;&lt;br /&gt;
 	&amp;quot;snd_bounce_wood&amp;quot;		&amp;quot;tdm_impact_knife_large&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The scriptobject ===&lt;br /&gt;
&lt;br /&gt;
See below for the &amp;quot;xray glasses&amp;quot; scriptobject:&lt;br /&gt;
&lt;br /&gt;
 #ifndef __XRAY_GLASSES__&lt;br /&gt;
 #define __XRAY_GLASSES__&lt;br /&gt;
 &lt;br /&gt;
 float wearing_xray_glasses;&lt;br /&gt;
 &lt;br /&gt;
 object playertools_xray_glasses : player_tools&lt;br /&gt;
 {&lt;br /&gt;
 	void init();&lt;br /&gt;
 	void inventoryUse(entity userEntity, entity frobbedEntity, float buttonState);&lt;br /&gt;
 &lt;br /&gt;
 	float overlayHandle;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 void playertools_xray_glasses::init()&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void playertools_xray_glasses::inventoryUse(entity userEntity, entity frobbedEntity, float buttonState)&lt;br /&gt;
 {&lt;br /&gt;
 	if ( !wearing_xray_glasses )&lt;br /&gt;
 	{&lt;br /&gt;
 		wearing_xray_glasses = true;&lt;br /&gt;
 		overlayHandle = $player1.createOverlay(getKey(&amp;quot;gui&amp;quot;), ZOOM_GUI_LAYER);&lt;br /&gt;
 		sys.fadeIn(&#039;0 0 0&#039;, 1);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	else&lt;br /&gt;
 	{&lt;br /&gt;
 		wearing_xray_glasses = false;&lt;br /&gt;
 		$player1.destroyOverlay(overlayHandle);&lt;br /&gt;
 		sys.fadeIn(&#039;0 0 0&#039;, 1);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #endif //__XRAY_GLASSES__&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;TDM 2.14&#039;&#039;&#039; in the above codeblock code &amp;lt;code&amp;gt;$player1.createOverlay(getKey(&amp;quot;gui&amp;quot;)&amp;lt;/code&amp;gt; should be replaced with &amp;lt;code&amp;gt;$player1.create&#039;&#039;&#039;Xray&#039;&#039;&#039;Overlay(getKey(&amp;quot;gui&amp;quot;)&amp;lt;/code&amp;gt;. Above codeblock is for TDM 2.10-2.13 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It has the following features:&lt;br /&gt;
* First off, it creates a global variable called &amp;quot;wearing_xray_glasses&amp;quot;. Since it&#039;s global, other scripts will be able to tell whether the player currently has xray glasses on. This may come in useful for you, depending on what you want to do with xrays in your map.&lt;br /&gt;
* The scriptobject itself is fairly barebones: all it needs is a function &amp;quot;inventoryUse&amp;quot; - called whenever the player presses the &amp;quot;use&amp;quot; key with it selected.&lt;br /&gt;
* The &amp;quot;inventoryUse&amp;quot; function checks for whether the &amp;quot;wearing_xray_glasses&amp;quot; variable is true. Depending on the result, it chooses to either create or destroy the xray overlay and updates the variable. You may want to add more to these 2 blocks, such as changing the frobability or solidity of certain entities.&lt;br /&gt;
* Since models can pop a little when they&#039;re loaded in by the xray system, the scriptobject has a short 1s fade from black to hide the transition.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[Xrays]]: Main article describing the xray feature.&lt;br /&gt;
&lt;br /&gt;
{{GUI}}&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Xrays_in_GUIs&amp;diff=34150</id>
		<title>Xrays in GUIs</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Xrays_in_GUIs&amp;diff=34150"/>
		<updated>2025-12-17T11:36:40Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* The scriptobject */ added 2.14 info about code createXrayOverlay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Xrays in GUIs ==&lt;br /&gt;
&lt;br /&gt;
Xray materials can be part of GUI overlays. This page will describe how the &amp;quot;xray glasses&amp;quot; mentioned in the main [[Xrays]] article were created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating the GUI ==&lt;br /&gt;
&lt;br /&gt;
=== The image ===&lt;br /&gt;
&lt;br /&gt;
GUI overlays should be 1024x1024 square images with an alpha channel, saved as either:&lt;br /&gt;
* .tga without RLE compression or &lt;br /&gt;
* .dds with DXT5 compression and generating mipmaps.&lt;br /&gt;
&lt;br /&gt;
The GUI will be designed to apply the xray effect only to transparent parts of the overlay image. If you have artistic details like dirt smudges, it may be useful to also create a clean version of the image for purposes of cleanly restricting the xray effect, like below:&lt;br /&gt;
&lt;br /&gt;
[[File:Glasses overlay.jpg|450px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The material ===&lt;br /&gt;
&lt;br /&gt;
The next step is to make a material that uses these images. This is what &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot; from the core assets looks like:&lt;br /&gt;
&lt;br /&gt;
 xray_glasses_overlay_mixed_warped&lt;br /&gt;
 {&lt;br /&gt;
 	description	&amp;quot;Xray GUI overlay for glasses that shows both the normal and xray models transparently. No xray vision through opaque obstacles. Has blurred effect.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	noshadows&lt;br /&gt;
 	nonsolid&lt;br /&gt;
 &lt;br /&gt;
 	{&lt;br /&gt;
 		blend GL_SRC_ALPHA, GL_ZERO&lt;br /&gt;
 		map makealpha(guis/assets/hud/glasses_overlay)&lt;br /&gt;
 		maskcolor&lt;br /&gt;
 		alpha 0.7&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	{&lt;br /&gt;
 		blend GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA&lt;br /&gt;
 		xrayRenderMap inclusive        &lt;br /&gt;
 		program		heatHazeWithMask.vfp&lt;br /&gt;
 		vertexParm	0	time * 0.008 , time * 0.005		// texture scrolling&lt;br /&gt;
 		vertexParm	1	0.02							// magnitude of the distortion&lt;br /&gt;
 		fragmentMap	0	_xray&lt;br /&gt;
 		fragmentMap	1	textures/sfx/vp1				// the normal map for distortion&lt;br /&gt;
 		fragmentMap	2	guis/assets/hud/glasses_overlay	// the distortion blend map&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This material has the following features:&lt;br /&gt;
* The first block creates an alpha mask from the white parts of the glasses overlay image. This allows to restrict the xray vision effect to only the central parts of the overlay image, while the black parts of the overlay image will still show normal vision.&lt;br /&gt;
* The line &amp;quot;alpha 0.7&amp;quot; determines how opaque the xray vision should be. If a value less than 1, xray models would appear transparent. At values greater than 1, they would appear unnaturally bright.&lt;br /&gt;
* The first 2 lines of the second block apply the xray effect to the areas defined by the abovementioned alpha mask.&lt;br /&gt;
* All later lines in the second block are optional, applying a heat haze warp to the xray image. The speed of the warp effect can be modified with the &amp;quot;vertexParm0&amp;quot; line, while the strength of the distortion effect can be adjusted with the &amp;quot;vertexParm1&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The GUI === &lt;br /&gt;
&lt;br /&gt;
Lastly, create a gui/playertools folder in your FM, add a text file with the intended name of your GUI and change its extension to .gui (in this case: xray_glasses.gui). Then add the following contents to it:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
    	rect      0, 0, 640, 480&lt;br /&gt;
 	nocursor 1&lt;br /&gt;
 	background &amp;quot;gui_backdrop_semiopaque&amp;quot;&lt;br /&gt;
 	&lt;br /&gt;
 	windowDef SquareFit&lt;br /&gt;
 	{&lt;br /&gt;
 		forceScreenAspect&lt;br /&gt;
 		hcenter&lt;br /&gt;
     		rect      0, 0, 480, 480&lt;br /&gt;
 		background &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This GUI has the following features:&lt;br /&gt;
* it uses a background material called &amp;quot;gui_backdrop_semiopaque&amp;quot; from the core assets, which is simply a pure black image at half transparency. This fills out any space on the screen that&#039;s not covered by the overlay image itself. Alternatives would be to delete this line for no background or to use &amp;quot;gui_backdrop_opaque&amp;quot;.&lt;br /&gt;
* next comes a square window which will contain the overlay material, &amp;quot;xray_glasses_overlay_mixed_warped&amp;quot;, which should consist of a square 1024x1024 image with an alpha channel. The keywords &amp;quot;forceScreenAspect&amp;quot; and &amp;quot;hcenter&amp;quot; will stretch the image to match the player&#039;s resolution settings.&lt;br /&gt;
* the 2nd &amp;quot;rect&amp;quot; line allows to adjust the overlay image. The first 2 numbers control its horizontal/vertical position on the screen, while the 2nd numbers control its horizontal/vertical scale.&lt;br /&gt;
&lt;br /&gt;
The GUI is now ready to use. The most suitable way would be to create and destroy it from within the scriptobject of a &amp;quot;glasses&amp;quot; inventory item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The inventory item ==&lt;br /&gt;
&lt;br /&gt;
To make an &amp;quot;xray glasses&amp;quot; inventory item, an entity definition and a scriptobject are needed. The aim is to be able to press the &amp;quot;use&amp;quot; key (default: enter) while it&#039;s selected in the inventory to create or destroy the GUI overlay.&lt;br /&gt;
&lt;br /&gt;
=== The def ===&lt;br /&gt;
&lt;br /&gt;
The def should inherit from the &amp;quot;atdm:playertool&amp;quot; and point to a custom scriptobject to be made later on. Apart from that it needs a suitable model and inventory icon.&lt;br /&gt;
&lt;br /&gt;
 entityDef atdm:xray_glasses&lt;br /&gt;
 {&lt;br /&gt;
 	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:playertool&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;editor_usage&amp;quot;			&amp;quot;X-Ray glasses&amp;quot;&lt;br /&gt;
 	&amp;quot;editor_displayFolder&amp;quot;  	&amp;quot;playertools&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;model&amp;quot;				&amp;quot;models/darkmod/wearables/headgear/spectacles.ase&amp;quot;&lt;br /&gt;
 	&amp;quot;scriptobject&amp;quot;			&amp;quot;playertools_xray_glasses&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;gui&amp;quot;				&amp;quot;guis/playertools/xray_glasses.gui&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;inv_name&amp;quot;			&amp;quot;X-Ray Glasses&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/hud/inventory_icons/spectacles&amp;quot;&lt;br /&gt;
 	&amp;quot;inv_droppable&amp;quot;			&amp;quot;1&amp;quot;&lt;br /&gt;
 	&amp;quot;snd_bounce&amp;quot;			&amp;quot;tdm_impact_knife_large&amp;quot;&lt;br /&gt;
 	&amp;quot;snd_bounce_wood&amp;quot;		&amp;quot;tdm_impact_knife_large&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The scriptobject ===&lt;br /&gt;
&lt;br /&gt;
See below for the &amp;quot;xray glasses&amp;quot; scriptobject:&lt;br /&gt;
&lt;br /&gt;
 #ifndef __XRAY_GLASSES__&lt;br /&gt;
 #define __XRAY_GLASSES__&lt;br /&gt;
 &lt;br /&gt;
 float wearing_xray_glasses;&lt;br /&gt;
 &lt;br /&gt;
 object playertools_xray_glasses : player_tools&lt;br /&gt;
 {&lt;br /&gt;
 	void init();&lt;br /&gt;
 	void inventoryUse(entity userEntity, entity frobbedEntity, float buttonState);&lt;br /&gt;
 &lt;br /&gt;
 	float overlayHandle;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 void playertools_xray_glasses::init()&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void playertools_xray_glasses::inventoryUse(entity userEntity, entity frobbedEntity, float buttonState)&lt;br /&gt;
 {&lt;br /&gt;
 	if ( !wearing_xray_glasses )&lt;br /&gt;
 	{&lt;br /&gt;
 		wearing_xray_glasses = true;&lt;br /&gt;
 		overlayHandle = $player1.createOverlay(getKey(&amp;quot;gui&amp;quot;), ZOOM_GUI_LAYER);&lt;br /&gt;
 		sys.fadeIn(&#039;0 0 0&#039;, 1);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	else&lt;br /&gt;
 	{&lt;br /&gt;
 		wearing_xray_glasses = false;&lt;br /&gt;
 		$player1.destroyOverlay(overlayHandle);&lt;br /&gt;
 		sys.fadeIn(&#039;0 0 0&#039;, 1);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #endif //__XRAY_GLASSES__&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;TDM 2.14&#039;&#039;&#039; in the above codeblock code &amp;lt;code&amp;gt;$player1.createOverlay(getKey(&amp;quot;gui&amp;quot;)&amp;lt;/code&amp;gt; should be replaced with &amp;lt;code&amp;gt;$player1.create&#039;&#039;&#039;Xray&#039;&#039;&#039;Overlay(getKey(&amp;quot;gui&amp;quot;)&amp;lt;/code&amp;gt;. Above codeblock is for TDM 2.10-2.13 .&lt;br /&gt;
&lt;br /&gt;
It has the following features:&lt;br /&gt;
* First off, it creates a global variable called &amp;quot;wearing_xray_glasses&amp;quot;. Since it&#039;s global, other scripts will be able to tell whether the player currently has xray glasses on. This may come in useful for you, depending on what you want to do with xrays in your map.&lt;br /&gt;
* The scriptobject itself is fairly barebones: all it needs is a function &amp;quot;inventoryUse&amp;quot; - called whenever the player presses the &amp;quot;use&amp;quot; key with it selected.&lt;br /&gt;
* The &amp;quot;inventoryUse&amp;quot; function checks for whether the &amp;quot;wearing_xray_glasses&amp;quot; variable is true. Depending on the result, it chooses to either create or destroy the xray overlay and updates the variable. You may want to add more to these 2 blocks, such as changing the frobability or solidity of certain entities.&lt;br /&gt;
* Since models can pop a little when they&#039;re loaded in by the xray system, the scriptobject has a short 1s fade from black to hide the transition.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[Xrays]]: Main article describing the xray feature.&lt;br /&gt;
&lt;br /&gt;
{{GUI}}&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Fan_Mission_Series&amp;diff=34149</id>
		<title>Fan Mission Series</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Fan_Mission_Series&amp;diff=34149"/>
		<updated>2025-12-12T11:18:03Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Volta series */ added Volta 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article serves as an overview of the known existing FM series. &lt;br /&gt;
&lt;br /&gt;
Over the years, &#039;&#039;The Dark Mod&#039;&#039; has accumulated a number of Fan Missions that form a larger interconnected series or an overarching/continuing narrative. Many series are connected by their main characters, some by other FM inter-related elements.&lt;br /&gt;
&lt;br /&gt;
The FMs of each series are sorted in chronological order. &lt;br /&gt;
&lt;br /&gt;
The number of each FM includes a link to its page on the official website. &lt;br /&gt;
&lt;br /&gt;
The name of each FM includes a link to its page on the official TDM wiki.&lt;br /&gt;
&lt;br /&gt;
Beware of potential (minor) spoilers behind the character links.&lt;br /&gt;
&lt;br /&gt;
== Official campaigns ==&lt;br /&gt;
&lt;br /&gt;
While all TDM missions are technically Fan Missions, the ones belonging to these official campaigns are as close as TDM will ever get to its own official in-game missions, or in-game story campaigns. These core missions for the base game are in slow and patient continuous development (due to TDM being a hobbyist project of a fan community), and have been gradually added to the base game over the course of several years. &lt;br /&gt;
&lt;br /&gt;
For additional series by TDM authors, please see the next section.&lt;br /&gt;
&lt;br /&gt;
=== Introduction campaign ===&lt;br /&gt;
&lt;br /&gt;
The missions of this campaign serve as a gradual introduction into the setting and gameplay of &#039;&#039;The Dark Mod&#039;&#039;. The missions are shorter and fairly easy, and gradually put the player&#039;s newly acquired skills to the test. &lt;br /&gt;
&lt;br /&gt;
Currently, this is the only series that is bundled directly as part of the base game. By installing TDM, the first three missions available to you will be part of this official mini-campaign. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Corbin|Corbin]] (protagonist), Paschal Murnerus, Moorish adventurers (background)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; In development, but currently on hiatus. 3 missions currently available, including the (generally plotless) training mission.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
!align=left|[[Training Mission (OM)|Training mission]]&lt;br /&gt;
|TDM dev team&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/9932-fan-mission-training-mission-20091017/}} &lt;br /&gt;
|2009-10-17 (original version)&lt;br /&gt;
|Training &amp;lt;br&amp;gt; Jumping/Platforming&lt;br /&gt;
|Unique. The official tutorial mission of TDM, with open-ended gameplay.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
!align=left|[[A New Job (OM)|A New Job]]&lt;br /&gt;
|Springheel&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18647-tdm-205-official-introductory-missions/}}  &lt;br /&gt;
|2017-03-14&lt;br /&gt;
|City Missions &amp;lt;br&amp;gt; Inn/Tavern&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|2 &lt;br /&gt;
!align=left|[[The Tears of Saint Lucia (OM)|The Tears of Saint Lucia]] &lt;br /&gt;
|TDM dev team&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10579-fan-mission-the-tears-of-st-lucia-20081021/}} (original version), {{Forumlink|http://forums.thedarkmod.com/topic/18647-tdm-205-official-introductory-missions/}} (current version)&lt;br /&gt;
|2008-10-21 (original version), 2017-02-14 (current version, 3.0)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|[https://www.youtube.com/watch?v=yrGxoi3LSGg Briefing] &amp;lt;br&amp;gt; &#039;&#039;{{TDM-FM|15|standalone release link}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Individual authors&#039; series ==&lt;br /&gt;
&lt;br /&gt;
The majority of missions created for &#039;&#039;The Dark Mod&#039;&#039;. For the sake of easier searching, these FM series are arranged in alphabetical order, based on their titles. In terms of release, a Single-mission (S) series consists of several single-mission FM releases over time (the commonest sort), while a Campaign (C) series is an FM containing a storyline consisting of several missions.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;The Accountant&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Corbin|Corbin]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hold.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ac1|1}} &lt;br /&gt;
!align=left|[[The Accountant 1: Thieves and Heirs (FM)|The Accountant 1: Thieves and Heirs]]&lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19164-fan-mission-the-accountant-1-thieves-and-heirs-by-goldwell-20171108/}}&lt;br /&gt;
|2017-11-08&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|[https://www.youtube.com/watch?v=Tk9DtOT4kjc Briefing]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ac2|2}} &lt;br /&gt;
!align=left|[[The Accountant 2: New in Town (FM)|The Accountant 2: New in Town]]&lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18054-fan-mission-the-accountant-2-new-in-town-by-goldwell-20160509/}} &lt;br /&gt;
|2016-05-08&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|[https://www.youtube.com/watch?v=xeuIO_GcYjQ Briefing] &amp;lt;br&amp;gt; [https://www.youtube.com/watch?v=w6e_SJ0_JOM Gameplay trailer]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Away&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hold. Planned to continue.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|away0|0}} &lt;br /&gt;
!align=left|[[Away 0: Stolen Heart (FM)|Away 0: Stolen Heart]]&lt;br /&gt;
|[[:Category:Missions by Geep|Geep]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20964-away-0-stolen-heart-by-geep-_atti_-20211112/}}&lt;br /&gt;
|2021-11-12&lt;br /&gt;
|Inn/Tavern, Jail/Prison, Museum Heist, Bank Job&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|airpocket|1}} &lt;br /&gt;
!align=left|[[Away 1: Air Pocket (FM)|Away 1: Air Pocket]]&lt;br /&gt;
|[[:Category:Missions by Geep|Geep]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20252-fan-mission-away-1-air-pocket-by-geep-20200207/}}&lt;br /&gt;
|2020-02-06&lt;br /&gt;
|Pirate/Ship&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Chronicles of Skulduggery&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Elyas_Thorne|Elyas Thorne]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|cos0_thief|0}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 0: To Catch a Thief (FM)|To Catch a Thief]] &lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21156-fan-mission-chronicles-of-skulduggery-0-to-catch-a-thief-20211120/}}&lt;br /&gt;
|2021-11-20&lt;br /&gt;
|City Missions Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|127|1}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 1: Pearls and Swine (FM)|Pearls and Swine]] &lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/topic/19439-chronicles-of-skulduggery-pearls-and-swine/}}&lt;br /&gt;
|2018-05-25&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|137|2}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 2: A Precarious Position (FM)|A Precarious Position]] &lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/topic/19975-fan-mission-chronicles-of-skulduggery-2-a-precarious-position-20190504/}} &lt;br /&gt;
|2019-05-03&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|149|3}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 3: Sacricide (FM)|Sacricide]]&lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20483-fan-mission-chronicles-of-skulduggery-3-sacricide-20200718/}}&lt;br /&gt;
|2020-07-18&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Corbin&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Corbin|Corbin]] (protagonist), cardinal Laurenti (background), Keshka brotherhood members (antagonists)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|builders_influence|1}}&lt;br /&gt;
!align=left|[[The Builder&#039;s Influence (FM)|The Builder&#039;s Influence]] &lt;br /&gt;
|[[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10811-fan-mission-the-builders-influence-20100320/}}&lt;br /&gt;
|2010-03-20 (original version), 2010-03-23 (version 2.0) &lt;br /&gt;
|Castle/Fortress&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|score_to_settle|2}}&lt;br /&gt;
!align=left|[[A Score to Settle (FM)|A Score to Settle]] &lt;br /&gt;
|[[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12894-fan-mission-48-a-score-to-settle-by-springheel-20110701/}} &lt;br /&gt;
|2011-07-01&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|follow|3}} &lt;br /&gt;
!align=left|[[A Reputation to Uphold (FM)|A Reputation to Uphold]]&lt;br /&gt;
|[[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16204-fan-mission-a-reputation-to-uphold-by-springheel/}} &lt;br /&gt;
|2014-04-18&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|matterofhours|4}}&lt;br /&gt;
!align=left|[[A Matter of Hours (FM)|A Matter of Hours]]&lt;br /&gt;
|[[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18809-fan-mission-a-matter-of-hours-by-springheel-2842017/}}&lt;br /&gt;
|2017-04-28&lt;br /&gt;
|Warehouse&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Crucible of Omens&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Description:&#039;&#039;&#039; Though originally planned as a major campaign for future releases of TDM, development progress has been halted.&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Released as Single-mission (S), possibly would have been a Campaign (C) if finished.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Development halted, campaign apparently cancelled. Only 1 mission has been completed and made available.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|bcd|1}} &lt;br /&gt;
!align=left|[[Crucible of Omens: Behind Closed Doors (FM)|Crucible of Omens: Behind Closed Doors]]&lt;br /&gt;
|[[:Category:Missions by Bikerdude|Bikerdude]], Crucible of Omens Team&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/17627-crucible-of-omens-behind-closed-doors-by-bikerdude-the-crucible-team-updated-18122015/}}&lt;br /&gt;
|2015-12-19&lt;br /&gt;
|City Missions&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Duncan Lynch&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Duncan_Lynch|Duncan Lynch]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|factoryheist|1}}&lt;br /&gt;
!align=left|[[The Factory Heist (FM)|The Factory Heist]] &lt;br /&gt;
|[[:Category:Missions by thebigh|thebigh]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20562-the-factory-heist-12-sep-2020/}}&lt;br /&gt;
|2020-09-12&lt;br /&gt;
|Warehouse&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|housecall|2}}&lt;br /&gt;
!align=left|[[A House Call (FM)|A House Call]] &lt;br /&gt;
|[[:Category:Missions by thebigh|thebigh]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21329-a-house-call-by-thebigh-mar-10-2022/}}&lt;br /&gt;
|2022-03-10&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|delisle|3}}&lt;br /&gt;
!align=left|[[The House of deLisle (FM)|The House of deLisle]] &lt;br /&gt;
|[[:Category:Missions by thebigh|thebigh]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22227-fan-mission-the-house-of-delisle/}} &lt;br /&gt;
|2023-10-01&lt;br /&gt;
|Mansion/Estate, City Missions &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;The Hare in the Snare&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Planned to continue.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hareinthesnare|1}} &lt;br /&gt;
!align=left|[[The Hare in the Snare: Part 1 (FM)|The Hare in the Snare: Part 1]]&lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]] &amp;amp; [[:Category:Missions by Kerry000|Kerry000]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20883-fan-mission-the-hare-in-the-snare-part-1}}&lt;br /&gt;
|2021-04-09&lt;br /&gt;
|City Missions &amp;lt;br&amp;gt; Inn/Tavern &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Hidden Hands&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhi|1}}&lt;br /&gt;
!align=left|[[Hidden Hands 1: Initiation (FM)|Initiation]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/19796-hidden-hands-initiation-27122018/}}&lt;br /&gt;
|2018-12-27&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; Ship&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhvf|2}}&lt;br /&gt;
!align=left|[[Hidden Hands 2: Vitalic Fever (FM)|Vitalic Fever]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20051-hidden-hands-vitalic-fever-20072019/}} &lt;br /&gt;
|2019-07-20&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhtlc|3}}&lt;br /&gt;
!align=left|[[Hidden Hands 3: The Lost Citadel (FM)|The Lost Citadel]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20490-hidden-hands-the-lost-citadel-23072020}} &lt;br /&gt;
|2020-07-23&lt;br /&gt;
|Castle/Fortress &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhta|4}}&lt;br /&gt;
!align=left|[[Hidden Hands 4: The Anomaly (FM)|The Anomaly]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20909-hidden-hands-the-anomaly}}&lt;br /&gt;
|2021-05-01&lt;br /&gt;
|Castle/Fortress  &amp;lt;br&amp;gt; Forest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;In A Time of Need&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Terry|Terry]] (supporting)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|timeofneed|1}}&lt;br /&gt;
!align=left|[[In A Time of Need 1 (FM)|In A Time Of Need]] &lt;br /&gt;
|[[:Category:Missions by Kyyrma|Kyyrma]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15354-fan-mission-in-a-time-of-need-by-kyyrma-20131112/}}&lt;br /&gt;
|2013-11-12 &lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|breakingout|2}}&lt;br /&gt;
!align=left|[[In A Time of Need 2: Breaking Out the Fence (FM)|Breaking Out the Fence]]&lt;br /&gt;
|[[:Category:Missions by Kyyrma|Kyyrma]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16091-fan-mission-breaking-out-the-fence-17032014-by-kyyrma/}} &lt;br /&gt;
|2014-03-17&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Master thief Corso&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Corso|Corso]] (protagonist), [[Thief Characters#Mingus|Mingus]] (background, supporting)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; On hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|lockner|1}}&lt;br /&gt;
!align=left|[[Lockner Manor (FM)|Lockner Manor]] &lt;br /&gt;
|[[:Category:Missions by Buck28|buck28]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16452-new-mission-lockner-manor/}}&lt;br /&gt;
|2014-08-02&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; Inn/Tavern&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|briarwood|2}}&lt;br /&gt;
!align=left|[[Briarwood Cathedral (FM)|Briarwood Cathedral]] &lt;br /&gt;
|[[:Category:Missions by Buck28|buck28]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16644-briarwood-cathedral/}} &lt;br /&gt;
|2014-10-29&lt;br /&gt;
|Church/Cathedral &amp;lt;br&amp;gt; Horror&lt;br /&gt;
|Winner of the [[Fan Mission Contests#2014 Halloween Speed-build Contest|2014 Halloween Speed-build Contest]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;No Honor Among Thieves&#039;&#039; campaign ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Campaign (C)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|nhat3|1}}&lt;br /&gt;
!align=left|[[No Honor Among Thieves (FM)|Politics]] &lt;br /&gt;
|[[:Category:Missions by Goldchocobo|Goldchocobo]], [[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Mortem Desino|Mortem Desino]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10993-fan-mission-no-honor-among-thieves-20100429/}}&lt;br /&gt;
|2010-04-29 (original version), 2015-05-30 (current version, 3.0)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|nhat3|2}} &lt;br /&gt;
!align=left|[[No Honor Among Thieves (FM)|A Night Out on the Town]]&lt;br /&gt;
|[[:Category:Missions by Goldchocobo|Goldchocobo]], [[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Mortem Desino|Mortem Desino]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10993-fan-mission-no-honor-among-thieves-20100429/}}&lt;br /&gt;
|2010-04-29 (original version), 2015-05-30 (current version, 3.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|nhat3|3}}&lt;br /&gt;
!align=left|[[No Honor Among Thieves (FM)|No Honor Among Anyone &amp;lt;br&amp;gt; (a.k.a. Forest)]] &lt;br /&gt;
|[[:Category:Missions by Goldchocobo|Goldchocobo]], [[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Mortem Desino|Mortem Desino]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10993-fan-mission-no-honor-among-thieves-20100429/}}&lt;br /&gt;
|2010-04-29 (original version), 2015-05-30 (current version, 3.0)&lt;br /&gt;
|Outdoor/Pagan, Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Of Brambles and Thorns&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|onesteptoofar|1}} &lt;br /&gt;
!align=left|[[One Step Too Far (FM)|One Step Too Far]]&lt;br /&gt;
|[[:Category:Missions by Dragofer|Dragofer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16457-fan-mission-one-step-too-far-by-dragofer-20140804/}}&lt;br /&gt;
|2014-08-04&lt;br /&gt;
|Pirate &amp;lt;br&amp;gt; Horror&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|river|2}} &lt;br /&gt;
!align=left|[[Down by the Riverside (FM)|Down by the Riverside]]&lt;br /&gt;
|[[:Category:Missions by Dragofer|Dragofer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18402-fan-mission-down-by-the-riverside-by-dragofer-20160925/}} &lt;br /&gt;
|2016-09-25&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; Ship&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Penny Dreadful&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; Gerald Foxley (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|penny1_1|1}}&lt;br /&gt;
!align=left|[[Penny Dreadful 1: The Grail of Regrets (FM)|Penny Dreadful 1: The Grail of Regrets]] &lt;br /&gt;
|[[:Category:Missions by Melan|Melan]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14952-fan-mission-penny-dreadful-by-melan-20130728/}} &lt;br /&gt;
|2013-07-27&lt;br /&gt;
|Horror &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|penny2_1|2}}&lt;br /&gt;
!align=left|[[Penny Dreadful 2: All the Way Up (FM)|Penny Dreadful 2: All the Way Up]] &lt;br /&gt;
|[[:Category:Missions by Melan|Melan]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16387-fan-mission-penny-dreadful-2-by-melan-and-bikerdude-2014078/}} &lt;br /&gt;
|2014-07-08&lt;br /&gt;
|Thieves&#039; Highway (Rooftop) &lt;br /&gt;
|[https://www.youtube.com/watch?v=WmPfCfbeWvg Trailer]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|penny3|3}}&lt;br /&gt;
!align=left|[[Penny Dreadful 3: Erasing the Trail (FM)|Penny Dreadful 3: Erasing the Trail]] &lt;br /&gt;
|[[:Category:Missions by Melan|Melan]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18200-fan-mission-penny-dreadful-3-by-melan-and-bikerdude-20160710/}} &lt;br /&gt;
|2016-07-09&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Quinn Co.&#039;&#039; campaign ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Campaign (C) (originally single mission (S))&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Completed and released.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|quinn|1}} &lt;br /&gt;
!align=left|[[Quinn Co. (FM)|La Banque Bienveillante]]&lt;br /&gt;
|[[:Category:Missions by Airship Ballet|Airship Ballet]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16702-fan-mission-la-banque-bienveillante-by-airship-ballet-20141122/}}&lt;br /&gt;
|2014-11-22 (original version), 2015-02-04 (current version, bundled with Chase Mercantile) &lt;br /&gt;
|Bank Jobs &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|quinn|2}}&lt;br /&gt;
!align=left|[[Quinn Co. (FM)|Chase Mercantile]]&lt;br /&gt;
|[[:Category:Missions by Airship Ballet|Airship Ballet]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16912-fan-mission-chase-mercantile-by-airship-ballet-20150204/}}&lt;br /&gt;
|2015-02-04 (now bundled with La Banque Bienveillante) &lt;br /&gt;
|Bank Jobs &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Sam Wilson&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Sam Wilson|Samuel &amp;quot;Sam&amp;quot; Wilson]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|sw1_ebound|1}}&lt;br /&gt;
!align=left|[[Sam Wilson 1: Eastbound (FM)|Sam Wilson 1: Eastbound]] &lt;br /&gt;
|[[:Category:Missions by jonri|jonri]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21402-fan-mission-sam-wilson-1-eastbound-2022-05-07}}&lt;br /&gt;
|2022-05-07 &lt;br /&gt;
|Train &lt;br /&gt;
|The first TDM FM to be set on a steam train.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Selis Woderose&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Selis_Woderose|Selis Woderose]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|flakebridge|1}}&lt;br /&gt;
!align=left|[[Selis Woderose 1: Flakebridge Monastery (FM)|Flakebridge Monastery]] &lt;br /&gt;
|[[:Category:Missions by Jesps|Jesps]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11991-fm-flakebridge-monastery-by-jesps/}}&lt;br /&gt;
|2010-12-05&lt;br /&gt;
|Church/Cathedral &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|rake_off|2}}&lt;br /&gt;
!align=left|[[Selis Woderose 2: Rake-off (FM)|Rake-off]]&lt;br /&gt;
|[[:Category:Missions by Jesps|Jesps]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12846-fm-rake-off-19-06-2011/}} &lt;br /&gt;
|2011-06-19&lt;br /&gt;
|Castle/Fortress &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Shadowcursed&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S) for the first mission and Campaign (C) for the second mission.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Bolen|Bolen]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing, currently on hiatus.&lt;br /&gt;
* &#039;&#039;&#039;Ancilliary materials:&#039;&#039;&#039; &#039;&#039;[http://www.amazon.com/Shadowcursed-ebook/dp/B00BYEW02M Shadowcursed]&#039;&#039; novella (e-book)&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|requiem|1}}&lt;br /&gt;
!align=left|[[Requiem (FM)|Requiem]]&lt;br /&gt;
|[[:Category:Missions by Moonbo|Moonbo]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15101-fan-mission-requiem-by-gelo-moonbo-fleisher-2013106/}}&lt;br /&gt;
|2013-10-08&lt;br /&gt;
|Church/Cathedral &amp;lt;br&amp;gt; Lost Civilizations&lt;br /&gt;
|[https://web.archive.org/web/20160409012413/https://community.eidosmontreal.com/blogs/thief-mod-winners Winner] of the 2014 official &#039;&#039;[http://forums.thedarkmod.com/topic/15956-square-enix-and-amazoncom-announce-thief-mod-contest/ Thief Mod Competition]&#039;&#039; by Square Enix &amp;amp; Amazon.com.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ahouseoflockedsecrets|2}}&lt;br /&gt;
!align=left|[[A House of Locked Secrets (FM)|A House of Locked Secrets]] &lt;br /&gt;
|[[:Category:Missions by Moonbo|Moonbo]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/17163-fan-mission-a-house-of-locked-secrets-by-gelo-moonbo-fleisher-20150528/}} &lt;br /&gt;
|2015-05-29 	&lt;br /&gt;
|Church/Cathedral &amp;lt;br&amp;gt; Mansion/Estate&lt;br /&gt;
|[https://www.youtube.com/watch?v=f5NuTJEZ8VE Trailer] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Shadows of Northdale&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Corbin|Corbin]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing, currently in gradual development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|northdale1|1}}&lt;br /&gt;
!align=left|[[Shadows of Northdale Act I (FM)|Shadows of Northdale ACT I: &amp;lt;br&amp;gt; A Curious Mind]] &lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19368-fan-mission-shadows-of-northdale-act-i-by-goldwell-20180323/}} &lt;br /&gt;
|2018-03-23&lt;br /&gt;
|City Missions&lt;br /&gt;
|[https://www.youtube.com/watch?v=p4nP3lYd6wg Briefing]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|northdale2|2}}&lt;br /&gt;
!align=left|[[Shadows of Northdale Act II (FM)|Shadows of Northdale ACT II: &amp;lt;br&amp;gt; Down the Rabbit Hole]] &lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19936-fan-mission-shadows-of-northdale-act-ii-by-goldwell-20190320/}} &lt;br /&gt;
|2019-03-20&lt;br /&gt;
|City Missions&lt;br /&gt;
|[https://www.youtube.com/watch?v=KO-eIOX9nqI Briefing]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;St Alban&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|caduceus|1}}&lt;br /&gt;
!align=left|[[St Alban 1: The Caduceus of St Alban (FM)|The Caduceus of St. Alban]] &lt;br /&gt;
|[[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11644-the-caduceus-of-st-alban-vertical-fm-contest-entry-aug-8th-2010/}} &lt;br /&gt;
|2010-08-23 (original version), 2010-08-26 (version 1.5.5)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|cathedral|2}}&lt;br /&gt;
!align=left|[[St Alban 2: St Albans Cathedral (FM)|St. Albans Cathedral]]&lt;br /&gt;
|[[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16343-fan-mission-st-albans-cathedral-v20-11062014/}} (current, 2.0 version)&lt;br /&gt;
|2010-11-01 (original version), 2014-06-11 (version 2.0)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Talbot&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; Talbot&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing, currently on hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|returntothecity|1}} &lt;br /&gt;
!align=left|[[Talbot 2: Return to the City (FM)|Return to the City]]&lt;br /&gt;
|[[:Category:Missions by Melan|Melan]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10509-fan-mission-return-to-the-city-by-melan-20100110/}} (original version), {{Forumlink|http://forums.thedarkmod.com/topic/12390-fan-mission-return-to-the-city-v2-01032011/}} (version 2.0)&lt;br /&gt;
|2010-01-10 (original version), 2015-01-03 (2.0), 2015-01-03 (current version, 3.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|Winner of the [[Fan Mission Contests#2009 Grand Christmas Contest|2009 Grand Christmas Contest]].&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|fauchard1_1|2}}&lt;br /&gt;
!align=left|[[Talbot 3: Fiasco at Fauchard Street (FM)|Fiasco at Fauchard Street]]&lt;br /&gt;
|[[:Category:Missions by Melan|Melan]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12655-fan-mission-fiasco-at-fauchard-street-by-melan-20110501/}} &lt;br /&gt;
|2011-05-01&lt;br /&gt;
|Thieves&#039; Highway (Rooftop)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; [[Sir Talbot&#039;s Collateral (FM)|Sir Talbot&#039;s Collateral]] by Bikerdude and Baal is actually an unrelated mission, just with a similarly named character.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;The Lieutenant&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Description:&#039;&#039;&#039; The series follows the cases of an intelligence officer.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; The titular Lieutenant &lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|inplainsight|1}}&lt;br /&gt;
!align=left|[[The Lieutenant 1: In Plain Sight (FM)|The Lieutenant 1: In Plain Sight]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21549-fan-mission-in-plain-sight-by-frost_salamander-20220807}} &lt;br /&gt;
|2022-08-07&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|highex|2}}&lt;br /&gt;
!align=left|[[The Lieutenant 2: High Expectations (FM)|The Lieutenant 2: High Expectations]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21837-fan-mission-the-lieutenant-2-high-expectations-by-frost_salamander-20230424}} &lt;br /&gt;
|2023-04-24&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; City Missions &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|foreignaffaris|3}}&lt;br /&gt;
!align=left|[[The Lieutenant 3: Foreign Affairs (FM)|The Lieutenant 3: Foreign Affairs]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22452-fan-mission-the-lieutenant-3-foreign-affairs-by-frost_salamander}} &lt;br /&gt;
|2024/11/08&lt;br /&gt;
|City Missions, Moorish Architecture&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|reciprocalgambit|4}}&lt;br /&gt;
!align=left|[[The Lieutenant 4: A Reciprocal Gambit (FM)|The Lieutenant 4: A Reciprocal Gambit]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22945-fan-mission-the-lieutenant-4-a-reciprocal-gambit-by-frost_salamander}} &lt;br /&gt;
|2025-06-18&lt;br /&gt;
|City Missions, Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Thief&#039;s Den&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Description:&#039;&#039;&#039; The &#039;&#039;de facto&#039;&#039; oldest FM series in &#039;&#039;The Dark Mod&#039;&#039;. Follow the skillful thief Farrell as he navigates the criminal underworld of [[The City|Bridgeport]] and the surrounding world.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Farrell|Farrell]] (protagonist), [[Thief Characters#Sebastian_Creep|Sebastian Creep]] (supporting)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|thiefsden|1}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 1: Thief&#039;s Den (FM)|Thief&#039;s Den]] &lt;br /&gt;
|[[:Category:Missions by Fidcal|Fidcal]], [[:Category:Missions by Greebo|Greebo]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11347-fan-mission-thiefs-den-re-release-by-fidcal20100704/}} &lt;br /&gt;
|2008-01-18 (original version), 2010-07-04 (version 2.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|chalice1_1|2}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 2: The Chalice of Kings (FM)|The Chalice of Kings]] &lt;br /&gt;
|[[:Category:Missions by Fidcal|Fidcal]] (original version), [[:Category:Missions by Bikerdude|Bikerdude]], [[:Category:Missions by Xarg|Xarg]] (edits, version 2.0)&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/9935-fan-mission-chalice-of-kings-by-fidcal-20091017/}} &lt;br /&gt;
|2009-10-15 (original version), 2015-09-24 (version 2.0)&lt;br /&gt;
|Castle/Fortress&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|heartv2|3}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 3: The Heart of Lone Salvation (FM)|The Heart of Lone Salvation]] &lt;br /&gt;
|[[:Category:Missions by Fidcal|Fidcal]], Baddcog, [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10878-fan-mission-the-heart-of-lone-salvation-by-fidcal-baddcog-bikerdude-20100402/}}&lt;br /&gt;
|2010-04-02 (original version), 2014-04-12 (version 2.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|alchemist|4}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 4: The Alchemist (FM)|The Alchemist]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]], [[:Category:Missions by Fidcal|Fidcal]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11170-fan-mission-the-alchemist-by-sotha-fidcal20100601/}}&lt;br /&gt;
|2010-06-01 (original version) 2010-06-04 (update)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Thomas Porter&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Thomas Porter|Thomas Porter]] (protagonist), [[Thief_Characters#Lark Butternose|Lark Butternose]] (supporting), [[Noble/Wealthy_Characters#Godfrey_Knighton|Godfrey Knighton]] (background)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Concluded. &lt;br /&gt;
* &#039;&#039;&#039;Overview:&#039;&#039;&#039; [http://forums.thedarkmod.com/topic/15179-the-thomas-porter-series/ Courtesy of] Sotha.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|mandrasola|1}}&lt;br /&gt;
!align=left|[[Thomas Porter 1: Mandrasola (FM)|Mandrasola]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12575-fan-mission-mandrasola-by-sotha-20110410/}} &lt;br /&gt;
|2011-04-10&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|knighton_manor|2}}&lt;br /&gt;
!align=left|[[Thomas Porter 2: Knighton Manor (FM)|Knighton Manor]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11898-fan-mission-the-knighton-manor-by-sotha-20101109/}} &lt;br /&gt;
|2010-11-09&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|beleaguered_fence|3}}&lt;br /&gt;
!align=left|[[Thomas Porter 3: The Beleaguered Fence (FM)|The Beleaguered Fence]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11298-fan-mission-the-beleaguered-fence-by-sotha-20100623/}}&lt;br /&gt;
|2010-06-23&lt;br /&gt;
|Jail/Prison&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|glenham_tower|4}}&lt;br /&gt;
!align=left|[[Thomas Porter 4: Glenham Tower (FM)|Glenham Tower]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11423-fan-mission-the-glenham-tower-by-sotha-20100717/}}&lt;br /&gt;
|2010-07-17&lt;br /&gt;
|Castle/Fortress &amp;lt;br&amp;gt; Horror&lt;br /&gt;
|Winner of the [[Fan_Mission_Contests#2010_Summer_Vertical_Contest|2010 Summer Vertical Contest]].&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|transaction|5}}&lt;br /&gt;
!align=left|[[Thomas Porter 5: The Transaction (FM)|The Transaction]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12408-fan-mission-the-transaction-by-sotha-20110304/}}&lt;br /&gt;
|2011-03-04&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|phrase_book|6}}&lt;br /&gt;
!align=left|[[Thomas Porter 6: The Phrase Book (FM)|The Phrase Book]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/13799-fan-mission-the-phrase-book-by-sotha-20120512/}}&lt;br /&gt;
|2012-05-11 &lt;br /&gt;
|City Missions &amp;lt;br&amp;gt; Thieves&#039; Highway (Rooftop)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|lich_queens_demise|7}} &lt;br /&gt;
!align=left|[[Thomas Porter 7: The Lich Queen&#039;s Demise (FM)|The Lich Queen&#039;s Demise]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14826-fan-mission-the-lich-queens-demise-by-sotha-20130520/}}&lt;br /&gt;
|2013-05-20&lt;br /&gt;
|Horror&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Ulysses&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; Ulysses (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ulysses_genesis|1}}&lt;br /&gt;
!align=left|[[Ulysses 1: Genesis (FM)|Ulysses: Genesis]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16428-fan-mission-ulysses-genesis-by-sotha-20140724/}}&lt;br /&gt;
|2014-07-24&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|u2_flock|2}}&lt;br /&gt;
!align=left|[[Ulysses 2: Protecting the Flock (FM)|Ulysses: Protecting the Flock]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/17162-fan-mission-ulysses-2-protecting-the-flock-by-sotha-20150528/}}&lt;br /&gt;
|2015-05-28&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Vengeance for a Thief&#039;&#039; campaign ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S) for the first two published missions, Campaign (C) for the final release that also includes a new first mission.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|vfat3|1}}&lt;br /&gt;
!align=left|[[Vengeance for a Thief (FM)|The Angel&#039;s Tear]] &lt;br /&gt;
|[[:Category:Missions by Sir Taffsalot|Sir Taffsalot]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16953-the-complete-vengeance-for-a-thief-campaign/}} &lt;br /&gt;
|2015-02-16&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|vfat1|2}}&lt;br /&gt;
!align=left|[[Vengeance for a Thief (FM)|A Pawn in the Game]] &lt;br /&gt;
|[[:Category:Missions by Sir Taffsalot|Sir Taffsalot]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14068-fan-mission-vengeance-for-a-thief-part-1-by-sir-taffsalot-06092012/}} &lt;br /&gt;
|2012-09-06&lt;br /&gt;
|Jail/Prison&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|vfat2|3}}&lt;br /&gt;
!align=left|[[Vengeance for a Thief (FM)|The Art of Revenge]]&lt;br /&gt;
|[[:Category:Missions by Sir Taffsalot|Sir Taffsalot]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15051-fan-mission-vengeance-for-a-thief-part-2-by-sir-taffsalot-06092013/}} &lt;br /&gt;
|2013-09-06&lt;br /&gt;
|Museum Heists&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Volta&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|volta1_3|1}} &lt;br /&gt;
!align=left|[[Volta I: The Stone (FM)|Volta and the Stone]]&lt;br /&gt;
|[[:Category:Missions by Kingsal|Kingsal]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18087-fan-mission-volta-and-the-stone-by-kingsal-05262016/}}&lt;br /&gt;
|2016-05-27&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|cauldron_v2_2|2}} &lt;br /&gt;
!align=left|[[Volta II: Cauldron of the Gods (FM)|Volta 2: Cauldron of the Gods]]&lt;br /&gt;
|[[:Category:Missions by Kingsal|Kingsal]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19207-fan-mission-volta-ii-cauldron-of-the-gods-by-kingsal-113017-update-v20/}}&lt;br /&gt;
|2017-11-30 &lt;br /&gt;
|Lost Civilizations&lt;br /&gt;
|[https://www.youtube.com/watch?v=SRRCRVFHruc Briefing]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|gemcutter|3}} &lt;br /&gt;
!align=left|[[Volta III: Gemcutter (FM)|Volta 3: Gemcutter]]&lt;br /&gt;
|[[:Category:Missions by Kingsal|Kingsal]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22566-fan-mission-volta-iii-gemcutter-15th-anniversary-contest/}}&lt;br /&gt;
|2024-10-17&lt;br /&gt;
|Ship, City Missions, Moorish Architecture&lt;br /&gt;
|[https://www.youtube.com/watch?v=U9TbKihp7qM Briefing]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;William Steele&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#William_Steele|William Steele]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Concluded. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws1_north|1}}&lt;br /&gt;
!align=left|[[William Steele 1: In the North (FM)|In the North]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14214-fan-mission-in-the-north-by-grayman-20121020/}}&lt;br /&gt;
|2012-10-20&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws2_homeagain|2}}&lt;br /&gt;
!align=left|[[William Steele 2: Home Again (FM)|Home Again]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15919-fan-mission-home-again-by-grayman-2014212/}}&lt;br /&gt;
|2014-02-12&lt;br /&gt;
|Thieves&#039; Highway (Rooftop)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws3_cleighmoor|3}}&lt;br /&gt;
!align=left|[[William Steele 3: Cleighmoor (FM)|Cleighmoor]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16011-fan-mission-cleighmoor-by-grayman-201431/}}&lt;br /&gt;
|2014-03-01&lt;br /&gt;
|Sewers &amp;lt;br&amp;gt; Jail/Prison&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws4_warrens|4}}&lt;br /&gt;
!align=left|[[William Steele 4: The Warrens (FM)|The Warrens]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19618-fan-mission-the-warrens-by-grayman-201891/}}&lt;br /&gt;
|2018-09-01&lt;br /&gt;
|City Missions &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws5_commerce|5}}&lt;br /&gt;
!align=left|[[William Steele 5: Commerce Bank (FM)|Commerce Bank]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19957-fan-mission-commerce-bank-by-grayman-2019410/}}&lt;br /&gt;
|2019-04-10&lt;br /&gt;
|Bank Jobs &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&lt;br /&gt;
For a key to the descriptions of each Mission Type, please see [[Fan_Missions_for_The_Dark_Mod#Table_notes|this overview]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[[Fan Missions for The Dark Mod]] - Main article on TDM fan missions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Fan Missions|S]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Fan_Mission_Series&amp;diff=34148</id>
		<title>Fan Mission Series</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Fan_Mission_Series&amp;diff=34148"/>
		<updated>2025-12-12T11:07:05Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Vengeance for a Thief campaign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article serves as an overview of the known existing FM series. &lt;br /&gt;
&lt;br /&gt;
Over the years, &#039;&#039;The Dark Mod&#039;&#039; has accumulated a number of Fan Missions that form a larger interconnected series or an overarching/continuing narrative. Many series are connected by their main characters, some by other FM inter-related elements.&lt;br /&gt;
&lt;br /&gt;
The FMs of each series are sorted in chronological order. &lt;br /&gt;
&lt;br /&gt;
The number of each FM includes a link to its page on the official website. &lt;br /&gt;
&lt;br /&gt;
The name of each FM includes a link to its page on the official TDM wiki.&lt;br /&gt;
&lt;br /&gt;
Beware of potential (minor) spoilers behind the character links.&lt;br /&gt;
&lt;br /&gt;
== Official campaigns ==&lt;br /&gt;
&lt;br /&gt;
While all TDM missions are technically Fan Missions, the ones belonging to these official campaigns are as close as TDM will ever get to its own official in-game missions, or in-game story campaigns. These core missions for the base game are in slow and patient continuous development (due to TDM being a hobbyist project of a fan community), and have been gradually added to the base game over the course of several years. &lt;br /&gt;
&lt;br /&gt;
For additional series by TDM authors, please see the next section.&lt;br /&gt;
&lt;br /&gt;
=== Introduction campaign ===&lt;br /&gt;
&lt;br /&gt;
The missions of this campaign serve as a gradual introduction into the setting and gameplay of &#039;&#039;The Dark Mod&#039;&#039;. The missions are shorter and fairly easy, and gradually put the player&#039;s newly acquired skills to the test. &lt;br /&gt;
&lt;br /&gt;
Currently, this is the only series that is bundled directly as part of the base game. By installing TDM, the first three missions available to you will be part of this official mini-campaign. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Corbin|Corbin]] (protagonist), Paschal Murnerus, Moorish adventurers (background)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; In development, but currently on hiatus. 3 missions currently available, including the (generally plotless) training mission.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
!align=left|[[Training Mission (OM)|Training mission]]&lt;br /&gt;
|TDM dev team&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/9932-fan-mission-training-mission-20091017/}} &lt;br /&gt;
|2009-10-17 (original version)&lt;br /&gt;
|Training &amp;lt;br&amp;gt; Jumping/Platforming&lt;br /&gt;
|Unique. The official tutorial mission of TDM, with open-ended gameplay.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
!align=left|[[A New Job (OM)|A New Job]]&lt;br /&gt;
|Springheel&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18647-tdm-205-official-introductory-missions/}}  &lt;br /&gt;
|2017-03-14&lt;br /&gt;
|City Missions &amp;lt;br&amp;gt; Inn/Tavern&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|2 &lt;br /&gt;
!align=left|[[The Tears of Saint Lucia (OM)|The Tears of Saint Lucia]] &lt;br /&gt;
|TDM dev team&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10579-fan-mission-the-tears-of-st-lucia-20081021/}} (original version), {{Forumlink|http://forums.thedarkmod.com/topic/18647-tdm-205-official-introductory-missions/}} (current version)&lt;br /&gt;
|2008-10-21 (original version), 2017-02-14 (current version, 3.0)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|[https://www.youtube.com/watch?v=yrGxoi3LSGg Briefing] &amp;lt;br&amp;gt; &#039;&#039;{{TDM-FM|15|standalone release link}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Individual authors&#039; series ==&lt;br /&gt;
&lt;br /&gt;
The majority of missions created for &#039;&#039;The Dark Mod&#039;&#039;. For the sake of easier searching, these FM series are arranged in alphabetical order, based on their titles. In terms of release, a Single-mission (S) series consists of several single-mission FM releases over time (the commonest sort), while a Campaign (C) series is an FM containing a storyline consisting of several missions.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;The Accountant&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Corbin|Corbin]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hold.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ac1|1}} &lt;br /&gt;
!align=left|[[The Accountant 1: Thieves and Heirs (FM)|The Accountant 1: Thieves and Heirs]]&lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19164-fan-mission-the-accountant-1-thieves-and-heirs-by-goldwell-20171108/}}&lt;br /&gt;
|2017-11-08&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|[https://www.youtube.com/watch?v=Tk9DtOT4kjc Briefing]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ac2|2}} &lt;br /&gt;
!align=left|[[The Accountant 2: New in Town (FM)|The Accountant 2: New in Town]]&lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18054-fan-mission-the-accountant-2-new-in-town-by-goldwell-20160509/}} &lt;br /&gt;
|2016-05-08&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|[https://www.youtube.com/watch?v=xeuIO_GcYjQ Briefing] &amp;lt;br&amp;gt; [https://www.youtube.com/watch?v=w6e_SJ0_JOM Gameplay trailer]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Away&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hold. Planned to continue.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|away0|0}} &lt;br /&gt;
!align=left|[[Away 0: Stolen Heart (FM)|Away 0: Stolen Heart]]&lt;br /&gt;
|[[:Category:Missions by Geep|Geep]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20964-away-0-stolen-heart-by-geep-_atti_-20211112/}}&lt;br /&gt;
|2021-11-12&lt;br /&gt;
|Inn/Tavern, Jail/Prison, Museum Heist, Bank Job&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|airpocket|1}} &lt;br /&gt;
!align=left|[[Away 1: Air Pocket (FM)|Away 1: Air Pocket]]&lt;br /&gt;
|[[:Category:Missions by Geep|Geep]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20252-fan-mission-away-1-air-pocket-by-geep-20200207/}}&lt;br /&gt;
|2020-02-06&lt;br /&gt;
|Pirate/Ship&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Chronicles of Skulduggery&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Elyas_Thorne|Elyas Thorne]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|cos0_thief|0}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 0: To Catch a Thief (FM)|To Catch a Thief]] &lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21156-fan-mission-chronicles-of-skulduggery-0-to-catch-a-thief-20211120/}}&lt;br /&gt;
|2021-11-20&lt;br /&gt;
|City Missions Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|127|1}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 1: Pearls and Swine (FM)|Pearls and Swine]] &lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/topic/19439-chronicles-of-skulduggery-pearls-and-swine/}}&lt;br /&gt;
|2018-05-25&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|137|2}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 2: A Precarious Position (FM)|A Precarious Position]] &lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/topic/19975-fan-mission-chronicles-of-skulduggery-2-a-precarious-position-20190504/}} &lt;br /&gt;
|2019-05-03&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|149|3}}&lt;br /&gt;
!align=left|[[Chronicles of Skulduggery 3: Sacricide (FM)|Sacricide]]&lt;br /&gt;
|[[:Category:Missions by Bienie|Bienie]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20483-fan-mission-chronicles-of-skulduggery-3-sacricide-20200718/}}&lt;br /&gt;
|2020-07-18&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Corbin&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Corbin|Corbin]] (protagonist), cardinal Laurenti (background), Keshka brotherhood members (antagonists)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|builders_influence|1}}&lt;br /&gt;
!align=left|[[The Builder&#039;s Influence (FM)|The Builder&#039;s Influence]] &lt;br /&gt;
|[[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10811-fan-mission-the-builders-influence-20100320/}}&lt;br /&gt;
|2010-03-20 (original version), 2010-03-23 (version 2.0) &lt;br /&gt;
|Castle/Fortress&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|score_to_settle|2}}&lt;br /&gt;
!align=left|[[A Score to Settle (FM)|A Score to Settle]] &lt;br /&gt;
|[[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12894-fan-mission-48-a-score-to-settle-by-springheel-20110701/}} &lt;br /&gt;
|2011-07-01&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|follow|3}} &lt;br /&gt;
!align=left|[[A Reputation to Uphold (FM)|A Reputation to Uphold]]&lt;br /&gt;
|[[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16204-fan-mission-a-reputation-to-uphold-by-springheel/}} &lt;br /&gt;
|2014-04-18&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|matterofhours|4}}&lt;br /&gt;
!align=left|[[A Matter of Hours (FM)|A Matter of Hours]]&lt;br /&gt;
|[[:Category:Missions by Springheel|Springheel]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18809-fan-mission-a-matter-of-hours-by-springheel-2842017/}}&lt;br /&gt;
|2017-04-28&lt;br /&gt;
|Warehouse&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Crucible of Omens&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Description:&#039;&#039;&#039; Though originally planned as a major campaign for future releases of TDM, development progress has been halted.&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Released as Single-mission (S), possibly would have been a Campaign (C) if finished.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Development halted, campaign apparently cancelled. Only 1 mission has been completed and made available.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|bcd|1}} &lt;br /&gt;
!align=left|[[Crucible of Omens: Behind Closed Doors (FM)|Crucible of Omens: Behind Closed Doors]]&lt;br /&gt;
|[[:Category:Missions by Bikerdude|Bikerdude]], Crucible of Omens Team&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/17627-crucible-of-omens-behind-closed-doors-by-bikerdude-the-crucible-team-updated-18122015/}}&lt;br /&gt;
|2015-12-19&lt;br /&gt;
|City Missions&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Duncan Lynch&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Duncan_Lynch|Duncan Lynch]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|factoryheist|1}}&lt;br /&gt;
!align=left|[[The Factory Heist (FM)|The Factory Heist]] &lt;br /&gt;
|[[:Category:Missions by thebigh|thebigh]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20562-the-factory-heist-12-sep-2020/}}&lt;br /&gt;
|2020-09-12&lt;br /&gt;
|Warehouse&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|housecall|2}}&lt;br /&gt;
!align=left|[[A House Call (FM)|A House Call]] &lt;br /&gt;
|[[:Category:Missions by thebigh|thebigh]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21329-a-house-call-by-thebigh-mar-10-2022/}}&lt;br /&gt;
|2022-03-10&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|delisle|3}}&lt;br /&gt;
!align=left|[[The House of deLisle (FM)|The House of deLisle]] &lt;br /&gt;
|[[:Category:Missions by thebigh|thebigh]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22227-fan-mission-the-house-of-delisle/}} &lt;br /&gt;
|2023-10-01&lt;br /&gt;
|Mansion/Estate, City Missions &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;The Hare in the Snare&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Planned to continue.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hareinthesnare|1}} &lt;br /&gt;
!align=left|[[The Hare in the Snare: Part 1 (FM)|The Hare in the Snare: Part 1]]&lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]] &amp;amp; [[:Category:Missions by Kerry000|Kerry000]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20883-fan-mission-the-hare-in-the-snare-part-1}}&lt;br /&gt;
|2021-04-09&lt;br /&gt;
|City Missions &amp;lt;br&amp;gt; Inn/Tavern &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Hidden Hands&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhi|1}}&lt;br /&gt;
!align=left|[[Hidden Hands 1: Initiation (FM)|Initiation]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/19796-hidden-hands-initiation-27122018/}}&lt;br /&gt;
|2018-12-27&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; Ship&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhvf|2}}&lt;br /&gt;
!align=left|[[Hidden Hands 2: Vitalic Fever (FM)|Vitalic Fever]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20051-hidden-hands-vitalic-fever-20072019/}} &lt;br /&gt;
|2019-07-20&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhtlc|3}}&lt;br /&gt;
!align=left|[[Hidden Hands 3: The Lost Citadel (FM)|The Lost Citadel]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20490-hidden-hands-the-lost-citadel-23072020}} &lt;br /&gt;
|2020-07-23&lt;br /&gt;
|Castle/Fortress &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|hhta|4}}&lt;br /&gt;
!align=left|[[Hidden Hands 4: The Anomaly (FM)|The Anomaly]] &lt;br /&gt;
|[[:Category:Missions by JackFarmer|JackFarmer]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20909-hidden-hands-the-anomaly}}&lt;br /&gt;
|2021-05-01&lt;br /&gt;
|Castle/Fortress  &amp;lt;br&amp;gt; Forest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;In A Time of Need&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Terry|Terry]] (supporting)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|timeofneed|1}}&lt;br /&gt;
!align=left|[[In A Time of Need 1 (FM)|In A Time Of Need]] &lt;br /&gt;
|[[:Category:Missions by Kyyrma|Kyyrma]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15354-fan-mission-in-a-time-of-need-by-kyyrma-20131112/}}&lt;br /&gt;
|2013-11-12 &lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|breakingout|2}}&lt;br /&gt;
!align=left|[[In A Time of Need 2: Breaking Out the Fence (FM)|Breaking Out the Fence]]&lt;br /&gt;
|[[:Category:Missions by Kyyrma|Kyyrma]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16091-fan-mission-breaking-out-the-fence-17032014-by-kyyrma/}} &lt;br /&gt;
|2014-03-17&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Master thief Corso&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Corso|Corso]] (protagonist), [[Thief Characters#Mingus|Mingus]] (background, supporting)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; On hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|lockner|1}}&lt;br /&gt;
!align=left|[[Lockner Manor (FM)|Lockner Manor]] &lt;br /&gt;
|[[:Category:Missions by Buck28|buck28]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16452-new-mission-lockner-manor/}}&lt;br /&gt;
|2014-08-02&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; Inn/Tavern&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|briarwood|2}}&lt;br /&gt;
!align=left|[[Briarwood Cathedral (FM)|Briarwood Cathedral]] &lt;br /&gt;
|[[:Category:Missions by Buck28|buck28]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16644-briarwood-cathedral/}} &lt;br /&gt;
|2014-10-29&lt;br /&gt;
|Church/Cathedral &amp;lt;br&amp;gt; Horror&lt;br /&gt;
|Winner of the [[Fan Mission Contests#2014 Halloween Speed-build Contest|2014 Halloween Speed-build Contest]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;No Honor Among Thieves&#039;&#039; campaign ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Campaign (C)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|nhat3|1}}&lt;br /&gt;
!align=left|[[No Honor Among Thieves (FM)|Politics]] &lt;br /&gt;
|[[:Category:Missions by Goldchocobo|Goldchocobo]], [[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Mortem Desino|Mortem Desino]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10993-fan-mission-no-honor-among-thieves-20100429/}}&lt;br /&gt;
|2010-04-29 (original version), 2015-05-30 (current version, 3.0)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|nhat3|2}} &lt;br /&gt;
!align=left|[[No Honor Among Thieves (FM)|A Night Out on the Town]]&lt;br /&gt;
|[[:Category:Missions by Goldchocobo|Goldchocobo]], [[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Mortem Desino|Mortem Desino]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10993-fan-mission-no-honor-among-thieves-20100429/}}&lt;br /&gt;
|2010-04-29 (original version), 2015-05-30 (current version, 3.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|nhat3|3}}&lt;br /&gt;
!align=left|[[No Honor Among Thieves (FM)|No Honor Among Anyone &amp;lt;br&amp;gt; (a.k.a. Forest)]] &lt;br /&gt;
|[[:Category:Missions by Goldchocobo|Goldchocobo]], [[:Category:Missions by RailGun|RailGun]], [[:Category:Missions by Mortem Desino|Mortem Desino]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10993-fan-mission-no-honor-among-thieves-20100429/}}&lt;br /&gt;
|2010-04-29 (original version), 2015-05-30 (current version, 3.0)&lt;br /&gt;
|Outdoor/Pagan, Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Of Brambles and Thorns&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|onesteptoofar|1}} &lt;br /&gt;
!align=left|[[One Step Too Far (FM)|One Step Too Far]]&lt;br /&gt;
|[[:Category:Missions by Dragofer|Dragofer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16457-fan-mission-one-step-too-far-by-dragofer-20140804/}}&lt;br /&gt;
|2014-08-04&lt;br /&gt;
|Pirate &amp;lt;br&amp;gt; Horror&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|river|2}} &lt;br /&gt;
!align=left|[[Down by the Riverside (FM)|Down by the Riverside]]&lt;br /&gt;
|[[:Category:Missions by Dragofer|Dragofer]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18402-fan-mission-down-by-the-riverside-by-dragofer-20160925/}} &lt;br /&gt;
|2016-09-25&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; Ship&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Penny Dreadful&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; Gerald Foxley (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|penny1_1|1}}&lt;br /&gt;
!align=left|[[Penny Dreadful 1: The Grail of Regrets (FM)|Penny Dreadful 1: The Grail of Regrets]] &lt;br /&gt;
|[[:Category:Missions by Melan|Melan]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14952-fan-mission-penny-dreadful-by-melan-20130728/}} &lt;br /&gt;
|2013-07-27&lt;br /&gt;
|Horror &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|penny2_1|2}}&lt;br /&gt;
!align=left|[[Penny Dreadful 2: All the Way Up (FM)|Penny Dreadful 2: All the Way Up]] &lt;br /&gt;
|[[:Category:Missions by Melan|Melan]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16387-fan-mission-penny-dreadful-2-by-melan-and-bikerdude-2014078/}} &lt;br /&gt;
|2014-07-08&lt;br /&gt;
|Thieves&#039; Highway (Rooftop) &lt;br /&gt;
|[https://www.youtube.com/watch?v=WmPfCfbeWvg Trailer]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|penny3|3}}&lt;br /&gt;
!align=left|[[Penny Dreadful 3: Erasing the Trail (FM)|Penny Dreadful 3: Erasing the Trail]] &lt;br /&gt;
|[[:Category:Missions by Melan|Melan]], [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18200-fan-mission-penny-dreadful-3-by-melan-and-bikerdude-20160710/}} &lt;br /&gt;
|2016-07-09&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Quinn Co.&#039;&#039; campaign ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Campaign (C) (originally single mission (S))&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Completed and released.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|quinn|1}} &lt;br /&gt;
!align=left|[[Quinn Co. (FM)|La Banque Bienveillante]]&lt;br /&gt;
|[[:Category:Missions by Airship Ballet|Airship Ballet]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16702-fan-mission-la-banque-bienveillante-by-airship-ballet-20141122/}}&lt;br /&gt;
|2014-11-22 (original version), 2015-02-04 (current version, bundled with Chase Mercantile) &lt;br /&gt;
|Bank Jobs &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|quinn|2}}&lt;br /&gt;
!align=left|[[Quinn Co. (FM)|Chase Mercantile]]&lt;br /&gt;
|[[:Category:Missions by Airship Ballet|Airship Ballet]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16912-fan-mission-chase-mercantile-by-airship-ballet-20150204/}}&lt;br /&gt;
|2015-02-04 (now bundled with La Banque Bienveillante) &lt;br /&gt;
|Bank Jobs &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Sam Wilson&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Sam Wilson|Samuel &amp;quot;Sam&amp;quot; Wilson]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|sw1_ebound|1}}&lt;br /&gt;
!align=left|[[Sam Wilson 1: Eastbound (FM)|Sam Wilson 1: Eastbound]] &lt;br /&gt;
|[[:Category:Missions by jonri|jonri]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21402-fan-mission-sam-wilson-1-eastbound-2022-05-07}}&lt;br /&gt;
|2022-05-07 &lt;br /&gt;
|Train &lt;br /&gt;
|The first TDM FM to be set on a steam train.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Selis Woderose&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Selis_Woderose|Selis Woderose]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|flakebridge|1}}&lt;br /&gt;
!align=left|[[Selis Woderose 1: Flakebridge Monastery (FM)|Flakebridge Monastery]] &lt;br /&gt;
|[[:Category:Missions by Jesps|Jesps]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11991-fm-flakebridge-monastery-by-jesps/}}&lt;br /&gt;
|2010-12-05&lt;br /&gt;
|Church/Cathedral &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|rake_off|2}}&lt;br /&gt;
!align=left|[[Selis Woderose 2: Rake-off (FM)|Rake-off]]&lt;br /&gt;
|[[:Category:Missions by Jesps|Jesps]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12846-fm-rake-off-19-06-2011/}} &lt;br /&gt;
|2011-06-19&lt;br /&gt;
|Castle/Fortress &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Shadowcursed&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S) for the first mission and Campaign (C) for the second mission.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Bolen|Bolen]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing, currently on hiatus.&lt;br /&gt;
* &#039;&#039;&#039;Ancilliary materials:&#039;&#039;&#039; &#039;&#039;[http://www.amazon.com/Shadowcursed-ebook/dp/B00BYEW02M Shadowcursed]&#039;&#039; novella (e-book)&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|requiem|1}}&lt;br /&gt;
!align=left|[[Requiem (FM)|Requiem]]&lt;br /&gt;
|[[:Category:Missions by Moonbo|Moonbo]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15101-fan-mission-requiem-by-gelo-moonbo-fleisher-2013106/}}&lt;br /&gt;
|2013-10-08&lt;br /&gt;
|Church/Cathedral &amp;lt;br&amp;gt; Lost Civilizations&lt;br /&gt;
|[https://web.archive.org/web/20160409012413/https://community.eidosmontreal.com/blogs/thief-mod-winners Winner] of the 2014 official &#039;&#039;[http://forums.thedarkmod.com/topic/15956-square-enix-and-amazoncom-announce-thief-mod-contest/ Thief Mod Competition]&#039;&#039; by Square Enix &amp;amp; Amazon.com.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ahouseoflockedsecrets|2}}&lt;br /&gt;
!align=left|[[A House of Locked Secrets (FM)|A House of Locked Secrets]] &lt;br /&gt;
|[[:Category:Missions by Moonbo|Moonbo]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/17163-fan-mission-a-house-of-locked-secrets-by-gelo-moonbo-fleisher-20150528/}} &lt;br /&gt;
|2015-05-29 	&lt;br /&gt;
|Church/Cathedral &amp;lt;br&amp;gt; Mansion/Estate&lt;br /&gt;
|[https://www.youtube.com/watch?v=f5NuTJEZ8VE Trailer] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Shadows of Northdale&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Corbin|Corbin]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing, currently in gradual development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|northdale1|1}}&lt;br /&gt;
!align=left|[[Shadows of Northdale Act I (FM)|Shadows of Northdale ACT I: &amp;lt;br&amp;gt; A Curious Mind]] &lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19368-fan-mission-shadows-of-northdale-act-i-by-goldwell-20180323/}} &lt;br /&gt;
|2018-03-23&lt;br /&gt;
|City Missions&lt;br /&gt;
|[https://www.youtube.com/watch?v=p4nP3lYd6wg Briefing]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|northdale2|2}}&lt;br /&gt;
!align=left|[[Shadows of Northdale Act II (FM)|Shadows of Northdale ACT II: &amp;lt;br&amp;gt; Down the Rabbit Hole]] &lt;br /&gt;
|[[:Category:Missions by Goldwell|Goldwell]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19936-fan-mission-shadows-of-northdale-act-ii-by-goldwell-20190320/}} &lt;br /&gt;
|2019-03-20&lt;br /&gt;
|City Missions&lt;br /&gt;
|[https://www.youtube.com/watch?v=KO-eIOX9nqI Briefing]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;St Alban&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|caduceus|1}}&lt;br /&gt;
!align=left|[[St Alban 1: The Caduceus of St Alban (FM)|The Caduceus of St. Alban]] &lt;br /&gt;
|[[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11644-the-caduceus-of-st-alban-vertical-fm-contest-entry-aug-8th-2010/}} &lt;br /&gt;
|2010-08-23 (original version), 2010-08-26 (version 1.5.5)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|cathedral|2}}&lt;br /&gt;
!align=left|[[St Alban 2: St Albans Cathedral (FM)|St. Albans Cathedral]]&lt;br /&gt;
|[[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16343-fan-mission-st-albans-cathedral-v20-11062014/}} (current, 2.0 version)&lt;br /&gt;
|2010-11-01 (original version), 2014-06-11 (version 2.0)&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Talbot&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; Talbot&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing, currently on hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|returntothecity|1}} &lt;br /&gt;
!align=left|[[Talbot 2: Return to the City (FM)|Return to the City]]&lt;br /&gt;
|[[:Category:Missions by Melan|Melan]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10509-fan-mission-return-to-the-city-by-melan-20100110/}} (original version), {{Forumlink|http://forums.thedarkmod.com/topic/12390-fan-mission-return-to-the-city-v2-01032011/}} (version 2.0)&lt;br /&gt;
|2010-01-10 (original version), 2015-01-03 (2.0), 2015-01-03 (current version, 3.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|Winner of the [[Fan Mission Contests#2009 Grand Christmas Contest|2009 Grand Christmas Contest]].&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|fauchard1_1|2}}&lt;br /&gt;
!align=left|[[Talbot 3: Fiasco at Fauchard Street (FM)|Fiasco at Fauchard Street]]&lt;br /&gt;
|[[:Category:Missions by Melan|Melan]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12655-fan-mission-fiasco-at-fauchard-street-by-melan-20110501/}} &lt;br /&gt;
|2011-05-01&lt;br /&gt;
|Thieves&#039; Highway (Rooftop)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; [[Sir Talbot&#039;s Collateral (FM)|Sir Talbot&#039;s Collateral]] by Bikerdude and Baal is actually an unrelated mission, just with a similarly named character.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;The Lieutenant&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Description:&#039;&#039;&#039; The series follows the cases of an intelligence officer.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; The titular Lieutenant &lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Ongoing.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|inplainsight|1}}&lt;br /&gt;
!align=left|[[The Lieutenant 1: In Plain Sight (FM)|The Lieutenant 1: In Plain Sight]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21549-fan-mission-in-plain-sight-by-frost_salamander-20220807}} &lt;br /&gt;
|2022-08-07&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|highex|2}}&lt;br /&gt;
!align=left|[[The Lieutenant 2: High Expectations (FM)|The Lieutenant 2: High Expectations]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21837-fan-mission-the-lieutenant-2-high-expectations-by-frost_salamander-20230424}} &lt;br /&gt;
|2023-04-24&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; City Missions &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|foreignaffaris|3}}&lt;br /&gt;
!align=left|[[The Lieutenant 3: Foreign Affairs (FM)|The Lieutenant 3: Foreign Affairs]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22452-fan-mission-the-lieutenant-3-foreign-affairs-by-frost_salamander}} &lt;br /&gt;
|2024/11/08&lt;br /&gt;
|City Missions, Moorish Architecture&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|reciprocalgambit|4}}&lt;br /&gt;
!align=left|[[The Lieutenant 4: A Reciprocal Gambit (FM)|The Lieutenant 4: A Reciprocal Gambit]] &lt;br /&gt;
|[[:Category:Missions by Frost_Salamander|Frost_Salamander]]&lt;br /&gt;
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22945-fan-mission-the-lieutenant-4-a-reciprocal-gambit-by-frost_salamander}} &lt;br /&gt;
|2025-06-18&lt;br /&gt;
|City Missions, Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Thief&#039;s Den&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Description:&#039;&#039;&#039; The &#039;&#039;de facto&#039;&#039; oldest FM series in &#039;&#039;The Dark Mod&#039;&#039;. Follow the skillful thief Farrell as he navigates the criminal underworld of [[The City|Bridgeport]] and the surrounding world.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief Characters#Farrell|Farrell]] (protagonist), [[Thief Characters#Sebastian_Creep|Sebastian Creep]] (supporting)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Currently on hiatus.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|thiefsden|1}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 1: Thief&#039;s Den (FM)|Thief&#039;s Den]] &lt;br /&gt;
|[[:Category:Missions by Fidcal|Fidcal]], [[:Category:Missions by Greebo|Greebo]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11347-fan-mission-thiefs-den-re-release-by-fidcal20100704/}} &lt;br /&gt;
|2008-01-18 (original version), 2010-07-04 (version 2.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|chalice1_1|2}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 2: The Chalice of Kings (FM)|The Chalice of Kings]] &lt;br /&gt;
|[[:Category:Missions by Fidcal|Fidcal]] (original version), [[:Category:Missions by Bikerdude|Bikerdude]], [[:Category:Missions by Xarg|Xarg]] (edits, version 2.0)&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/9935-fan-mission-chalice-of-kings-by-fidcal-20091017/}} &lt;br /&gt;
|2009-10-15 (original version), 2015-09-24 (version 2.0)&lt;br /&gt;
|Castle/Fortress&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|heartv2|3}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 3: The Heart of Lone Salvation (FM)|The Heart of Lone Salvation]] &lt;br /&gt;
|[[:Category:Missions by Fidcal|Fidcal]], Baddcog, [[:Category:Missions by Bikerdude|Bikerdude]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/10878-fan-mission-the-heart-of-lone-salvation-by-fidcal-baddcog-bikerdude-20100402/}}&lt;br /&gt;
|2010-04-02 (original version), 2014-04-12 (version 2.0)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|alchemist|4}}&lt;br /&gt;
!align=left|[[Thief&#039;s Den 4: The Alchemist (FM)|The Alchemist]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]], [[:Category:Missions by Fidcal|Fidcal]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11170-fan-mission-the-alchemist-by-sotha-fidcal20100601/}}&lt;br /&gt;
|2010-06-01 (original version) 2010-06-04 (update)&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Thomas Porter&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#Thomas Porter|Thomas Porter]] (protagonist), [[Thief_Characters#Lark Butternose|Lark Butternose]] (supporting), [[Noble/Wealthy_Characters#Godfrey_Knighton|Godfrey Knighton]] (background)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Concluded. &lt;br /&gt;
* &#039;&#039;&#039;Overview:&#039;&#039;&#039; [http://forums.thedarkmod.com/topic/15179-the-thomas-porter-series/ Courtesy of] Sotha.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|mandrasola|1}}&lt;br /&gt;
!align=left|[[Thomas Porter 1: Mandrasola (FM)|Mandrasola]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12575-fan-mission-mandrasola-by-sotha-20110410/}} &lt;br /&gt;
|2011-04-10&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|knighton_manor|2}}&lt;br /&gt;
!align=left|[[Thomas Porter 2: Knighton Manor (FM)|Knighton Manor]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11898-fan-mission-the-knighton-manor-by-sotha-20101109/}} &lt;br /&gt;
|2010-11-09&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|beleaguered_fence|3}}&lt;br /&gt;
!align=left|[[Thomas Porter 3: The Beleaguered Fence (FM)|The Beleaguered Fence]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11298-fan-mission-the-beleaguered-fence-by-sotha-20100623/}}&lt;br /&gt;
|2010-06-23&lt;br /&gt;
|Jail/Prison&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|glenham_tower|4}}&lt;br /&gt;
!align=left|[[Thomas Porter 4: Glenham Tower (FM)|Glenham Tower]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/11423-fan-mission-the-glenham-tower-by-sotha-20100717/}}&lt;br /&gt;
|2010-07-17&lt;br /&gt;
|Castle/Fortress &amp;lt;br&amp;gt; Horror&lt;br /&gt;
|Winner of the [[Fan_Mission_Contests#2010_Summer_Vertical_Contest|2010 Summer Vertical Contest]].&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|transaction|5}}&lt;br /&gt;
!align=left|[[Thomas Porter 5: The Transaction (FM)|The Transaction]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/12408-fan-mission-the-transaction-by-sotha-20110304/}}&lt;br /&gt;
|2011-03-04&lt;br /&gt;
|City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|phrase_book|6}}&lt;br /&gt;
!align=left|[[Thomas Porter 6: The Phrase Book (FM)|The Phrase Book]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/13799-fan-mission-the-phrase-book-by-sotha-20120512/}}&lt;br /&gt;
|2012-05-11 &lt;br /&gt;
|City Missions &amp;lt;br&amp;gt; Thieves&#039; Highway (Rooftop)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|lich_queens_demise|7}} &lt;br /&gt;
!align=left|[[Thomas Porter 7: The Lich Queen&#039;s Demise (FM)|The Lich Queen&#039;s Demise]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14826-fan-mission-the-lich-queens-demise-by-sotha-20130520/}}&lt;br /&gt;
|2013-05-20&lt;br /&gt;
|Horror&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Ulysses&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; Ulysses (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ulysses_genesis|1}}&lt;br /&gt;
!align=left|[[Ulysses 1: Genesis (FM)|Ulysses: Genesis]] &lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16428-fan-mission-ulysses-genesis-by-sotha-20140724/}}&lt;br /&gt;
|2014-07-24&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|u2_flock|2}}&lt;br /&gt;
!align=left|[[Ulysses 2: Protecting the Flock (FM)|Ulysses: Protecting the Flock]]&lt;br /&gt;
|[[:Category:Missions by Sotha|Sotha]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/17162-fan-mission-ulysses-2-protecting-the-flock-by-sotha-20150528/}}&lt;br /&gt;
|2015-05-28&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Vengeance for a Thief&#039;&#039; campaign ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S) for the first two published missions, Campaign (C) for the final release that also includes a new first mission.&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|vfat3|1}}&lt;br /&gt;
!align=left|[[Vengeance for a Thief (FM)|The Angel&#039;s Tear]] &lt;br /&gt;
|[[:Category:Missions by Sir Taffsalot|Sir Taffsalot]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16953-the-complete-vengeance-for-a-thief-campaign/}} &lt;br /&gt;
|2015-02-16&lt;br /&gt;
|Church/Cathedral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|vfat1|2}}&lt;br /&gt;
!align=left|[[Vengeance for a Thief (FM)|A Pawn in the Game]] &lt;br /&gt;
|[[:Category:Missions by Sir Taffsalot|Sir Taffsalot]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14068-fan-mission-vengeance-for-a-thief-part-1-by-sir-taffsalot-06092012/}} &lt;br /&gt;
|2012-09-06&lt;br /&gt;
|Jail/Prison&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|vfat2|3}}&lt;br /&gt;
!align=left|[[Vengeance for a Thief (FM)|The Art of Revenge]]&lt;br /&gt;
|[[:Category:Missions by Sir Taffsalot|Sir Taffsalot]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15051-fan-mission-vengeance-for-a-thief-part-2-by-sir-taffsalot-06092013/}} &lt;br /&gt;
|2013-09-06&lt;br /&gt;
|Museum Heists&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Volta&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; TBA&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; TBA &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|volta1_3|1}} &lt;br /&gt;
!align=left|[[Volta I: The Stone (FM)|Volta and the Stone]]&lt;br /&gt;
|[[:Category:Missions by Kingsal|Kingsal]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/18087-fan-mission-volta-and-the-stone-by-kingsal-05262016/}}&lt;br /&gt;
|2016-05-27&lt;br /&gt;
|Mansion/Estate &amp;lt;br&amp;gt; City Missions&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|cauldron_v2_2|2}} &lt;br /&gt;
!align=left|[[Volta II: Cauldron of the Gods (FM)|Volta 2: Cauldron of the Gods]]&lt;br /&gt;
|[[:Category:Missions by Kingsal|Kingsal]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19207-fan-mission-volta-ii-cauldron-of-the-gods-by-kingsal-113017-update-v20/}}&lt;br /&gt;
|2017-11-30 &lt;br /&gt;
|Lost Civilizations&lt;br /&gt;
|[https://www.youtube.com/watch?v=SRRCRVFHruc Briefing]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;William Steele&#039;&#039; series ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Release:&#039;&#039;&#039; Single-mission (S)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; characters:&#039;&#039;&#039; [[Thief_Characters#William_Steele|William Steele]] (protagonist)&lt;br /&gt;
* &#039;&#039;&#039;Series&#039; status:&#039;&#039;&#039; Concluded. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;1%&amp;quot;|No.&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;21%&amp;quot;|Fan Mission Title&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Author(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;4%&amp;quot; class=&amp;quot;unsortable&amp;quot;|Forum link&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Releases&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Mission Type&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;5%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws1_north|1}}&lt;br /&gt;
!align=left|[[William Steele 1: In the North (FM)|In the North]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/14214-fan-mission-in-the-north-by-grayman-20121020/}}&lt;br /&gt;
|2012-10-20&lt;br /&gt;
|Mansion/Estate&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws2_homeagain|2}}&lt;br /&gt;
!align=left|[[William Steele 2: Home Again (FM)|Home Again]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/15919-fan-mission-home-again-by-grayman-2014212/}}&lt;br /&gt;
|2014-02-12&lt;br /&gt;
|Thieves&#039; Highway (Rooftop)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws3_cleighmoor|3}}&lt;br /&gt;
!align=left|[[William Steele 3: Cleighmoor (FM)|Cleighmoor]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/16011-fan-mission-cleighmoor-by-grayman-201431/}}&lt;br /&gt;
|2014-03-01&lt;br /&gt;
|Sewers &amp;lt;br&amp;gt; Jail/Prison&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws4_warrens|4}}&lt;br /&gt;
!align=left|[[William Steele 4: The Warrens (FM)|The Warrens]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19618-fan-mission-the-warrens-by-grayman-201891/}}&lt;br /&gt;
|2018-09-01&lt;br /&gt;
|City Missions &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|{{TDM-FM|ws5_commerce|5}}&lt;br /&gt;
!align=left|[[William Steele 5: Commerce Bank (FM)|Commerce Bank]] &lt;br /&gt;
|[[:Category:Missions by Grayman|grayman]]&lt;br /&gt;
|{{Forumlink|http://forums.thedarkmod.com/topic/19957-fan-mission-commerce-bank-by-grayman-2019410/}}&lt;br /&gt;
|2019-04-10&lt;br /&gt;
|Bank Jobs &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&lt;br /&gt;
For a key to the descriptions of each Mission Type, please see [[Fan_Missions_for_The_Dark_Mod#Table_notes|this overview]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[[Fan Missions for The Dark Mod]] - Main article on TDM fan missions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Fan Missions|S]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=The_Parts_and_Whole:_DR_Filters&amp;diff=34147</id>
		<title>The Parts and Whole: DR Filters</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=The_Parts_and_Whole:_DR_Filters&amp;diff=34147"/>
		<updated>2025-12-10T00:05:37Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;By Geep 2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clicking on &amp;quot;Filter&amp;quot; in the top menu will show a pulldown list of available filters, each of which may be independently toggled on or off with LMB. Any (except custom) filters that are &amp;quot;on&amp;quot; will hide the corresponding map items in all DR views. A variety of filters are built-in and easy to use, and you may add custom ones. Filtering relies on item classnames or other standard attributes (i.e., spawnargs) that are already present. As a result, no extra collection management is needed, unlike, say, Layers.&lt;br /&gt;
&lt;br /&gt;
Need more? See [https://www.darkradiant.net/userguide/#_filtering_map_elements Filtering map elements, in the Dark Radiant’s Users Guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Activate all Filters&amp;quot; and &amp;quot;Deactivate all Filters&amp;quot; Menu Items==&lt;br /&gt;
Found near the bottom of the pulldown menu (and perhaps confusingly shown with always-present funnel icons, even though they are not filters themselves), these are handy to quickly get to a uniform state before toggling individual filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;All entities&amp;quot; and &amp;quot;World geometry&amp;quot; Filters==&lt;br /&gt;
Together, these cover all map objects. Individually, they approximate an important distinction between:&lt;br /&gt;
* objects needed for sealing (from the void or among locations) or for AI traversal; and&lt;br /&gt;
* everything else.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Visportal&amp;quot; Filter==&lt;br /&gt;
&#039;&#039;From [https://forums.thedarkmod.com/index.php?/topic/20104-filters-in-dr/ forum post by Destined].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A more apt name would be &amp;quot;Visportals and NoDraw&amp;quot;, because it also filters out NoDraw surfaces, whether or not they are part of a Visportal brush.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Select by filter&amp;quot; and &amp;quot;Deselect by filter&amp;quot;==&lt;br /&gt;
The right-click context-menu has two options called &amp;quot;Select by filter&amp;quot; and &amp;quot;Deselect by filter&amp;quot;. With it you can select/deselect anything that applies to that filter. So for example: Select by &amp;quot;Lights&amp;quot; will select all light entities in your map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Defining Custom Filters==&lt;br /&gt;
At the bottom of the Filter pulldown menu, &amp;quot;Edit Filters...&amp;quot; brings up the &amp;quot;Filter Settings&amp;quot; dialog, which lists both built-in filters and any custom ones you added. You can edit, add, and delete custom filters, but the code of built-ins can only be viewed or (to support you making a custom variant) copied.&lt;br /&gt;
&lt;br /&gt;
All filters use a specialized form of scripting for matching. See:&lt;br /&gt;
* [[A_-_Z_Beginner_Full_Guide_Page_4#Dark_Radiant_Filters]]&lt;br /&gt;
* [[Defining_custom_Filters_in_DarkRadiant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[The Parts and Whole: Overview]]&lt;br /&gt;
* [https://www.darkradiant.net/userguide/#_filtering_map_elements Filtering map elements, in the Dark Radiant’s Users Guide]&lt;br /&gt;
* [[A_-_Z_Beginner_Full_Guide_Page_4#Dark_Radiant_Filters]]&lt;br /&gt;
* [[Defining_custom_Filters_in_DarkRadiant]]&lt;br /&gt;
&lt;br /&gt;
{{Editing}}&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=The_Parts_and_Whole:_DR_Filters&amp;diff=34146</id>
		<title>The Parts and Whole: DR Filters</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=The_Parts_and_Whole:_DR_Filters&amp;diff=34146"/>
		<updated>2025-12-10T00:04:37Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: Added &amp;quot;Select by filter&amp;quot; and &amp;quot;Deselect by filter&amp;quot; info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;By Geep 2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clicking on &amp;quot;Filter&amp;quot; in the top menu will show a pulldown list of available filters, each of which may be independently toggled on or off with LMB. Any (except custom) filters that are &amp;quot;on&amp;quot; will hide the corresponding map items in all DR views. A variety of filters are built-in and easy to use, and you may add custom ones. Filtering relies on item classnames or other standard attributes (i.e., spawnargs) that are already present. As a result, no extra collection management is needed, unlike, say, Layers.&lt;br /&gt;
&lt;br /&gt;
Need more? See [https://www.darkradiant.net/userguide/#_filtering_map_elements Filtering map elements, in the Dark Radiant’s Users Guide].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Activate all Filters&amp;quot; and &amp;quot;Deactivate all Filters&amp;quot; Menu Items==&lt;br /&gt;
Found near the bottom of the pulldown menu (and perhaps confusingly shown with always-present funnel icons, even though they are not filters themselves), these are handy to quickly get to a uniform state before toggling individual filters.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;All entities&amp;quot; and &amp;quot;World geometry&amp;quot; Filters==&lt;br /&gt;
Together, these cover all map objects. Individually, they approximate an important distinction between:&lt;br /&gt;
* objects needed for sealing (from the void or among locations) or for AI traversal; and&lt;br /&gt;
* everything else.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Visportal&amp;quot; Filter==&lt;br /&gt;
&#039;&#039;From [https://forums.thedarkmod.com/index.php?/topic/20104-filters-in-dr/ forum post by Destined].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A more apt name would be &amp;quot;Visportals and NoDraw&amp;quot;, because it also filters out NoDraw surfaces, whether or not they are part of a Visportal brush.&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Select by filter&amp;quot; and &amp;quot;Deselect by filter&amp;quot;==&lt;br /&gt;
The right-click context-menu has two options called &amp;quot;Select by filter&amp;quot; and &amp;quot;Deselect by filter&amp;quot;. With it you can select/deselect anything that applies to that filter. So for example: Select by &amp;quot;Lights&amp;quot; will select all light entities in your map.&lt;br /&gt;
&lt;br /&gt;
==Defining Custom Filters==&lt;br /&gt;
At the bottom of the Filter pulldown menu, &amp;quot;Edit Filters...&amp;quot; brings up the &amp;quot;Filter Settings&amp;quot; dialog, which lists both built-in filters and any custom ones you added. You can edit, add, and delete custom filters, but the code of built-ins can only be viewed or (to support you making a custom variant) copied.&lt;br /&gt;
&lt;br /&gt;
All filters use a specialized form of scripting for matching. See:&lt;br /&gt;
* [[A_-_Z_Beginner_Full_Guide_Page_4#Dark_Radiant_Filters]]&lt;br /&gt;
* [[Defining_custom_Filters_in_DarkRadiant]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[The Parts and Whole: Overview]]&lt;br /&gt;
* [https://www.darkradiant.net/userguide/#_filtering_map_elements Filtering map elements, in the Dark Radiant’s Users Guide]&lt;br /&gt;
* [[A_-_Z_Beginner_Full_Guide_Page_4#Dark_Radiant_Filters]]&lt;br /&gt;
* [[Defining_custom_Filters_in_DarkRadiant]]&lt;br /&gt;
&lt;br /&gt;
{{Editing}}&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Visportals&amp;diff=34145</id>
		<title>Visportals</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Visportals&amp;diff=34145"/>
		<updated>2025-12-09T23:28:55Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* How and where to create visportals */  added info about DR-button &amp;quot;make visportal&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;written by Fidcal. Visportals, Func_statics and Worldspawn Brushes added by Sotha.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video Introduction to Visportals ==&lt;br /&gt;
[https://youtu.be/RmKjmt7IJr8 Video Introduction to Visportals.]&lt;br /&gt;
&lt;br /&gt;
== What are visportals? ==&lt;br /&gt;
Visportals are a very important part of mapping.  They are a kind of brush that helps separate your map into individual areas (called visleafs), which is important for both rendering and sound propagation.&lt;br /&gt;
&lt;br /&gt;
Without visportals, the Doom engine would render the entire map even if the player can only see one small area. This would reduce performance and slow the game down.  &lt;br /&gt;
&lt;br /&gt;
Visportals are also very important for sound propagation. Without them, sounds can travel through brushwork and reach areas of the map that they shouldn&#039;t (see &#039;&#039;Sound Propagation&#039;&#039; at the bottom of the page).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visportals determine how far the engine should render from the player&#039;s position. When a visportal is in the player&#039;s view, the engine tests to see if there is a second visportal viewable from the position of the first. If yes then it tests to see if a third one can be seen from the second one. If the third is not viewable from the first then the engine won&#039;t waste time rendering the map beyond it. If it is, then the engine tests for a fourth one and so on. So for example, with a long corridor with lots of 90 degree turns in it and visportals at every bend then the engine will only render the section you are in plus any parts of the next section you can see. But as you get near to it and can see further down it to the next bend&#039;s visportal then it will render the next one too.&lt;br /&gt;
&lt;br /&gt;
Anything in the visleaf that the player is currently in is rendered (if it is your field of view) regardless of whether it is behind worldspawn.  But things in an adjacent visleaf will not be rendered if they are behind worldspawn.  The engine still has to calculate what the player can see and what he can&#039;t, and this still uses resources, but far less than if it were in the same visleaf as the player.  Any visleaf that is behind a closed portal is automatically beyond what the player can see, to the engine can skip testing it completely.  This is why closed visportals are so valuable for performance.&lt;br /&gt;
&#039;&#039;[stgatilov --- on a minor note, the engine still has to check for shadows coming out from closed visleafs; so even a closed visleaf needs some processing]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The console command &#039;&#039;&#039;r_showPortals 1&#039;&#039;&#039; shows processed visportals as wireframe in-game for testing - even right through walls they are visible. A green wireframe is an &#039;open&#039; visportal and renders everything beyond it up to the next visportal.  A red wireframe is a &#039;closed&#039; visportal with nothing rendered beyond it and no further visportals beyond that are even processed so are not visible at all. If a visportal does not show then it is either beyond range of processing or it is not working so check it is set up correctly.&lt;br /&gt;
&lt;br /&gt;
== What is rendering? ==&lt;br /&gt;
Rendering might be regarded as the calculating of surface lighting, colour, texture, etc. Not all rendered surfaces are visible in-game but still have to be calculated. Others do not need rendering at all. Processing only takes place in the current portal area, that is, up to the nearest closed visportals. Surfaces are treated as divided into triangles for rendering purposes. The &#039;&#039;&#039;r_showTris&#039;&#039;&#039; console command shows those triangles as wireframes. In the console use &#039;&#039;&#039;r_showTris N&#039;&#039;&#039; where N is...&lt;br /&gt;
&lt;br /&gt;
*0 - Off - normal gameplay with no wireframes shown.&lt;br /&gt;
*1 - Shows only triangles that are visible in-game (not hidden behind other surfaces.) These visible surfaces are only part of what is rendered.&lt;br /&gt;
*2 - Shows as wireframes, all triangle surfaces that would be rendered in-game. This includes those hidden behind other surfaces BUT ONLY IF they face the player, even slightly. Surfaces facing away from the player are never rendered.&lt;br /&gt;
*3 - Shows as wireframes, all triangle surfaces even if not rendered.&lt;br /&gt;
&lt;br /&gt;
You can see that for the purpose of testing performance use 2 above which shows all that would be rendered (whether visible to the player or not.) You can use 3 to see &#039;&#039;all&#039;&#039; triangles up to the next closed visportal but remember not all of it will be rendered so will not affect performance.&lt;br /&gt;
&lt;br /&gt;
You &#039;&#039;should&#039;&#039; also use &#039;&#039;&#039;r_useScissor 0&#039;&#039;&#039; to show geometry outside the visportal wireframe that Doom still sends to the video card. &lt;br /&gt;
&amp;lt;br&amp;gt;Scissors happen on the GL driver side after geometry has already been uploaded. &lt;br /&gt;
&amp;lt;br&amp;gt; They help with performance but the best performance happens when you prevent the geometry from being uploaded to your GPU in the first place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remember&#039;&#039;&#039; to return to &#039;&#039;&#039;r_useScissor 1&#039;&#039;&#039; when you are done with &amp;quot;visportal testing&amp;quot; so that scissors can still &lt;br /&gt;
&amp;lt;br&amp;gt;optimize away geometry that you were unable to optimize away with visportals.&lt;br /&gt;
&lt;br /&gt;
Here is a short video with a decent visual breakdown:&lt;br /&gt;
&lt;br /&gt;
[http://www.gdcvault.com/play/1014234/Excerpt-Quake-Postmortem-Optimizing-Level Video]&lt;br /&gt;
&lt;br /&gt;
Another video:&lt;br /&gt;
&lt;br /&gt;
[http://youtu.be/cy4FIE7BhCQ http://img.youtube.com/vi/cy4FIE7BhCQ/1.jpg]&lt;br /&gt;
&lt;br /&gt;
== How and where to create visportals ==&lt;br /&gt;
&lt;br /&gt;
Visportals are just brushes with one face covered in visportal texture. That is the operative face. Only be concerned with that one surface as the rest of the brush merely carries it. So to create one you just....&lt;br /&gt;
&lt;br /&gt;
* Make a thin brush like a wall. Ideally make it rectangular for best sound propagation (see &#039;&#039;Sound Propagation&#039;&#039; later.) It can extend beyond the gap so does not necessarily need to be the same shape - see &#039;&#039;Where to place your Visportal&#039;&#039; later.&lt;br /&gt;
* Give it &#039;&#039;&#039;textures &amp;gt; editor &amp;gt; visportal&#039;&#039;&#039; to either of the main surfaces facing towards or away from you. It does not matter which except you need to be aware which it is because the visportal will be effective at that one face. (Use {{Ctrl}} + {{Shift}} + {{LMB}} on the face in the Dark Radiant camera view to select one face.)&lt;br /&gt;
&lt;br /&gt;
Instead of this custom method there&#039;s also a dedicated button for this in DarkRadiant. 1. Select a brush. 2. Right-click. 3. Choose option &amp;quot;Make Visportal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thickness ===&lt;br /&gt;
The exact thickness is not important to its effectiveness as it will only be effective from its one visportal-textured face anyway but it makes sense to keep it reasonably thin so you can see it clearly in the editor. Always think of visportals as one flat face and the rest of the brush can be ignored for functional purposes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to place your Visportal ===&lt;br /&gt;
It will eventually be wedged tight like a plug into gaps, doorways, etc. between areas. The edges of the visportal-textured face of visportals should be completely sealed by or in opaque (i.e. solid) &#039;&#039;worldspawn&#039;&#039; brush that has no gaps. The brush &#039;&#039;&#039;must&#039;&#039;&#039; be a child of worldspawn and &#039;&#039;&#039;not&#039;&#039;&#039; an entity. This is true even if the visportal is within a door (see next section.) For the visportal to be effective it does not matter if the rest of the visportal brush sticks out into space so long as the edges of the visportal-textured face are surrounded by worldspawn brush and/or another visportal brush (see later) In practice you will probably put most fully within a corridor or doorway, a city street (yes, the sky above is solid worldspawn brush), etc. Irregular shaped gaps must still be plugged with a rectangular visportal which should then overlap into the solid worldspawn and leave no gaps. This will also make sound propagation work correctly (see &#039;&#039;Sound Propagation&#039;&#039; later.)&lt;br /&gt;
&lt;br /&gt;
Each area you thus created must be totally enclosed with worldspawn brushes with no gaps of either space else an entity. So a closed building with visportals at the doors but a tiny gap under the eaves of the roof won&#039;t work! Also avoid only blocking gaps with entities whether brushes or models. For example, a two-sided window entity that completely fills the opening will not seal the area for portalling purposes. Do not put in a visportal unless the window is either transparent or can be opened (like a door.) Instead put in a worldspawn brush with nodraw texture on it so it will not be visible or collidable just in front of the window. &#039;&#039;[not sure what this means, but note that nodraw textures DO NOT seal visleafs.  As far as visportals are concerned, they don&#039;t exist]&#039;&#039; Or if you are using two windows back to back (say a lit one outside and an unlit one inside then a thin caulk brush between them.&lt;br /&gt;
&lt;br /&gt;
Generally you will place visportals on bends in the terrain around which the player cannot see from the current viewpoint. Avoid placing visportals in a line along a corridor or street for example. Since the player can see straight down through them all then they serve no purpose as they will all be open and visportals themselves create extra triangles and complexity (see downside section below.)&lt;br /&gt;
&lt;br /&gt;
With a large building surrounded by a walled open area then try visportals at each corner. If it is a very large building then also add visportals midway along each side. The player standing at one corner might be able to see up two sides, part of a far side, and even a small part of the fourth side so all sides would be rendered. By having extra visportals middway along each side then at least half of each side of the furthest corner need not be rendered (consider also preventing the player reaching such a viewpoint with an obstruction!)&lt;br /&gt;
&lt;br /&gt;
Subject to the above, try to find the smallest gaps where possible to place visportals. The smaller the visportal then the smaller the view aperture and so the less chance of lining up those apertures. Remember, visportals beyond the first one do not open unless they intersect all open visportals in that line of view. Even without a door, an open doorway is a better place for a visportal than a wider corridor or room beyond. Imagine trying to get a straight pole through as many of these visportal apertures as possible; the narrower and less aligned they are then the harder to get the pole very far.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t get too hung up on perfect placement of every last visportal. Generally if you follow this guide and use your judgement you achieve a satisfactory game performance. Examine some large maps that you know work well to get some ideas where visportals are placed using the &#039;&#039;&#039;r_showPortals 1&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
What if you put visportal texture on many faces of the visportal brush? Only one arbitrarily chosen face will be effective, and dmap will produce console warning about this situation. Basically, the engine does not support such brushes, so better use nodraw on all surfaces except the one face with visportal texture.&lt;br /&gt;
&lt;br /&gt;
===Multiple Joined Visportals===&lt;br /&gt;
Because visportals are a single face, by their very nature they can only be placed on a single brush. But visportal brushes can be placed or merged together to fill more complex shaped gaps. For example, a wide rectangle might have one side clipped to slope over a roof while the rectangular part of its shape sits on top of another rectangle across the street below. But complexity affects performance so only do this if one rectangular visportal intruding into interior walls might do the same job. Remember, it does not matter if the visportal overlaps into solid so if there is an interior wall on the same plane (or indeed if the building is totally solid) then the visportal can penetrate it and still function. Do not use multiple visportals just to shape nicely around solid building trim and structure but intrude into it so long as the edge does not exit into space at any point it will be fine.&lt;br /&gt;
&lt;br /&gt;
== Visportals and doors ==&lt;br /&gt;
A visportal in contact with a door that has an openable property automatically becomes &amp;quot;blocking&amp;quot; when the door is closed. Blocking visportals are always considered closed. In fact, they provide additional performance benefit over ordinary (i.e. nonblocking) closed visportals. For instance, objects behind ordinary closed visportals can still throw shadows which are visible to the player, so the engine has to process them. But blocking visportals block everything including light and shadows, so the renderer skips all visleafs behind them even when looking for shadow casters.&lt;br /&gt;
&lt;br /&gt;
Of course, when you open a closed door, its visportal becomes nonblocking/ordinary again, and switches between open and closed state as usual. So when you first go through a door and leave it open then its visportal will be open as you look immediately back at it. But as you then proceed further through other visportals, the door visportal will eventually close (prevent rendering through it) even if the door itself is left open.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Doors standing in front of but not within a doorway ===&lt;br /&gt;
Note that the visportal only needs to be in contact with the door to be affected by it. Normally you would place the visportal within the door but it actually only needs its visportal-textured surface to touch it. This means that if you have a door that is stood in front of an opening in a wall then you cannot put the visportal inside the door because it will not be surrounded by solid brush. But you can put a visportal just inside the opening and flush with the mouth of the opening and the door immediately in front of that and in contact with the visportal. You can test this by placing the door offset well to one side but part of it still in contact with the visportal. In game you can see the opening as the door is only partially covering it. When the door is closed the visportal closes and stops rendering through the doorway. You will see this as a black panel in the doorway. As the door opens the black panel disappears and you can see through the doorway again. You might think that from the other side the black panel would obscure the door when closed but it doesn&#039;t. With the door centred in its normal position, typically you might have an entity frame around the door. If you had a solid brush frame without gaps then the visportal could be inside the door if you wanted as it would then have solid all round its edges. In many cases of course, the door frame, whether entity or brush, would be within the solid brush doorway anyway.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Geep comments: This is pertinent for surface-mounted sliding doors. Unless they include transparency, such as ductwork grill doors (whether sliding or rotating), in which case the next section rules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Windows, Doors with windows, bars, etc. ===&lt;br /&gt;
Openable doors that let you see through them such as windows, doors with windows, barred gates, etc. should not be in contact with a visportal. When the door is closed it will automatically close any visportal whose effective surface is in touch with it. The visportal will not then permit any rendering through it and will show as a black panel in the window or between the bars of a gate. Instead, move the visportal away from the door. It will still function effectively as a normal visportal just as if the door were not there. This does not of course apply to simulated windows such as a glazed textured panel on a door texture where you cannot actually see through.&lt;br /&gt;
&lt;br /&gt;
All doors and windows that do not have an openable property can have a visportal in touch with them as it will not be affected by them and it will just function as a normal visportal.&lt;br /&gt;
&lt;br /&gt;
{{red|Rev. 2.00:}}&lt;br /&gt;
&lt;br /&gt;
Starting with Rev. 2.00, you can touch a see-through door or window with a visportal, and the portal will not close when the door/window is closed, as long as you use the following spawnarg &#039;&#039;&#039;on the door/window&#039;&#039;&#039; (not the info_portalsettings entity):&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;transparent&#039;&#039;&#039; &amp;quot;If set to 1 (0 by default), a see-through door can touch a visportal and the visportal won&#039;t close when the door is closed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is useful when you want the opening or closing of the door to affect the sound loss across the portal, but not affect visibility through the door/window. Imagine a closed window that muffles a sound beyond it, and as the window opens, the sound gets louder.&lt;br /&gt;
&lt;br /&gt;
==Visportal switches: func_portals==&lt;br /&gt;
&lt;br /&gt;
The preceding section &#039;&#039;Visportals and doors&#039;&#039; makes clear that doors can function like switches to enable and close visportals in contact with them. &#039;&#039;func_portals&#039;&#039; can be used to enact further control over portals. You can place a &#039;&#039;func_portal&#039;&#039; entity so that it intersects with a visportal, and then trigger the func_portal to close or open the visportal.  A second control method is had by using the &#039;&#039;portal_dist&#039;&#039; and &#039;&#039;distcheck_period&#039;&#039; properties on the &#039;&#039;func_portal&#039;&#039;.  They control the distance to the player and how frequently (in seconds) this distance should be checked, respectively, and make explicit triggering of the &#039;&#039;func_portal&#039;&#039; unnecessary.  As with doors, even if enabled, the visportal will not be open even if it is in the player&#039;s view.  Note, if you have a mover (door/window) in contact with the visportal, it will affect it as well, so typically a visportal controlled by func_portal is placed away from the mover, or use spawnarg &amp;quot;transparent&amp;quot; set to 1.&lt;br /&gt;
&lt;br /&gt;
Another clever trick exists with regard to &#039;&#039;func_portal&#039;&#039;s:  you can also build a func_static over the visportal, and target it with the &#039;&#039;func_portal&#039;&#039; as normal.  Now, in addition to opening and closing the portal, this will also toggle the drawing of the &#039;&#039;func_static&#039;&#039;.  This means you could place an appropriate texture (perhaps a low resolution image of a room&#039;s interior, drawn over a window) and have it turn on or off based on the player&#039;s distance away.  From a distance, the player wouldn&#039;t be able to tell that the the entire room wasn&#039;t being rendered.  This can be an effective way to create the illusion of long view distances.&lt;br /&gt;
&lt;br /&gt;
Note that the func_static must touch the visportal in order to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;One way to make this work is to create a patch, make it a func_static.  Texture the patch, and then target the func_portal at that func_static.  You must then add &amp;quot;hide&amp;quot; &amp;quot;1&amp;quot; to the func_static patch.  There may be other ways to make this work, but I had a lot of trouble until I took these steps.  -- Springheel&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An interesting, recent discovery that needs some testing is that apparently:  you can take one visportal and cut it in half, and then put different func_portals on each half in order to close them at different ranges.  That has interesting implications for wide city streets.  They require big visportals, but if you can split them up and independently control each part, there may be some benefits there.  http://forums.thedarkmod.com/topic/9082-newbie-darkradiant-questions/?p=370473&lt;br /&gt;
&lt;br /&gt;
== Need I design, even compromise my map to make best use of visportals? ==&lt;br /&gt;
You need to design your map from the start as a series of connected boxes (brushes) with the player&#039;s view, sound propogation, and visportals in mind. And yes, sometimes you might need to add a bend you don&#039;t want or obstruct a view in some way so you can put in another visportal if you are having or expecting slow down in a large and/or complex area. This is a matter of experience. If you have large complex areas and are experiencing frame lag but can see no obvious place to put a visportal then you might need to compromise your terrain and add some solid brush barriers to block certain views with visportals in the access round or through them.&lt;br /&gt;
&lt;br /&gt;
Note that it is not essential that visportals be only at the actual joins between brushes; they still work even if they are half way down a corridor so long as they are wedged in tight without gaps. But you will mostly place them at joins.&lt;br /&gt;
&lt;br /&gt;
For rendering considerations, the player&#039;s view is everything and every room and street in front of you even if there are walls, etc. in the way. Imagine what you would see with X-Ray vision. What is behind you or just out of range of the screen does not matter. But visportals restrict the view to what can be seen through the aperture of the visportal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is not necessary to put visportals at every tiny bend in the map; in fact that should be avoided in smaller areas because visportals themselves create extra triangles and complexity (see downside section below.) Try to keep in mind what will be rendered through the visportals and judge what would &#039;&#039;not&#039;&#039; cause frame lag slowdown if the player could actually see that view. Three or four bends without visportals in a restricted air duct is not going to cause any problem if the duct is correctly visportalled at the ends for example.&lt;br /&gt;
&lt;br /&gt;
== Is there a downside? ==&lt;br /&gt;
One downside to visportals is that is extra work for the mapper! Another is that they split the geometry and create extra triangles and batches. This will not normally cause a problem unless your map has a very large number of areas. The advantages in performance of using visportals far outweigh the downsides!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sound Propagation==&lt;br /&gt;
&lt;br /&gt;
Correct propagation of sound (both to AI and to the player) relies on visportals.&lt;br /&gt;
&lt;br /&gt;
Think of vis-portals as sealing off separate &amp;quot;areas&amp;quot; in a map.  A sound that occurs inside a sealed &amp;quot;area&amp;quot; will travel in a straight line to anyone inside the same area, even through walls.  If you are not in the same area, however, the sound will travel in a straight line to the first visportal between you and the sound source, then to the next one, etc, until it reaches the area you are in.&lt;br /&gt;
&lt;br /&gt;
If the sound happens in an area that is not sealed, it essentially considers the whole map its &amp;quot;area&amp;quot;, and will go straight to the player, through walls, floors, or other brushwork.  This can result in confusion for players, as they will hear AI on the other side of a massive wall as if they were standing beside each other.&lt;br /&gt;
&lt;br /&gt;
In the following examples, &amp;quot;P&amp;quot; is the player and &amp;quot;S&amp;quot; is the sound source.  The Visportals are red lines. The green lines show how the sound would travel.&lt;br /&gt;
&lt;br /&gt;
[[image:vis.jpg]]&lt;br /&gt;
&lt;br /&gt;
Without any visportals, the sound goes in a straight line to the player, even through solid walls.  It will sound like the player is in the same room as the sound.&lt;br /&gt;
&lt;br /&gt;
One visportal is an improvement--it will sound further away, but the sound travels straight to the visportal and then straight to the player, so it will still sound like it is coming through the wall.  &lt;br /&gt;
&lt;br /&gt;
Two visportals are best in this case, however.  The sound will seem like it is coming from the opening to the room, which is where you would expect it to come from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sound &#039;&#039;going to the AI&#039;&#039; travels the shortest distance through a visportal, passing at any point on the visportal surface.  Mappers should always use rectangular visportals unless you have no choice with an awkwardly shaped gap or if the gap is out of range of AI, for example along a sloping roof where AI never go. &#039;&#039;&#039;It also still assumes that when you do have four sides, they are perpendicular.&#039;&#039;&#039; If you have some non-90 degree angles between the sides, some weirdness may ensue. For example, an AI that is alerted in the dark (or facing away) by hearing a sound from the player that passes through an irregular visportal might run to the center of the visportal rather than directly to where the player made the noise. Irregular visportals large enough to make this effect noticeable are likely to be uncommon.&lt;br /&gt;
&lt;br /&gt;
This will be okay for smaller irregular visportals, but the error (path difference from the minimal path) will get more noticeable the larger the visportal.&lt;br /&gt;
&lt;br /&gt;
Visportals function individually even if joined together into complex shapes. So a rectangle at ground level topped by an angled visportal above it tilting out over a roof will be treated separately, not as one aperture. &lt;br /&gt;
&lt;br /&gt;
The bottom line is, with any non-rectangular visportals keep the above in mind and if in doubt then consider early testing of AI&#039;s alert to player sound.&lt;br /&gt;
&lt;br /&gt;
Visportals do NOT need to be closed to correctly channel sound to the player.  Sometimes it is worth adding visportals even if they will not help with rendering (because they will always be open) in order to make sound travel the way it should.  &lt;br /&gt;
&lt;br /&gt;
To make less sound go through a visportal (through a small hole, for example):&lt;br /&gt;
Soundprop can use info_locationSeparator or info_portalSettings to make sound incur a certain loss when going through the portal it&#039;s touching. The key/value pair is the following:&lt;br /&gt;
&lt;br /&gt;
    sound_loss &amp;quot;Soundprop: Loss in dB incurred when a sound travels through this portal. Cumulative with door loss if a door is present.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
The loss must be a positive number, and negative numbers will automatically be converted to positive.&lt;br /&gt;
&lt;br /&gt;
{{red|Rev 2.00:}}&lt;br /&gt;
&lt;br /&gt;
Prior to Rev 2.00, &#039;&#039;&#039;sound_loss&#039;&#039;&#039; affected the sound propagation to AI &#039;&#039;&#039;only&#039;&#039;&#039;.  Sound propagation to the player was not affected.&lt;br /&gt;
&lt;br /&gt;
Starting with Rev 2.00, &#039;&#039;&#039;sound_loss&#039;&#039;&#039; is also used in determining sound volume to the player. This aligns what AI hear with what the player hears. It also allows sound coming through the door to increase as the door opens, or decrease as the door closes, making for a more realistic experience.&lt;br /&gt;
&lt;br /&gt;
For details study: &lt;br /&gt;
[[Sound Propagation: Part 1]] and&lt;br /&gt;
[[Sound Propagation: Part 2]]&lt;br /&gt;
&lt;br /&gt;
== Engine changes ==&lt;br /&gt;
&lt;br /&gt;
Several bugs in dmap related to visportals were fixed in TDM 2.08. The technical description is provided [https://bugs.thedarkmod.com/view.php?id=5129#c12147 in issue #5129]. Here is the rough summary:&lt;br /&gt;
&lt;br /&gt;
# Normally, leaky visportals should be dropped by dmap, but a lot of them actually made it into the final maps. As a rule of thumb, a few dozens of functioning visportals in every FM released so far are leaky. Most of them cause no serious issues, although some of them cause thin black stripes where they leak. The new dmap drops all leaky visportals without exceptions. It means that if you compile an old FM with the new dmap, a lot of visportals will be lost.&lt;br /&gt;
# A visportal had some weird effects outside of its bounds on its plane. This caused terrible trouble when several visportals lied on the same plane. Aside from that, it could produce ugly black panels on places without any visportals. All of this is now fixed, but there is a chance that some existing map somehow relied on the old erratic behavior.&lt;br /&gt;
# Normally, if a brush has at least one non-opaque side (i.e. non-solid face), then it is considered non-opaque and does not seal visportals and areas. A bug caused some brushes with exactly one non-opaque side to be considered opaque. It is now fixed, but as the result some rare brushes on existing maps no longer seal areas if you dmap them with recent engine. This can lead to global leaks and dropped visportals.&lt;br /&gt;
&lt;br /&gt;
The changes seriously affect how visportalling works on existing maps. If you need to dmap an FM which was released before 2.08, then you have a choice:&lt;br /&gt;
* Fix all the visportal warnings which dmap spits to console (see the next section). This will take some time and effort, and will probably need additional beta testing after that.&lt;br /&gt;
* Enable old and buggy behavior of visportals, so that dmap works exactly as it did when FM was released. To achieve this, you have to set the following cvars (note that they do &#039;&#039;&#039;not&#039;&#039;&#039; persist between sessions):&lt;br /&gt;
*# dmap_bspAllSidesOfVisportal 0&lt;br /&gt;
*# dmap_fixVisportalOutOfBoundaryEffects 0&lt;br /&gt;
*# dmap_fixBrushOpacityFirstSide 0&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Starting from TDM 2.08, dmap provides several useful diagnostics for visportalling problems. Every visportal with a problem is reported to the game console as a warning. You might want to [[Reporting Problem#condump|enable logFile]] to make it easier to read the whole dmap output. Aside from that, most warnings are accompanied by .lin files (generated near your .map), which can be viewed in DR.&lt;br /&gt;
Below you can see the different types of warnings produced by dmap.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;Portal %d at (%s) dropped&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The mentioned visportal does not separate the space into two isolated areas. This is usually called &amp;quot;internal leak&amp;quot;. Such visportal is dropped because it appears to be fully contained in one visleaf, while every visportal must separate two different visleafs from each other.&lt;br /&gt;
:Remember, the visportal face must be surrounded by opaque worldspawn brushes. Entities have no effect on visportals and visleafs, and brushes with any nodraw material are also ignored. If brief inspection does not help, load the .lin file in DR: it shows a closed path passing through the visportal which is not blocked by anything. In order to make visportal functional, you must block this path at least somewhere: the exact understanding of what went wrong and how to fix it is up to you.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;Portal %d at (%s) dropped as leaky&amp;lt;/tt&amp;gt;&lt;br /&gt;
:This is popular subcase of &amp;quot;dropped&amp;quot; warning, implemented in TDM 2.10.&lt;br /&gt;
:A proper visportal must have all of its boundary edges fully in contact with opaque geometry or other visportals. You should see &amp;quot;as leaky&amp;quot; clarification when this rule is broken.&lt;br /&gt;
:To fix the visportal, inspect its boundary, i.e. where it touches solid geometry.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;TIPS:&#039;&#039;&#039; If you have any portals &amp;quot;dropped as leaky&amp;quot;, save yourself some time by correcting them first. This will often stop other (good) visportals from being dropped. The .lin file discussed below will often show you exactly where the boundary problem is. Be aware that occasionally you may find a &amp;quot;dropped&amp;quot; portal that should have been tagged &amp;quot;dropped as leaky&amp;quot;; the detection algorithm is approximate.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;Portals [%s] at (%s) overlap&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Two or more visportals geometrically overlap, which is going to be confuse the engine. In most cases the offending visportals are exactly equal, which is why it is very hard to notice without warning. Note that it is OK for visportals to touch each other.&lt;br /&gt;
:In order to fix the problem, find both visportals in DR, and probably just delete one of them.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;Portal %d at (%s) is useless&amp;lt;/tt&amp;gt;&lt;br /&gt;
:No part of this visportal is within the playable space. Sometimes such visportal is fully inside opaque brushes or lie on the boundary of opaque brush. Sometimes the whole visportal hangs somewhere in outer space, outside of any playable locations.&lt;br /&gt;
: Find this visportal in DR, verify that it is not necessary, and delete it.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;brush %d has multiple area portal sides at %s&amp;lt;/tt&amp;gt;&lt;br /&gt;
:More than one side/face of this brush is marked with visportal texture, which is not supported by engine. Remember that visportal brush must have exactly one face with visportal texture and all the other faces with nodraw texture.&lt;br /&gt;
:First, find the brush. If any face has visportal material by mistake, change it to nodraw material. If both sides should work as visportals, then split the brush into two, each with one visportalled face.&lt;br /&gt;
&lt;br /&gt;
When investigating a particular warning, there are several ways to find and debug the visportal.&lt;br /&gt;
# The brush number of the problematic portal is reported in the warning itself (like: &amp;lt;tt&amp;gt;Portal 5237&amp;lt;/tt&amp;gt;). You can quickly find the brush in DR by using &amp;quot;Map -&amp;gt; Find Brush&amp;quot; feature, setting &amp;quot;Entity Number&amp;quot; to 0. Beware that brush numbering changes when you modify the map. If the numbers lead you to non-visportal brushes, then you most likely need to rerun dmap to get the new numbers.&lt;br /&gt;
# The warning usually contains world 3D coordinates (like: &amp;lt;tt&amp;gt;at (347.25 -490 790)&amp;lt;/tt&amp;gt;). These coordinates are much more stable that brush numbers and won&#039;t change between runs. You can use &#039;&#039;&#039;setviewpos&#039;&#039;&#039; in-game to teleport to specified coordinates, and hopefully DR will have such feature too in future.&lt;br /&gt;
# For every dropped or overlapped visportal, a leakfile is dumped into a .lin file. The filename is reported right after the warning itself (like: &amp;lt;tt&amp;gt;saved mapname_portalL_coords.lin (%i points)&amp;lt;/tt&amp;gt;. The capital letter after the word &amp;quot;portal&amp;quot; indicates the type of problem (e.g., with TDM 2.08, O = Overlap, L = dropped/Leaked; with TDM 2.10, O = Overlapped, D = Dropped, L = dropped as Leaky). The file is located in the same directory where .map file is located. In order to open it in DR, use the &#039;&#039;&#039;File → Pointfile&#039;&#039;&#039; menu option, which will show a dialog allowing you to choose the appropriate .lin file if there is more than one available. Use &#039;&#039;&#039;View → Camera → Next/Previous leak spot&#039;&#039;&#039; (or respectively &#039;&#039;&#039;Ctrl+Shift+K&#039;&#039;&#039; and &#039;&#039;&#039;Ctrl+Shift+L&#039;&#039;&#039;) to teleport to leak location and travel along its points. Fly around: follow the path, see where it crosses something that you considered opaque while it is not. &lt;br /&gt;
&lt;br /&gt;
If you have fixed all warnings but some visportal doesn&#039;t work at all (i.e. does not show as either red or green while you are directly in its area and looking at it and you have &#039;&#039;&#039;r_showPortals&#039;&#039;&#039; enabled), then make sure the visportal is worldspawn, not some entity with a misapplied visportal texture.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Expand the section below to read some outdated information. It is useless starting from 2.08.&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%; overflow:auto;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two possible problems I can think of: the visportal doesn&#039;t work at all or it works yet there is too much being rendered giving poor performance and frame lag. The latter problem is a matter of experience and experimentation. Often much ingenuity is needed to place visportals to reduce the size of areas being rendered at any one time. There is probably a different solution for every situation. Ultimately you might be forced to change the terrain to help visportalling.&lt;br /&gt;
&lt;br /&gt;
If a visportal doesn&#039;t work at all (eg, does not show as either red or green while you are directly in its area and looking at it and you have &#039;&#039;&#039;r_showPortals&#039;&#039;&#039; enabled) then that means there is a &amp;quot;leak&amp;quot; in that &#039;&#039;area&#039;&#039;.  It does not necessarily mean the visportal itself is the problem.&lt;br /&gt;
&lt;br /&gt;
Try the following to track down the problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Check the visportal itself:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Check which face of the visportal is facing which way. It sometimes happen one clones a visportal and rotates it the wrong way without realizing. So the wrong face is in the right place but the visportal face is not in contact with worldspawn.&lt;br /&gt;
&lt;br /&gt;
* Make sure the visportal hasn&#039;t been assigned to an entity but is worldspawn.&lt;br /&gt;
&lt;br /&gt;
* Search for gaps anywhere around the edges of the visportal face. Check for grid snapping not only of the visportal but the surrounding brushes. A tiny difference might not be visible in the Dark Radiant grid if you are not zoomed in sufficiently.&lt;br /&gt;
&lt;br /&gt;
* Check all surrounding items to see if any are entities. Remember, the visportal &#039;&#039;&#039;face&#039;&#039;&#039; must only be surrounded by worldspawn brushes. It seems to be mostly OK if the visportal &#039;&#039;cuts through&#039;&#039; an entity so long as it meets worldspawn at its edges.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Check the area for internal leaks:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There is a way to test an individual area for leaks.  It sounds more complicated than it is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.  Filter off all entities.  Make sure visportals are NOT filtered.&lt;br /&gt;
&lt;br /&gt;
2.  Select your entire visible map (which will now be only brushwork).&lt;br /&gt;
&lt;br /&gt;
3.  Copy and paste into a new blank map.&lt;br /&gt;
&lt;br /&gt;
4.  Put the player start into the area where you think you have an internal leak. &lt;br /&gt;
 &lt;br /&gt;
5.  Take the visportals sealing that area and texture them with a solid texture.&lt;br /&gt;
&lt;br /&gt;
6.  Make sure there is only void around the map (if you have your entire map encased in a skybox brush, open a hole in a distant corner of the map).&lt;br /&gt;
&lt;br /&gt;
7.  Save the map as a new filename and run dmap.  If you do not get a leak, then the area with the player start is properly sealed.  Move the player start to a new area and repeat as needed.&lt;br /&gt;
&lt;br /&gt;
8.  If you do get a leak, open the pointfile in DR.  Because the player entity is the only entity in the map, the red line will always start there and will show you where the gap is.&lt;br /&gt;
&lt;br /&gt;
9.  Go back to your original map and fix the gap.  Repeat as needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Having visportals that line up in parallel with each other can cause problems, usually appearing as pieces of wall that appear black or show skybox.  This can usually be fixed by moving a visportal slightly or turning one on a slight angle so they&#039;re no longer parallel.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If all else fails, try:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Clone the visportal and drag one edge to one side, that is, reduce its size to say half.  &lt;br /&gt;
* Select the original and drag its opposite edge the other way so you now have two visportals pressed together and which together fill the gap. Guess which side unless you suspect one side particularly (see later.)&lt;br /&gt;
* Change one of the visportals to any normal visible simple texture, stone, wood, whatever so that now the original gap is smaller and filled by just one smaller visportal. (with hindsight, I think this would probably work anyway and might even be better just leaving it as visportal so you can see which one works but I&#039;ll continue with what I did!)&lt;br /&gt;
* Check it in game.&lt;br /&gt;
* If it still does not work then reduce it further, perhaps by half as much again. In particular, go past edges of surrounding brushes (eg, if working downwards with two brushes on the left then maybe it&#039;s the top brush that is the problem so reduce the top of the visportal below its bottom edge.) Obviously as you reduce the visportal you increase the solid temporary brush you made equally to keep up so there is never a gap.&lt;br /&gt;
* If the visportal still does not work even when reduced to a slither then try the same for all four sides noting that the three sides against the slither of visportal are obviously first suspects.&lt;br /&gt;
* If eventually the visportal starts to work then you know the error is in the other section where you have the solid temporary brush. Use a process of elimination to track down exactly where the error is.&lt;br /&gt;
* You might even have to create a third temporary brush or even a fourth but you must eventually force the visportal to work even if you surround it with four new brushes! Once working, then reduce, remove, gradually until the error re-appears - that must be where the error lies. So by a process of elimination you should track down the source of the problem.&lt;br /&gt;
* The result might make not seem to make sense but at least if you locate the error you can try things to solve the problem. I had a visportal up to the sky and on its left against the top of a triangle of bricks on which rested a roof. The visportal seemed to be perfectly surrounded by worldspawn but I reduced it slightly with just a slim temporary solid test brush only one unit high above it pressing against the top of this triangle. The visportal was now working yet if I removed that slim test brush and raised the visportal to the top again then it would not work. Made no sense to me unless mathematically the very top pixel of the triangle might be regarded as infinitely thin and therefore a gap. So, I left the thin test brush and gave it sky texture so it&#039;s completely invisible and everything works.&lt;br /&gt;
&lt;br /&gt;
(Note: Some mappers at Doom3world reported that cloned visportal brushes can cause problems in a map. This was reported in an earlier Doom 3 build.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
There are other good visportal tutorials to be found under:&lt;br /&gt;
https://iddevnet.dhewm3.org/doom3/visportals.html and https://modwiki.dhewm3.org/Visportal&lt;br /&gt;
&lt;br /&gt;
== Visportals, Func_statics and Worldspawn Brushes  ==&lt;br /&gt;
Sometimes a visportal (VP) looks just fine in-game, but AI&#039;s behave erratically near them: cannot walk through the portal, walk into walls near the portal, can patrol through the portal but cannot chase the player through the portal. This may be due to worldspawn brushes penetrating the visportal.&lt;br /&gt;
&lt;br /&gt;
Image shows scenarios A-D of different VP placement.&lt;br /&gt;
[[image:visportal_scenarios.png]]&lt;br /&gt;
&lt;br /&gt;
*Scenario A, when VP is snugly placed in the worldspawn corridor, it always works.&lt;br /&gt;
*Scenario B, where a worldspawn brush penetrates the VP has often caused problems. It will fail with very high probability if the worldspawn brush is a monsterclip brush. Never do this scenario!  &#039;&#039;[Springheel -- I&#039;d like more confirmation on this...I&#039;m certain I&#039;ve done this on a regular basis in uneven city streets without causing any obvious problems]&#039;&#039;&lt;br /&gt;
*Scenario C is what could be used if the scene absolutely requires somethings going through the VP and scenario A or D cannot be used. Usually this must be done for big outdoors VP&#039;s as seen in Knightons Manor exterior behind the manor (it is the hedge, which goes through the VP there). Note how the worldspawn brush is cut just at the VP and it is only func_static which penetrates the VP. This has worked without issues. Note that no monsterclipping is required if the func_static segment of the VP penetrating brush is short enough. The blue worldspawn brushes could also be monsterclipped func_statics as well. If so, mapper must be certain monsterclip brushes do not penetrate the VP!&lt;br /&gt;
*Scenario D where the VP is penetrated by func_static detail work, has not been reported to break visportals. Usually this kind of case is used in vaulted corridors etc. Works just fine. If the FS detail work is in reach of AI, special care to monsterclipping should be paid and it must be absolutely sure the monsterclip does not penetrate the VP as this will always cause trouble. In this scenario it is recommended that each side of the visportal have their own func_statics and one func_static brush should never penetrate more than one visportal.&lt;br /&gt;
&lt;br /&gt;
===Conclusion===&lt;br /&gt;
Mappers should favour scenario A when possible. If detailwork requires, scenario D is okay, as well as scenario C. Never, ever use scenario B.&lt;br /&gt;
&lt;br /&gt;
If mapper has some issues with their AI pathfinding, they should check the portal isn&#039;t broken as in scenario B. It is really easy to forget wall trims etc which could pass through the VP. Also typical mistake is to automatically surround a model near the VP with monsterclip, which results monsterclip brush which penetrates the VP. It is recommended that the mapper tests every visportal (which an AI is likely to pass) in their map before the map is released. Firstly the mapper should check in DR and make sure visportals are correctly set. Ingame testing should be done both with non-alerted path_corner patrolling AI&#039;s and with an alerted AI chasing the player.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[https://www.youtube.com/watch?v=cy4FIE7BhCQ Komag Tutorial for The Dark Mod: Visportals]&lt;br /&gt;
*[http://forums.thedarkmod.com/topic/18948-have-we-been-selling-visportals-short/ Have we been selling visportals short?]&lt;br /&gt;
*[http://forums.thedarkmod.com/topic/19707-diagonaly-placed-vis-portal/ Diagonally placed visportal?]&lt;br /&gt;
*Visportals also help delineate Location Zones, with specific ambient lighting, ambient sounds, and enter/exit script events. See [[Location Settings]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Skybox]]&lt;br /&gt;
[[Category:Visportal]]&lt;br /&gt;
{{tutorial-editing}}&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34142</id>
		<title>Setting up Campaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34142"/>
		<updated>2025-12-05T11:13:11Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Text briefings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an attempt to describe the various options mappers need to consider when setting up campaigns or multi-mission packages (I&#039;ll refer to campaigns for both of these for the sake of simplicity). Campaign support has been added in TDM 1.06. &lt;br /&gt;
&lt;br /&gt;
= Map Files =&lt;br /&gt;
Regular, single-map TDM missions are packed in PK4 files, campaigns are no different. If your campaign consists of three missions (&amp;quot;red.map&amp;quot;, &amp;quot;blue.map&amp;quot; and &amp;quot;green.map&amp;quot;), all three of them still go into the same maps folder in your PK4 file.&lt;br /&gt;
&lt;br /&gt;
The actual order in which the missions are to be played is defined through the &amp;lt;tt&amp;gt;tdm_mapsequence.txt&amp;lt;/tt&amp;gt; file, which should be added to the PK4 (just next to the readme.txt). Following the example of the &amp;quot;red&amp;quot;, &amp;quot;blue&amp;quot; and &amp;quot;green&amp;quot; maps above the map sequence file would look like this:&lt;br /&gt;
&lt;br /&gt;
 Mission 1: red&lt;br /&gt;
 Mission 2: blue&lt;br /&gt;
 Mission 3: green&lt;br /&gt;
&lt;br /&gt;
Looking at that, the syntax of the file is pretty much self-explanatory. The first mission has the number one, the map file is mentioned after the colon and the following space. You don&#039;t need to specify the &amp;quot;.map&amp;quot; extension of the map file that is handled automatically. See the main [[tdm_mapsequence.txt]] article for further reference, for this article it&#039;s enough to have the above lines I suppose.&lt;br /&gt;
&lt;br /&gt;
= Text briefings =&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . &lt;br /&gt;
For example you can put every briefing of every seperate mission inside &#039;&#039;mission_briefing_1&#039;&#039;.gui, &#039;&#039;mission_briefing_2&#039;&#039;.gui, &#039;&#039;mission_briefing_3&#039;&#039;.gui, then inside mainmenu_briefing.gui you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mission_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mission_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mission_briefing_3.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each mission inside the campaign you customize settings in file mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See for complete information on this text inside mainmenu_custom_defs.gui, which can be found inside file tdm_gui01.pk4 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 60%&amp;quot;&amp;gt;&lt;br /&gt;
Via the [Expand]-button you can access the old (still viable) method of making advanced text briefings work in campaigns. It&#039;s adviced to not use this, because it means more work and is more complicated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
For advanced setups like the &amp;quot;Timed Flowing Briefing&amp;quot; mentioned in the [[Briefing]] article there are a few modifications to be made to your GUI code. As the mainmenu_briefing.gui file is the same for the whole campaign your GUI needs to know which map the player is about to play next. For this purpose a GUI variable &amp;lt;tt&amp;gt;gui::CurrentMission&amp;lt;/tt&amp;gt; has been introduced which can be used in if-else GUI code blocks in the BriefingStateInit windowDef. For single-missions, mappers just called the GUI animation block like this:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		set &amp;quot;BriefingAnimation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		resetTime &amp;quot;BriefingAnimation&amp;quot; 0;&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
For multi-mission setups an if-else block should be added to switch to the correct briefing animation for the current map:&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Of course you&#039;ll need to define a &amp;lt;tt&amp;gt;BriefingMissionXAnimation&amp;lt;/tt&amp;gt; block for each mission. You can use the instructions in the [[Briefing]] article to learn how to do that, just keep in mind to change the windowDef&#039;s name such that you don&#039;t end up with duplicate names for your windowDefs (this will lead to warnings in the console at game startup at best).&lt;br /&gt;
&lt;br /&gt;
Starting the correct mission briefing animation is only half the rent, you&#039;ll need to stop the correct animation as well when the player proceeds to the objectives screen:&lt;br /&gt;
 windowDef BriefingStateEnd&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
If you don&#039;t do that the player might see remnants of the previous mission&#039;s briefing when proceeding to the next map briefing.&lt;br /&gt;
&lt;br /&gt;
The same holds analogously for the BriefingSkip windowDef which is used to skip the briefing on mouse clicks:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingSkip&lt;br /&gt;
 {&lt;br /&gt;
 	notime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		// Stop the animation&lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Video briefings =&lt;br /&gt;
It&#039;s possible to define briefing/intro videos for each mission in a campaign. To enable videos mappers need to include a mainmenu_custom_defs.gui file in their PK4 and define a few variables in there. You can look at the default file in the TDM PK4s to get more info and read some comments. I&#039;ll include the most important settings briefly here:&lt;br /&gt;
&lt;br /&gt;
Enable SDK-controlled briefing videos by adding this line to your mainmenu_custom_defs.gui file (or uncomment the line if it is present already but commented out):&lt;br /&gt;
 #define BRIEFING_VIDEO_CONTROLLED_BY_SDK 1&lt;br /&gt;
&lt;br /&gt;
Next you&#039;ll need to specify which video to be played for each mission. These are bit more complex:&lt;br /&gt;
&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_MATERIALS &amp;quot;video/tdm_briefing_video;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_LENGTHS &amp;quot;4000;5000&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music video/tdm_briefing_video_sound;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Easy to see, these three definitions refer to the first mission in the campaign, the prefix is &amp;quot;MM_BRIEFING_1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The MM_BRIEFING_1_VIDEO_MATERIALS line specifies the various ROQ materials that should be played (in this order). ROQ files have a maximum length of 60 seconds, so TDM added support to a sequence of ROQs to allow for longer videos. The materials should be separated by semicolons. Be sure to define the playback duration of each clip in the VIDEO_LENGTHS line.&lt;br /&gt;
&lt;br /&gt;
The next line MM_BRIEFING_1_VIDEO_LENGTHS corresponds to the MATERIALS line above and contains the playback duration of each ROQ clip. The time is specified in milliseconds, multiple times are separated by semicolons.&lt;br /&gt;
&lt;br /&gt;
The last line in this triple is defining the sound to be played along the video: MM_BRIEFING_1_VIDEO_SOUND_CMD. Sounds don&#039;t have a length limit, so there is no need to define multiple sounds like with the ROQ clips. Be sure to include the &amp;quot;music&amp;quot; command in the string and to refer to a valid sound shader.&lt;br /&gt;
&lt;br /&gt;
The original TDM mainmenu_custom_defs.gui file contains a lot of comments about these defs, please take a look there to learn more.&lt;br /&gt;
&lt;br /&gt;
Side note: the SDK-controlled video is also available in ordinary (single) mission packs. You don&#039;t need to build a full-blown campaign (with tdm_mapsequence.txt, etc.) to use this option, it&#039;s enough to make the correct #DEFINE statements above.&lt;br /&gt;
&lt;br /&gt;
= De-Briefing Videos =&lt;br /&gt;
With TDM 1.06 and upwards it&#039;s possible to have a video played back immediately after &amp;quot;Mission Complete&amp;quot;, so-called de-briefings.&lt;br /&gt;
&lt;br /&gt;
The mechanism to set these up is very similar to the above &amp;quot;SDK-controlled&amp;quot; briefing videos, all you need is to add the correct #DEFINE lines in your mainmenu_custom_defs.gui file:&lt;br /&gt;
&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_MATERIALS &amp;quot;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_LENGTHS &amp;quot;2000;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music tdm_mainmenu_background_music;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This example will play a credits video after &amp;quot;Mission Complete&amp;quot; for 2 seconds (= 2000 milliseconds). Please refer to the above &amp;quot;Briefings&amp;quot; section to learn about the precise meaning of these lines, they are pretty much analogous.&lt;br /&gt;
&lt;br /&gt;
Side note: this option is not exclusive to campaigns, you can have a de-briefing video in single-mission setups just as well.&lt;br /&gt;
&lt;br /&gt;
= Conditional Objectives =&lt;br /&gt;
You can have your mission objectives depend on the state of objectives in previous missions. It&#039;s possible to set an objective in the second mission to &amp;quot;COMPLETE&amp;quot; if the player managed to fulfill an objective in the first mission.&lt;br /&gt;
&lt;br /&gt;
[[Image:Objective conditions editor.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Consider a campaign consisting of two maps: red.map and blue.map, played in this order. You have an optional objective in red.map telling the player to find 50 loot in gold. If the player manages to complete that objective the mandatory objective in mission 2 &#039;&#039;&amp;quot;Find enough gold for your rent&amp;quot;&#039;&#039; should already be marked as &#039;&#039;&amp;quot;Completed&amp;quot;&#039;&#039;. Such a thing can be achieved through a set of spawnargs that have been introduced in TDM 1.06 (see the [[Objectives#Objective_Conditions|Objectives]] article for reference), but you can do it through the Objectives Editor just as fine.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll assume the use of the Conditions editor is fairly straightforward, but feel free to ask specific questions in our forums.&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
There are a few script methods which are specifically designed to be used in maps. See the file tdm_events.script for more details about them.&lt;br /&gt;
&lt;br /&gt;
===== mission number =====&lt;br /&gt;
Use the getCurrentMission() method on the sys entity to retrieve the current mission number. Note that the mission numbers are 0-based in the code, the function will return 0 for the first mission in a campaign. The following snippet will print the number to the console:&lt;br /&gt;
 sys.println(&amp;quot;Current Mission: &amp;quot; + sys.getCurrentMissionNum());&lt;br /&gt;
&lt;br /&gt;
===== persistent info =====&lt;br /&gt;
There are a couple of script events that can be used to store data in between missions. This data is stored in the so-called &amp;quot;persistent level info&amp;quot;, which is designed to store key/value pairs.&lt;br /&gt;
See &amp;lt;tt&amp;gt;tdm_events.script&amp;lt;/tt&amp;gt; file for further reference:&lt;br /&gt;
&lt;br /&gt;
 void   setPersistentArg( string key, string value );&lt;br /&gt;
 string getPersistentString( string key );&lt;br /&gt;
 float  getPersistentFloat( string key );&lt;br /&gt;
 vector getPersistentVector( string key );&lt;br /&gt;
&lt;br /&gt;
For example, you can store a number value like this (all values are stored as strings):&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;dummyvar&amp;quot;, &amp;quot;20&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Later on you receive the number value like this:&lt;br /&gt;
 float testvar = sys.getPersistentFloat(&amp;quot;dummyvar&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If you ever need to clear out the entire level info there&#039;s a separate routine for that:&lt;br /&gt;
 sys.clearPersistentArgs();&lt;br /&gt;
&lt;br /&gt;
===== game &amp;amp; gui =====&lt;br /&gt;
&lt;br /&gt;
Starting with &#039;&#039;&#039;TDM 2.13&#039;&#039;&#039;, persistent information is also provided as GUI variables ([https://bugs.thedarkmod.com/view.php?id=6509 #6509]).&lt;br /&gt;
The information is automatically synchronized between game script variables and GUI variables.&lt;br /&gt;
&lt;br /&gt;
For example, here is how you access &amp;quot;killed_berny&amp;quot; persistent argument in game script:&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;killed_berny&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
 float value = sys.getPersistentFloat(&amp;quot;killed_berny&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here is how you access it in GUI script:&lt;br /&gt;
 set &amp;quot;gui::persistent_killed_berny&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 if (&amp;quot;gui::persistent_killed_berny&amp;quot; == 0) { ... }&lt;br /&gt;
&lt;br /&gt;
You can add a custom checkbox in GUI briefing, and then customize the game depending on whether the player enabled it or not.&lt;br /&gt;
Or you can implement game script functions &amp;lt;tt&amp;gt;on_mission_complete&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;on_mission_failed&amp;lt;/tt&amp;gt; and save some info about game state in order to customize debriefing.&lt;br /&gt;
This feature can be useful for single missions as well.&lt;br /&gt;
&lt;br /&gt;
= Inventory Items =&lt;br /&gt;
The player&#039;s inventory contains all the keys, tools, lockpicks, lantern as well as all the weapons. The mapper can define which of these should be kept when proceeding to the next mission. Items that are allowed to be kept are called &amp;quot;persistent&amp;quot;, and the corresponding spawnarg controlling that property is called &amp;quot;inv_persistent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tools &amp;amp; Items ==&lt;br /&gt;
By default regular inventory items are not marked as persistent, i.e. the inv_persistent key is set to &amp;quot;0&amp;quot;. Once the mapper flips that spawnarg to &amp;quot;1&amp;quot; the item will be kept throughout the following missions. The item will be kept until the end of the whole campaign, unless:&lt;br /&gt;
* the player drops the item&lt;br /&gt;
* it is removed from the inventory by script or other events&lt;br /&gt;
* a rule on the atdm:campaign_info entity is forcing the item to be removed after &amp;quot;Mission Complete&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Even though TDM 2.02+ will resolve naming conflicts across maps, map authors should try to make sure that persistent items have unique names. For example, if the first map has a persistent item named &amp;quot;My Water Bottle&amp;quot;, none of the subsequent maps should have an item named &amp;quot;My Water Bottle&amp;quot;. If you must have a second water bottle, name it &amp;quot;My Second Water Bottle&amp;quot;, or something along those lines.&lt;br /&gt;
&lt;br /&gt;
If you have a persistent stackable item in map N, and you don&#039;t consume it in that map, and you have another instance of the same stackable item in map N+1 (whether it&#039;s marked &#039;persistent&#039; or not), when you pick it up, it will be added to the stack count of map N&#039;s item and become persistent.&lt;br /&gt;
&lt;br /&gt;
== Weapons &amp;amp; Arrows ==&lt;br /&gt;
All weapon inventory items are persistent by default including their ammo, so without further action the player will keep all his weapons and all the arrows when proceeding to the next mission. However it&#039;s possible to define ammo limits on the atdm:campaign_info entity, which is described below.&lt;br /&gt;
&lt;br /&gt;
Important: it&#039;s not advisable to mess with the inv_persistent spawnarg on weapon items - it&#039;s recommended to leave that spawnarg at the default value and control the carry-over by the rules on the campaign info entity.&lt;br /&gt;
&lt;br /&gt;
== Inventory Item and Weapon Limits ==&lt;br /&gt;
An [[atdm:campaign_info]] entity can be placed in a map to control which items make it to the next mission (and their amount) - and which should be dropped. The rules defined on the [[atdm:campaign_info]] entity will be enforced after the &amp;quot;Mission Complete&amp;quot; event, when the map is still active, i.e. it&#039;s &amp;quot;filtering&amp;quot; outgoing items. Each map can have its own campaign info entity to define its own set of rules.&lt;br /&gt;
&lt;br /&gt;
Please refer to the main [[atdm:campaign_info]] article to get precise info on how to set up these rules.&lt;br /&gt;
&lt;br /&gt;
= Loot Limits =&lt;br /&gt;
Special handling is possible for the amount of loot that is carried over and usable in the shop of the next mission. These so-called &amp;quot;loot carry-over&amp;quot; rules are defined on the shop entity of the respective map, e.g. the shop entity in Mission B will define the loot carry-over roles applicable to the loot collected in Mission A.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Shop#Limiting_the_Loot_from_previous_Missions|Shop]] article for further reference.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Campaigns]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34141</id>
		<title>Setting up Campaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34141"/>
		<updated>2025-12-05T11:03:11Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Text briefings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an attempt to describe the various options mappers need to consider when setting up campaigns or multi-mission packages (I&#039;ll refer to campaigns for both of these for the sake of simplicity). Campaign support has been added in TDM 1.06. &lt;br /&gt;
&lt;br /&gt;
= Map Files =&lt;br /&gt;
Regular, single-map TDM missions are packed in PK4 files, campaigns are no different. If your campaign consists of three missions (&amp;quot;red.map&amp;quot;, &amp;quot;blue.map&amp;quot; and &amp;quot;green.map&amp;quot;), all three of them still go into the same maps folder in your PK4 file.&lt;br /&gt;
&lt;br /&gt;
The actual order in which the missions are to be played is defined through the &amp;lt;tt&amp;gt;tdm_mapsequence.txt&amp;lt;/tt&amp;gt; file, which should be added to the PK4 (just next to the readme.txt). Following the example of the &amp;quot;red&amp;quot;, &amp;quot;blue&amp;quot; and &amp;quot;green&amp;quot; maps above the map sequence file would look like this:&lt;br /&gt;
&lt;br /&gt;
 Mission 1: red&lt;br /&gt;
 Mission 2: blue&lt;br /&gt;
 Mission 3: green&lt;br /&gt;
&lt;br /&gt;
Looking at that, the syntax of the file is pretty much self-explanatory. The first mission has the number one, the map file is mentioned after the colon and the following space. You don&#039;t need to specify the &amp;quot;.map&amp;quot; extension of the map file that is handled automatically. See the main [[tdm_mapsequence.txt]] article for further reference, for this article it&#039;s enough to have the above lines I suppose.&lt;br /&gt;
&lt;br /&gt;
= Text briefings =&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . &lt;br /&gt;
For example you can put every briefing of every seperate mission inside &#039;&#039;mission_briefing_1&#039;&#039;.gui, &#039;&#039;mission_briefing_2&#039;&#039;.gui, &#039;&#039;mission_briefing_3&#039;&#039;.gui, then inside mainmenu_briefing.gui you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mission_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mission_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mission_briefing_3.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each mission inside the campaign you customize settings in file mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See for complete information on this text inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 60%&amp;quot;&amp;gt;&lt;br /&gt;
Via the [Expand]-button you can access the old (still viable) method of making advanced text briefings work in campaigns. It&#039;s adviced to not use this, because it means more work and is more complicated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
For advanced setups like the &amp;quot;Timed Flowing Briefing&amp;quot; mentioned in the [[Briefing]] article there are a few modifications to be made to your GUI code. As the mainmenu_briefing.gui file is the same for the whole campaign your GUI needs to know which map the player is about to play next. For this purpose a GUI variable &amp;lt;tt&amp;gt;gui::CurrentMission&amp;lt;/tt&amp;gt; has been introduced which can be used in if-else GUI code blocks in the BriefingStateInit windowDef. For single-missions, mappers just called the GUI animation block like this:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		set &amp;quot;BriefingAnimation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		resetTime &amp;quot;BriefingAnimation&amp;quot; 0;&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
For multi-mission setups an if-else block should be added to switch to the correct briefing animation for the current map:&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Of course you&#039;ll need to define a &amp;lt;tt&amp;gt;BriefingMissionXAnimation&amp;lt;/tt&amp;gt; block for each mission. You can use the instructions in the [[Briefing]] article to learn how to do that, just keep in mind to change the windowDef&#039;s name such that you don&#039;t end up with duplicate names for your windowDefs (this will lead to warnings in the console at game startup at best).&lt;br /&gt;
&lt;br /&gt;
Starting the correct mission briefing animation is only half the rent, you&#039;ll need to stop the correct animation as well when the player proceeds to the objectives screen:&lt;br /&gt;
 windowDef BriefingStateEnd&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
If you don&#039;t do that the player might see remnants of the previous mission&#039;s briefing when proceeding to the next map briefing.&lt;br /&gt;
&lt;br /&gt;
The same holds analogously for the BriefingSkip windowDef which is used to skip the briefing on mouse clicks:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingSkip&lt;br /&gt;
 {&lt;br /&gt;
 	notime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		// Stop the animation&lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Video briefings =&lt;br /&gt;
It&#039;s possible to define briefing/intro videos for each mission in a campaign. To enable videos mappers need to include a mainmenu_custom_defs.gui file in their PK4 and define a few variables in there. You can look at the default file in the TDM PK4s to get more info and read some comments. I&#039;ll include the most important settings briefly here:&lt;br /&gt;
&lt;br /&gt;
Enable SDK-controlled briefing videos by adding this line to your mainmenu_custom_defs.gui file (or uncomment the line if it is present already but commented out):&lt;br /&gt;
 #define BRIEFING_VIDEO_CONTROLLED_BY_SDK 1&lt;br /&gt;
&lt;br /&gt;
Next you&#039;ll need to specify which video to be played for each mission. These are bit more complex:&lt;br /&gt;
&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_MATERIALS &amp;quot;video/tdm_briefing_video;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_LENGTHS &amp;quot;4000;5000&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music video/tdm_briefing_video_sound;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Easy to see, these three definitions refer to the first mission in the campaign, the prefix is &amp;quot;MM_BRIEFING_1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The MM_BRIEFING_1_VIDEO_MATERIALS line specifies the various ROQ materials that should be played (in this order). ROQ files have a maximum length of 60 seconds, so TDM added support to a sequence of ROQs to allow for longer videos. The materials should be separated by semicolons. Be sure to define the playback duration of each clip in the VIDEO_LENGTHS line.&lt;br /&gt;
&lt;br /&gt;
The next line MM_BRIEFING_1_VIDEO_LENGTHS corresponds to the MATERIALS line above and contains the playback duration of each ROQ clip. The time is specified in milliseconds, multiple times are separated by semicolons.&lt;br /&gt;
&lt;br /&gt;
The last line in this triple is defining the sound to be played along the video: MM_BRIEFING_1_VIDEO_SOUND_CMD. Sounds don&#039;t have a length limit, so there is no need to define multiple sounds like with the ROQ clips. Be sure to include the &amp;quot;music&amp;quot; command in the string and to refer to a valid sound shader.&lt;br /&gt;
&lt;br /&gt;
The original TDM mainmenu_custom_defs.gui file contains a lot of comments about these defs, please take a look there to learn more.&lt;br /&gt;
&lt;br /&gt;
Side note: the SDK-controlled video is also available in ordinary (single) mission packs. You don&#039;t need to build a full-blown campaign (with tdm_mapsequence.txt, etc.) to use this option, it&#039;s enough to make the correct #DEFINE statements above.&lt;br /&gt;
&lt;br /&gt;
= De-Briefing Videos =&lt;br /&gt;
With TDM 1.06 and upwards it&#039;s possible to have a video played back immediately after &amp;quot;Mission Complete&amp;quot;, so-called de-briefings.&lt;br /&gt;
&lt;br /&gt;
The mechanism to set these up is very similar to the above &amp;quot;SDK-controlled&amp;quot; briefing videos, all you need is to add the correct #DEFINE lines in your mainmenu_custom_defs.gui file:&lt;br /&gt;
&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_MATERIALS &amp;quot;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_LENGTHS &amp;quot;2000;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music tdm_mainmenu_background_music;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This example will play a credits video after &amp;quot;Mission Complete&amp;quot; for 2 seconds (= 2000 milliseconds). Please refer to the above &amp;quot;Briefings&amp;quot; section to learn about the precise meaning of these lines, they are pretty much analogous.&lt;br /&gt;
&lt;br /&gt;
Side note: this option is not exclusive to campaigns, you can have a de-briefing video in single-mission setups just as well.&lt;br /&gt;
&lt;br /&gt;
= Conditional Objectives =&lt;br /&gt;
You can have your mission objectives depend on the state of objectives in previous missions. It&#039;s possible to set an objective in the second mission to &amp;quot;COMPLETE&amp;quot; if the player managed to fulfill an objective in the first mission.&lt;br /&gt;
&lt;br /&gt;
[[Image:Objective conditions editor.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Consider a campaign consisting of two maps: red.map and blue.map, played in this order. You have an optional objective in red.map telling the player to find 50 loot in gold. If the player manages to complete that objective the mandatory objective in mission 2 &#039;&#039;&amp;quot;Find enough gold for your rent&amp;quot;&#039;&#039; should already be marked as &#039;&#039;&amp;quot;Completed&amp;quot;&#039;&#039;. Such a thing can be achieved through a set of spawnargs that have been introduced in TDM 1.06 (see the [[Objectives#Objective_Conditions|Objectives]] article for reference), but you can do it through the Objectives Editor just as fine.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll assume the use of the Conditions editor is fairly straightforward, but feel free to ask specific questions in our forums.&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
There are a few script methods which are specifically designed to be used in maps. See the file tdm_events.script for more details about them.&lt;br /&gt;
&lt;br /&gt;
===== mission number =====&lt;br /&gt;
Use the getCurrentMission() method on the sys entity to retrieve the current mission number. Note that the mission numbers are 0-based in the code, the function will return 0 for the first mission in a campaign. The following snippet will print the number to the console:&lt;br /&gt;
 sys.println(&amp;quot;Current Mission: &amp;quot; + sys.getCurrentMissionNum());&lt;br /&gt;
&lt;br /&gt;
===== persistent info =====&lt;br /&gt;
There are a couple of script events that can be used to store data in between missions. This data is stored in the so-called &amp;quot;persistent level info&amp;quot;, which is designed to store key/value pairs.&lt;br /&gt;
See &amp;lt;tt&amp;gt;tdm_events.script&amp;lt;/tt&amp;gt; file for further reference:&lt;br /&gt;
&lt;br /&gt;
 void   setPersistentArg( string key, string value );&lt;br /&gt;
 string getPersistentString( string key );&lt;br /&gt;
 float  getPersistentFloat( string key );&lt;br /&gt;
 vector getPersistentVector( string key );&lt;br /&gt;
&lt;br /&gt;
For example, you can store a number value like this (all values are stored as strings):&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;dummyvar&amp;quot;, &amp;quot;20&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Later on you receive the number value like this:&lt;br /&gt;
 float testvar = sys.getPersistentFloat(&amp;quot;dummyvar&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If you ever need to clear out the entire level info there&#039;s a separate routine for that:&lt;br /&gt;
 sys.clearPersistentArgs();&lt;br /&gt;
&lt;br /&gt;
===== game &amp;amp; gui =====&lt;br /&gt;
&lt;br /&gt;
Starting with &#039;&#039;&#039;TDM 2.13&#039;&#039;&#039;, persistent information is also provided as GUI variables ([https://bugs.thedarkmod.com/view.php?id=6509 #6509]).&lt;br /&gt;
The information is automatically synchronized between game script variables and GUI variables.&lt;br /&gt;
&lt;br /&gt;
For example, here is how you access &amp;quot;killed_berny&amp;quot; persistent argument in game script:&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;killed_berny&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
 float value = sys.getPersistentFloat(&amp;quot;killed_berny&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here is how you access it in GUI script:&lt;br /&gt;
 set &amp;quot;gui::persistent_killed_berny&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 if (&amp;quot;gui::persistent_killed_berny&amp;quot; == 0) { ... }&lt;br /&gt;
&lt;br /&gt;
You can add a custom checkbox in GUI briefing, and then customize the game depending on whether the player enabled it or not.&lt;br /&gt;
Or you can implement game script functions &amp;lt;tt&amp;gt;on_mission_complete&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;on_mission_failed&amp;lt;/tt&amp;gt; and save some info about game state in order to customize debriefing.&lt;br /&gt;
This feature can be useful for single missions as well.&lt;br /&gt;
&lt;br /&gt;
= Inventory Items =&lt;br /&gt;
The player&#039;s inventory contains all the keys, tools, lockpicks, lantern as well as all the weapons. The mapper can define which of these should be kept when proceeding to the next mission. Items that are allowed to be kept are called &amp;quot;persistent&amp;quot;, and the corresponding spawnarg controlling that property is called &amp;quot;inv_persistent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tools &amp;amp; Items ==&lt;br /&gt;
By default regular inventory items are not marked as persistent, i.e. the inv_persistent key is set to &amp;quot;0&amp;quot;. Once the mapper flips that spawnarg to &amp;quot;1&amp;quot; the item will be kept throughout the following missions. The item will be kept until the end of the whole campaign, unless:&lt;br /&gt;
* the player drops the item&lt;br /&gt;
* it is removed from the inventory by script or other events&lt;br /&gt;
* a rule on the atdm:campaign_info entity is forcing the item to be removed after &amp;quot;Mission Complete&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Even though TDM 2.02+ will resolve naming conflicts across maps, map authors should try to make sure that persistent items have unique names. For example, if the first map has a persistent item named &amp;quot;My Water Bottle&amp;quot;, none of the subsequent maps should have an item named &amp;quot;My Water Bottle&amp;quot;. If you must have a second water bottle, name it &amp;quot;My Second Water Bottle&amp;quot;, or something along those lines.&lt;br /&gt;
&lt;br /&gt;
If you have a persistent stackable item in map N, and you don&#039;t consume it in that map, and you have another instance of the same stackable item in map N+1 (whether it&#039;s marked &#039;persistent&#039; or not), when you pick it up, it will be added to the stack count of map N&#039;s item and become persistent.&lt;br /&gt;
&lt;br /&gt;
== Weapons &amp;amp; Arrows ==&lt;br /&gt;
All weapon inventory items are persistent by default including their ammo, so without further action the player will keep all his weapons and all the arrows when proceeding to the next mission. However it&#039;s possible to define ammo limits on the atdm:campaign_info entity, which is described below.&lt;br /&gt;
&lt;br /&gt;
Important: it&#039;s not advisable to mess with the inv_persistent spawnarg on weapon items - it&#039;s recommended to leave that spawnarg at the default value and control the carry-over by the rules on the campaign info entity.&lt;br /&gt;
&lt;br /&gt;
== Inventory Item and Weapon Limits ==&lt;br /&gt;
An [[atdm:campaign_info]] entity can be placed in a map to control which items make it to the next mission (and their amount) - and which should be dropped. The rules defined on the [[atdm:campaign_info]] entity will be enforced after the &amp;quot;Mission Complete&amp;quot; event, when the map is still active, i.e. it&#039;s &amp;quot;filtering&amp;quot; outgoing items. Each map can have its own campaign info entity to define its own set of rules.&lt;br /&gt;
&lt;br /&gt;
Please refer to the main [[atdm:campaign_info]] article to get precise info on how to set up these rules.&lt;br /&gt;
&lt;br /&gt;
= Loot Limits =&lt;br /&gt;
Special handling is possible for the amount of loot that is carried over and usable in the shop of the next mission. These so-called &amp;quot;loot carry-over&amp;quot; rules are defined on the shop entity of the respective map, e.g. the shop entity in Mission B will define the loot carry-over roles applicable to the loot collected in Mission A.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Shop#Limiting_the_Loot_from_previous_Missions|Shop]] article for further reference.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Campaigns]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34140</id>
		<title>Setting up Campaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34140"/>
		<updated>2025-12-05T11:02:31Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an attempt to describe the various options mappers need to consider when setting up campaigns or multi-mission packages (I&#039;ll refer to campaigns for both of these for the sake of simplicity). Campaign support has been added in TDM 1.06. &lt;br /&gt;
&lt;br /&gt;
= Map Files =&lt;br /&gt;
Regular, single-map TDM missions are packed in PK4 files, campaigns are no different. If your campaign consists of three missions (&amp;quot;red.map&amp;quot;, &amp;quot;blue.map&amp;quot; and &amp;quot;green.map&amp;quot;), all three of them still go into the same maps folder in your PK4 file.&lt;br /&gt;
&lt;br /&gt;
The actual order in which the missions are to be played is defined through the &amp;lt;tt&amp;gt;tdm_mapsequence.txt&amp;lt;/tt&amp;gt; file, which should be added to the PK4 (just next to the readme.txt). Following the example of the &amp;quot;red&amp;quot;, &amp;quot;blue&amp;quot; and &amp;quot;green&amp;quot; maps above the map sequence file would look like this:&lt;br /&gt;
&lt;br /&gt;
 Mission 1: red&lt;br /&gt;
 Mission 2: blue&lt;br /&gt;
 Mission 3: green&lt;br /&gt;
&lt;br /&gt;
Looking at that, the syntax of the file is pretty much self-explanatory. The first mission has the number one, the map file is mentioned after the colon and the following space. You don&#039;t need to specify the &amp;quot;.map&amp;quot; extension of the map file that is handled automatically. See the main [[tdm_mapsequence.txt]] article for further reference, for this article it&#039;s enough to have the above lines I suppose.&lt;br /&gt;
&lt;br /&gt;
= Text briefings =&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . &lt;br /&gt;
For example you can put every briefing of every seperate mission inside &#039;&#039;mission_briefing_1&#039;&#039;.gui, &#039;&#039;mission_briefing_2&#039;&#039;.gui, &#039;&#039;mission_briefing_3&#039;&#039;.gui, then inside mainmenu_briefing.gui you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mission_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mission_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mission_briefing_3.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each mission inside the campaign you customize settings in file mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See for complete information on this text inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 60%&amp;quot;&amp;gt;&lt;br /&gt;
Via the &amp;quot;Expand&amp;quot;-button you can access the old (still viable) method of making advanced text briefings work in campaigns. It&#039;s adviced to not use this, because it means more work and is more complicated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
For advanced setups like the &amp;quot;Timed Flowing Briefing&amp;quot; mentioned in the [[Briefing]] article there are a few modifications to be made to your GUI code. As the mainmenu_briefing.gui file is the same for the whole campaign your GUI needs to know which map the player is about to play next. For this purpose a GUI variable &amp;lt;tt&amp;gt;gui::CurrentMission&amp;lt;/tt&amp;gt; has been introduced which can be used in if-else GUI code blocks in the BriefingStateInit windowDef. For single-missions, mappers just called the GUI animation block like this:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		set &amp;quot;BriefingAnimation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		resetTime &amp;quot;BriefingAnimation&amp;quot; 0;&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
For multi-mission setups an if-else block should be added to switch to the correct briefing animation for the current map:&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Of course you&#039;ll need to define a &amp;lt;tt&amp;gt;BriefingMissionXAnimation&amp;lt;/tt&amp;gt; block for each mission. You can use the instructions in the [[Briefing]] article to learn how to do that, just keep in mind to change the windowDef&#039;s name such that you don&#039;t end up with duplicate names for your windowDefs (this will lead to warnings in the console at game startup at best).&lt;br /&gt;
&lt;br /&gt;
Starting the correct mission briefing animation is only half the rent, you&#039;ll need to stop the correct animation as well when the player proceeds to the objectives screen:&lt;br /&gt;
 windowDef BriefingStateEnd&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
If you don&#039;t do that the player might see remnants of the previous mission&#039;s briefing when proceeding to the next map briefing.&lt;br /&gt;
&lt;br /&gt;
The same holds analogously for the BriefingSkip windowDef which is used to skip the briefing on mouse clicks:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingSkip&lt;br /&gt;
 {&lt;br /&gt;
 	notime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		// Stop the animation&lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Video briefings =&lt;br /&gt;
It&#039;s possible to define briefing/intro videos for each mission in a campaign. To enable videos mappers need to include a mainmenu_custom_defs.gui file in their PK4 and define a few variables in there. You can look at the default file in the TDM PK4s to get more info and read some comments. I&#039;ll include the most important settings briefly here:&lt;br /&gt;
&lt;br /&gt;
Enable SDK-controlled briefing videos by adding this line to your mainmenu_custom_defs.gui file (or uncomment the line if it is present already but commented out):&lt;br /&gt;
 #define BRIEFING_VIDEO_CONTROLLED_BY_SDK 1&lt;br /&gt;
&lt;br /&gt;
Next you&#039;ll need to specify which video to be played for each mission. These are bit more complex:&lt;br /&gt;
&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_MATERIALS &amp;quot;video/tdm_briefing_video;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_LENGTHS &amp;quot;4000;5000&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music video/tdm_briefing_video_sound;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Easy to see, these three definitions refer to the first mission in the campaign, the prefix is &amp;quot;MM_BRIEFING_1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The MM_BRIEFING_1_VIDEO_MATERIALS line specifies the various ROQ materials that should be played (in this order). ROQ files have a maximum length of 60 seconds, so TDM added support to a sequence of ROQs to allow for longer videos. The materials should be separated by semicolons. Be sure to define the playback duration of each clip in the VIDEO_LENGTHS line.&lt;br /&gt;
&lt;br /&gt;
The next line MM_BRIEFING_1_VIDEO_LENGTHS corresponds to the MATERIALS line above and contains the playback duration of each ROQ clip. The time is specified in milliseconds, multiple times are separated by semicolons.&lt;br /&gt;
&lt;br /&gt;
The last line in this triple is defining the sound to be played along the video: MM_BRIEFING_1_VIDEO_SOUND_CMD. Sounds don&#039;t have a length limit, so there is no need to define multiple sounds like with the ROQ clips. Be sure to include the &amp;quot;music&amp;quot; command in the string and to refer to a valid sound shader.&lt;br /&gt;
&lt;br /&gt;
The original TDM mainmenu_custom_defs.gui file contains a lot of comments about these defs, please take a look there to learn more.&lt;br /&gt;
&lt;br /&gt;
Side note: the SDK-controlled video is also available in ordinary (single) mission packs. You don&#039;t need to build a full-blown campaign (with tdm_mapsequence.txt, etc.) to use this option, it&#039;s enough to make the correct #DEFINE statements above.&lt;br /&gt;
&lt;br /&gt;
= De-Briefing Videos =&lt;br /&gt;
With TDM 1.06 and upwards it&#039;s possible to have a video played back immediately after &amp;quot;Mission Complete&amp;quot;, so-called de-briefings.&lt;br /&gt;
&lt;br /&gt;
The mechanism to set these up is very similar to the above &amp;quot;SDK-controlled&amp;quot; briefing videos, all you need is to add the correct #DEFINE lines in your mainmenu_custom_defs.gui file:&lt;br /&gt;
&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_MATERIALS &amp;quot;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_LENGTHS &amp;quot;2000;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music tdm_mainmenu_background_music;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This example will play a credits video after &amp;quot;Mission Complete&amp;quot; for 2 seconds (= 2000 milliseconds). Please refer to the above &amp;quot;Briefings&amp;quot; section to learn about the precise meaning of these lines, they are pretty much analogous.&lt;br /&gt;
&lt;br /&gt;
Side note: this option is not exclusive to campaigns, you can have a de-briefing video in single-mission setups just as well.&lt;br /&gt;
&lt;br /&gt;
= Conditional Objectives =&lt;br /&gt;
You can have your mission objectives depend on the state of objectives in previous missions. It&#039;s possible to set an objective in the second mission to &amp;quot;COMPLETE&amp;quot; if the player managed to fulfill an objective in the first mission.&lt;br /&gt;
&lt;br /&gt;
[[Image:Objective conditions editor.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Consider a campaign consisting of two maps: red.map and blue.map, played in this order. You have an optional objective in red.map telling the player to find 50 loot in gold. If the player manages to complete that objective the mandatory objective in mission 2 &#039;&#039;&amp;quot;Find enough gold for your rent&amp;quot;&#039;&#039; should already be marked as &#039;&#039;&amp;quot;Completed&amp;quot;&#039;&#039;. Such a thing can be achieved through a set of spawnargs that have been introduced in TDM 1.06 (see the [[Objectives#Objective_Conditions|Objectives]] article for reference), but you can do it through the Objectives Editor just as fine.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll assume the use of the Conditions editor is fairly straightforward, but feel free to ask specific questions in our forums.&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
There are a few script methods which are specifically designed to be used in maps. See the file tdm_events.script for more details about them.&lt;br /&gt;
&lt;br /&gt;
===== mission number =====&lt;br /&gt;
Use the getCurrentMission() method on the sys entity to retrieve the current mission number. Note that the mission numbers are 0-based in the code, the function will return 0 for the first mission in a campaign. The following snippet will print the number to the console:&lt;br /&gt;
 sys.println(&amp;quot;Current Mission: &amp;quot; + sys.getCurrentMissionNum());&lt;br /&gt;
&lt;br /&gt;
===== persistent info =====&lt;br /&gt;
There are a couple of script events that can be used to store data in between missions. This data is stored in the so-called &amp;quot;persistent level info&amp;quot;, which is designed to store key/value pairs.&lt;br /&gt;
See &amp;lt;tt&amp;gt;tdm_events.script&amp;lt;/tt&amp;gt; file for further reference:&lt;br /&gt;
&lt;br /&gt;
 void   setPersistentArg( string key, string value );&lt;br /&gt;
 string getPersistentString( string key );&lt;br /&gt;
 float  getPersistentFloat( string key );&lt;br /&gt;
 vector getPersistentVector( string key );&lt;br /&gt;
&lt;br /&gt;
For example, you can store a number value like this (all values are stored as strings):&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;dummyvar&amp;quot;, &amp;quot;20&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Later on you receive the number value like this:&lt;br /&gt;
 float testvar = sys.getPersistentFloat(&amp;quot;dummyvar&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If you ever need to clear out the entire level info there&#039;s a separate routine for that:&lt;br /&gt;
 sys.clearPersistentArgs();&lt;br /&gt;
&lt;br /&gt;
===== game &amp;amp; gui =====&lt;br /&gt;
&lt;br /&gt;
Starting with &#039;&#039;&#039;TDM 2.13&#039;&#039;&#039;, persistent information is also provided as GUI variables ([https://bugs.thedarkmod.com/view.php?id=6509 #6509]).&lt;br /&gt;
The information is automatically synchronized between game script variables and GUI variables.&lt;br /&gt;
&lt;br /&gt;
For example, here is how you access &amp;quot;killed_berny&amp;quot; persistent argument in game script:&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;killed_berny&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
 float value = sys.getPersistentFloat(&amp;quot;killed_berny&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here is how you access it in GUI script:&lt;br /&gt;
 set &amp;quot;gui::persistent_killed_berny&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 if (&amp;quot;gui::persistent_killed_berny&amp;quot; == 0) { ... }&lt;br /&gt;
&lt;br /&gt;
You can add a custom checkbox in GUI briefing, and then customize the game depending on whether the player enabled it or not.&lt;br /&gt;
Or you can implement game script functions &amp;lt;tt&amp;gt;on_mission_complete&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;on_mission_failed&amp;lt;/tt&amp;gt; and save some info about game state in order to customize debriefing.&lt;br /&gt;
This feature can be useful for single missions as well.&lt;br /&gt;
&lt;br /&gt;
= Inventory Items =&lt;br /&gt;
The player&#039;s inventory contains all the keys, tools, lockpicks, lantern as well as all the weapons. The mapper can define which of these should be kept when proceeding to the next mission. Items that are allowed to be kept are called &amp;quot;persistent&amp;quot;, and the corresponding spawnarg controlling that property is called &amp;quot;inv_persistent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tools &amp;amp; Items ==&lt;br /&gt;
By default regular inventory items are not marked as persistent, i.e. the inv_persistent key is set to &amp;quot;0&amp;quot;. Once the mapper flips that spawnarg to &amp;quot;1&amp;quot; the item will be kept throughout the following missions. The item will be kept until the end of the whole campaign, unless:&lt;br /&gt;
* the player drops the item&lt;br /&gt;
* it is removed from the inventory by script or other events&lt;br /&gt;
* a rule on the atdm:campaign_info entity is forcing the item to be removed after &amp;quot;Mission Complete&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Even though TDM 2.02+ will resolve naming conflicts across maps, map authors should try to make sure that persistent items have unique names. For example, if the first map has a persistent item named &amp;quot;My Water Bottle&amp;quot;, none of the subsequent maps should have an item named &amp;quot;My Water Bottle&amp;quot;. If you must have a second water bottle, name it &amp;quot;My Second Water Bottle&amp;quot;, or something along those lines.&lt;br /&gt;
&lt;br /&gt;
If you have a persistent stackable item in map N, and you don&#039;t consume it in that map, and you have another instance of the same stackable item in map N+1 (whether it&#039;s marked &#039;persistent&#039; or not), when you pick it up, it will be added to the stack count of map N&#039;s item and become persistent.&lt;br /&gt;
&lt;br /&gt;
== Weapons &amp;amp; Arrows ==&lt;br /&gt;
All weapon inventory items are persistent by default including their ammo, so without further action the player will keep all his weapons and all the arrows when proceeding to the next mission. However it&#039;s possible to define ammo limits on the atdm:campaign_info entity, which is described below.&lt;br /&gt;
&lt;br /&gt;
Important: it&#039;s not advisable to mess with the inv_persistent spawnarg on weapon items - it&#039;s recommended to leave that spawnarg at the default value and control the carry-over by the rules on the campaign info entity.&lt;br /&gt;
&lt;br /&gt;
== Inventory Item and Weapon Limits ==&lt;br /&gt;
An [[atdm:campaign_info]] entity can be placed in a map to control which items make it to the next mission (and their amount) - and which should be dropped. The rules defined on the [[atdm:campaign_info]] entity will be enforced after the &amp;quot;Mission Complete&amp;quot; event, when the map is still active, i.e. it&#039;s &amp;quot;filtering&amp;quot; outgoing items. Each map can have its own campaign info entity to define its own set of rules.&lt;br /&gt;
&lt;br /&gt;
Please refer to the main [[atdm:campaign_info]] article to get precise info on how to set up these rules.&lt;br /&gt;
&lt;br /&gt;
= Loot Limits =&lt;br /&gt;
Special handling is possible for the amount of loot that is carried over and usable in the shop of the next mission. These so-called &amp;quot;loot carry-over&amp;quot; rules are defined on the shop entity of the respective map, e.g. the shop entity in Mission B will define the loot carry-over roles applicable to the loot collected in Mission A.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Shop#Limiting_the_Loot_from_previous_Missions|Shop]] article for further reference.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Campaigns]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34139</id>
		<title>Setting up Campaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34139"/>
		<updated>2025-12-05T11:01:00Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Briefing Videos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an attempt to describe the various options mappers need to consider when setting up campaigns or multi-mission packages (I&#039;ll refer to campaigns for both of these for the sake of simplicity). Campaign support has been added in TDM 1.06. &lt;br /&gt;
&lt;br /&gt;
= Map Files =&lt;br /&gt;
Regular, single-map TDM missions are packed in PK4 files, campaigns are no different. If your campaign consists of three missions (&amp;quot;red.map&amp;quot;, &amp;quot;blue.map&amp;quot; and &amp;quot;green.map&amp;quot;), all three of them still go into the same maps folder in your PK4 file.&lt;br /&gt;
&lt;br /&gt;
The actual order in which the missions are to be played is defined through the &amp;lt;tt&amp;gt;tdm_mapsequence.txt&amp;lt;/tt&amp;gt; file, which should be added to the PK4 (just next to the readme.txt). Following the example of the &amp;quot;red&amp;quot;, &amp;quot;blue&amp;quot; and &amp;quot;green&amp;quot; maps above the map sequence file would look like this:&lt;br /&gt;
&lt;br /&gt;
 Mission 1: red&lt;br /&gt;
 Mission 2: blue&lt;br /&gt;
 Mission 3: green&lt;br /&gt;
&lt;br /&gt;
Looking at that, the syntax of the file is pretty much self-explanatory. The first mission has the number one, the map file is mentioned after the colon and the following space. You don&#039;t need to specify the &amp;quot;.map&amp;quot; extension of the map file that is handled automatically. See the main [[tdm_mapsequence.txt]] article for further reference, for this article it&#039;s enough to have the above lines I suppose.&lt;br /&gt;
&lt;br /&gt;
= Text briefings =&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . &lt;br /&gt;
For example you can put every briefing of every seperate mission inside &#039;&#039;mission_briefing_1&#039;&#039;.gui, &#039;&#039;mission_briefing_2&#039;&#039;.gui, &#039;&#039;mission_briefing_3&#039;&#039;.gui, then inside mainmenu_briefing.gui you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mission_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mission_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mission_briefing_3.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each mission inside the campaign you customize settings in file mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See for complete information on this text inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 60%&amp;quot;&amp;gt;&lt;br /&gt;
Under here is the old (still viable) method of making advanced text briefings work in campaigns. It&#039;s adviced to not use this, because it means more work and is more complicated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
For advanced setups like the &amp;quot;Timed Flowing Briefing&amp;quot; mentioned in the [[Briefing]] article there are a few modifications to be made to your GUI code. As the mainmenu_briefing.gui file is the same for the whole campaign your GUI needs to know which map the player is about to play next. For this purpose a GUI variable &amp;lt;tt&amp;gt;gui::CurrentMission&amp;lt;/tt&amp;gt; has been introduced which can be used in if-else GUI code blocks in the BriefingStateInit windowDef. For single-missions, mappers just called the GUI animation block like this:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		set &amp;quot;BriefingAnimation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		resetTime &amp;quot;BriefingAnimation&amp;quot; 0;&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
For multi-mission setups an if-else block should be added to switch to the correct briefing animation for the current map:&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Of course you&#039;ll need to define a &amp;lt;tt&amp;gt;BriefingMissionXAnimation&amp;lt;/tt&amp;gt; block for each mission. You can use the instructions in the [[Briefing]] article to learn how to do that, just keep in mind to change the windowDef&#039;s name such that you don&#039;t end up with duplicate names for your windowDefs (this will lead to warnings in the console at game startup at best).&lt;br /&gt;
&lt;br /&gt;
Starting the correct mission briefing animation is only half the rent, you&#039;ll need to stop the correct animation as well when the player proceeds to the objectives screen:&lt;br /&gt;
 windowDef BriefingStateEnd&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
If you don&#039;t do that the player might see remnants of the previous mission&#039;s briefing when proceeding to the next map briefing.&lt;br /&gt;
&lt;br /&gt;
The same holds analogously for the BriefingSkip windowDef which is used to skip the briefing on mouse clicks:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingSkip&lt;br /&gt;
 {&lt;br /&gt;
 	notime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		// Stop the animation&lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Video briefings =&lt;br /&gt;
It&#039;s possible to define briefing/intro videos for each mission in a campaign. To enable videos mappers need to include a mainmenu_custom_defs.gui file in their PK4 and define a few variables in there. You can look at the default file in the TDM PK4s to get more info and read some comments. I&#039;ll include the most important settings briefly here:&lt;br /&gt;
&lt;br /&gt;
Enable SDK-controlled briefing videos by adding this line to your mainmenu_custom_defs.gui file (or uncomment the line if it is present already but commented out):&lt;br /&gt;
 #define BRIEFING_VIDEO_CONTROLLED_BY_SDK 1&lt;br /&gt;
&lt;br /&gt;
Next you&#039;ll need to specify which video to be played for each mission. These are bit more complex:&lt;br /&gt;
&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_MATERIALS &amp;quot;video/tdm_briefing_video;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_LENGTHS &amp;quot;4000;5000&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music video/tdm_briefing_video_sound;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Easy to see, these three definitions refer to the first mission in the campaign, the prefix is &amp;quot;MM_BRIEFING_1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The MM_BRIEFING_1_VIDEO_MATERIALS line specifies the various ROQ materials that should be played (in this order). ROQ files have a maximum length of 60 seconds, so TDM added support to a sequence of ROQs to allow for longer videos. The materials should be separated by semicolons. Be sure to define the playback duration of each clip in the VIDEO_LENGTHS line.&lt;br /&gt;
&lt;br /&gt;
The next line MM_BRIEFING_1_VIDEO_LENGTHS corresponds to the MATERIALS line above and contains the playback duration of each ROQ clip. The time is specified in milliseconds, multiple times are separated by semicolons.&lt;br /&gt;
&lt;br /&gt;
The last line in this triple is defining the sound to be played along the video: MM_BRIEFING_1_VIDEO_SOUND_CMD. Sounds don&#039;t have a length limit, so there is no need to define multiple sounds like with the ROQ clips. Be sure to include the &amp;quot;music&amp;quot; command in the string and to refer to a valid sound shader.&lt;br /&gt;
&lt;br /&gt;
The original TDM mainmenu_custom_defs.gui file contains a lot of comments about these defs, please take a look there to learn more.&lt;br /&gt;
&lt;br /&gt;
Side note: the SDK-controlled video is also available in ordinary (single) mission packs. You don&#039;t need to build a full-blown campaign (with tdm_mapsequence.txt, etc.) to use this option, it&#039;s enough to make the correct #DEFINE statements above.&lt;br /&gt;
&lt;br /&gt;
= De-Briefing Videos =&lt;br /&gt;
With TDM 1.06 and upwards it&#039;s possible to have a video played back immediately after &amp;quot;Mission Complete&amp;quot;, so-called de-briefings.&lt;br /&gt;
&lt;br /&gt;
The mechanism to set these up is very similar to the above &amp;quot;SDK-controlled&amp;quot; briefing videos, all you need is to add the correct #DEFINE lines in your mainmenu_custom_defs.gui file:&lt;br /&gt;
&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_MATERIALS &amp;quot;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_LENGTHS &amp;quot;2000;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music tdm_mainmenu_background_music;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This example will play a credits video after &amp;quot;Mission Complete&amp;quot; for 2 seconds (= 2000 milliseconds). Please refer to the above &amp;quot;Briefings&amp;quot; section to learn about the precise meaning of these lines, they are pretty much analogous.&lt;br /&gt;
&lt;br /&gt;
Side note: this option is not exclusive to campaigns, you can have a de-briefing video in single-mission setups just as well.&lt;br /&gt;
&lt;br /&gt;
= Conditional Objectives =&lt;br /&gt;
You can have your mission objectives depend on the state of objectives in previous missions. It&#039;s possible to set an objective in the second mission to &amp;quot;COMPLETE&amp;quot; if the player managed to fulfill an objective in the first mission.&lt;br /&gt;
&lt;br /&gt;
[[Image:Objective conditions editor.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Consider a campaign consisting of two maps: red.map and blue.map, played in this order. You have an optional objective in red.map telling the player to find 50 loot in gold. If the player manages to complete that objective the mandatory objective in mission 2 &#039;&#039;&amp;quot;Find enough gold for your rent&amp;quot;&#039;&#039; should already be marked as &#039;&#039;&amp;quot;Completed&amp;quot;&#039;&#039;. Such a thing can be achieved through a set of spawnargs that have been introduced in TDM 1.06 (see the [[Objectives#Objective_Conditions|Objectives]] article for reference), but you can do it through the Objectives Editor just as fine.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll assume the use of the Conditions editor is fairly straightforward, but feel free to ask specific questions in our forums.&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
There are a few script methods which are specifically designed to be used in maps. See the file tdm_events.script for more details about them.&lt;br /&gt;
&lt;br /&gt;
===== mission number =====&lt;br /&gt;
Use the getCurrentMission() method on the sys entity to retrieve the current mission number. Note that the mission numbers are 0-based in the code, the function will return 0 for the first mission in a campaign. The following snippet will print the number to the console:&lt;br /&gt;
 sys.println(&amp;quot;Current Mission: &amp;quot; + sys.getCurrentMissionNum());&lt;br /&gt;
&lt;br /&gt;
===== persistent info =====&lt;br /&gt;
There are a couple of script events that can be used to store data in between missions. This data is stored in the so-called &amp;quot;persistent level info&amp;quot;, which is designed to store key/value pairs.&lt;br /&gt;
See &amp;lt;tt&amp;gt;tdm_events.script&amp;lt;/tt&amp;gt; file for further reference:&lt;br /&gt;
&lt;br /&gt;
 void   setPersistentArg( string key, string value );&lt;br /&gt;
 string getPersistentString( string key );&lt;br /&gt;
 float  getPersistentFloat( string key );&lt;br /&gt;
 vector getPersistentVector( string key );&lt;br /&gt;
&lt;br /&gt;
For example, you can store a number value like this (all values are stored as strings):&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;dummyvar&amp;quot;, &amp;quot;20&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Later on you receive the number value like this:&lt;br /&gt;
 float testvar = sys.getPersistentFloat(&amp;quot;dummyvar&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If you ever need to clear out the entire level info there&#039;s a separate routine for that:&lt;br /&gt;
 sys.clearPersistentArgs();&lt;br /&gt;
&lt;br /&gt;
===== game &amp;amp; gui =====&lt;br /&gt;
&lt;br /&gt;
Starting with &#039;&#039;&#039;TDM 2.13&#039;&#039;&#039;, persistent information is also provided as GUI variables ([https://bugs.thedarkmod.com/view.php?id=6509 #6509]).&lt;br /&gt;
The information is automatically synchronized between game script variables and GUI variables.&lt;br /&gt;
&lt;br /&gt;
For example, here is how you access &amp;quot;killed_berny&amp;quot; persistent argument in game script:&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;killed_berny&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
 float value = sys.getPersistentFloat(&amp;quot;killed_berny&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here is how you access it in GUI script:&lt;br /&gt;
 set &amp;quot;gui::persistent_killed_berny&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 if (&amp;quot;gui::persistent_killed_berny&amp;quot; == 0) { ... }&lt;br /&gt;
&lt;br /&gt;
You can add a custom checkbox in GUI briefing, and then customize the game depending on whether the player enabled it or not.&lt;br /&gt;
Or you can implement game script functions &amp;lt;tt&amp;gt;on_mission_complete&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;on_mission_failed&amp;lt;/tt&amp;gt; and save some info about game state in order to customize debriefing.&lt;br /&gt;
This feature can be useful for single missions as well.&lt;br /&gt;
&lt;br /&gt;
= Inventory Items =&lt;br /&gt;
The player&#039;s inventory contains all the keys, tools, lockpicks, lantern as well as all the weapons. The mapper can define which of these should be kept when proceeding to the next mission. Items that are allowed to be kept are called &amp;quot;persistent&amp;quot;, and the corresponding spawnarg controlling that property is called &amp;quot;inv_persistent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tools &amp;amp; Items ==&lt;br /&gt;
By default regular inventory items are not marked as persistent, i.e. the inv_persistent key is set to &amp;quot;0&amp;quot;. Once the mapper flips that spawnarg to &amp;quot;1&amp;quot; the item will be kept throughout the following missions. The item will be kept until the end of the whole campaign, unless:&lt;br /&gt;
* the player drops the item&lt;br /&gt;
* it is removed from the inventory by script or other events&lt;br /&gt;
* a rule on the atdm:campaign_info entity is forcing the item to be removed after &amp;quot;Mission Complete&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Even though TDM 2.02+ will resolve naming conflicts across maps, map authors should try to make sure that persistent items have unique names. For example, if the first map has a persistent item named &amp;quot;My Water Bottle&amp;quot;, none of the subsequent maps should have an item named &amp;quot;My Water Bottle&amp;quot;. If you must have a second water bottle, name it &amp;quot;My Second Water Bottle&amp;quot;, or something along those lines.&lt;br /&gt;
&lt;br /&gt;
If you have a persistent stackable item in map N, and you don&#039;t consume it in that map, and you have another instance of the same stackable item in map N+1 (whether it&#039;s marked &#039;persistent&#039; or not), when you pick it up, it will be added to the stack count of map N&#039;s item and become persistent.&lt;br /&gt;
&lt;br /&gt;
== Weapons &amp;amp; Arrows ==&lt;br /&gt;
All weapon inventory items are persistent by default including their ammo, so without further action the player will keep all his weapons and all the arrows when proceeding to the next mission. However it&#039;s possible to define ammo limits on the atdm:campaign_info entity, which is described below.&lt;br /&gt;
&lt;br /&gt;
Important: it&#039;s not advisable to mess with the inv_persistent spawnarg on weapon items - it&#039;s recommended to leave that spawnarg at the default value and control the carry-over by the rules on the campaign info entity.&lt;br /&gt;
&lt;br /&gt;
== Inventory Item and Weapon Limits ==&lt;br /&gt;
An [[atdm:campaign_info]] entity can be placed in a map to control which items make it to the next mission (and their amount) - and which should be dropped. The rules defined on the [[atdm:campaign_info]] entity will be enforced after the &amp;quot;Mission Complete&amp;quot; event, when the map is still active, i.e. it&#039;s &amp;quot;filtering&amp;quot; outgoing items. Each map can have its own campaign info entity to define its own set of rules.&lt;br /&gt;
&lt;br /&gt;
Please refer to the main [[atdm:campaign_info]] article to get precise info on how to set up these rules.&lt;br /&gt;
&lt;br /&gt;
= Loot Limits =&lt;br /&gt;
Special handling is possible for the amount of loot that is carried over and usable in the shop of the next mission. These so-called &amp;quot;loot carry-over&amp;quot; rules are defined on the shop entity of the respective map, e.g. the shop entity in Mission B will define the loot carry-over roles applicable to the loot collected in Mission A.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Shop#Limiting_the_Loot_from_previous_Missions|Shop]] article for further reference.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Campaigns]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34138</id>
		<title>Setting up Campaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&amp;diff=34138"/>
		<updated>2025-12-05T10:58:53Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Briefings */ Updatet the text with a &amp;quot;new&amp;quot; (tdm 2.08) method for making campaigns work. Got info from Stgatilov.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an attempt to describe the various options mappers need to consider when setting up campaigns or multi-mission packages (I&#039;ll refer to campaigns for both of these for the sake of simplicity). Campaign support has been added in TDM 1.06. &lt;br /&gt;
&lt;br /&gt;
= Map Files =&lt;br /&gt;
Regular, single-map TDM missions are packed in PK4 files, campaigns are no different. If your campaign consists of three missions (&amp;quot;red.map&amp;quot;, &amp;quot;blue.map&amp;quot; and &amp;quot;green.map&amp;quot;), all three of them still go into the same maps folder in your PK4 file.&lt;br /&gt;
&lt;br /&gt;
The actual order in which the missions are to be played is defined through the &amp;lt;tt&amp;gt;tdm_mapsequence.txt&amp;lt;/tt&amp;gt; file, which should be added to the PK4 (just next to the readme.txt). Following the example of the &amp;quot;red&amp;quot;, &amp;quot;blue&amp;quot; and &amp;quot;green&amp;quot; maps above the map sequence file would look like this:&lt;br /&gt;
&lt;br /&gt;
 Mission 1: red&lt;br /&gt;
 Mission 2: blue&lt;br /&gt;
 Mission 3: green&lt;br /&gt;
&lt;br /&gt;
Looking at that, the syntax of the file is pretty much self-explanatory. The first mission has the number one, the map file is mentioned after the colon and the following space. You don&#039;t need to specify the &amp;quot;.map&amp;quot; extension of the map file that is handled automatically. See the main [[tdm_mapsequence.txt]] article for further reference, for this article it&#039;s enough to have the above lines I suppose.&lt;br /&gt;
&lt;br /&gt;
= Text briefings =&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . &lt;br /&gt;
For example you can put every briefing of every seperate mission inside &#039;&#039;mission_briefing_1&#039;&#039;.gui, &#039;&#039;mission_briefing_2&#039;&#039;.gui, &#039;&#039;mission_briefing_3&#039;&#039;.gui, then inside mainmenu_briefing.gui you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mission_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mission_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mission_briefing_3.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each mission inside the campaign you customize settings in file mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
       #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
       #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See for complete information on this text inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 60%&amp;quot;&amp;gt;&lt;br /&gt;
Under here is the old (still viable) method of making advanced text briefings work in campaigns. It&#039;s adviced to not use this, because it means more work and is more complicated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
For advanced setups like the &amp;quot;Timed Flowing Briefing&amp;quot; mentioned in the [[Briefing]] article there are a few modifications to be made to your GUI code. As the mainmenu_briefing.gui file is the same for the whole campaign your GUI needs to know which map the player is about to play next. For this purpose a GUI variable &amp;lt;tt&amp;gt;gui::CurrentMission&amp;lt;/tt&amp;gt; has been introduced which can be used in if-else GUI code blocks in the BriefingStateInit windowDef. For single-missions, mappers just called the GUI animation block like this:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		set &amp;quot;BriefingAnimation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		resetTime &amp;quot;BriefingAnimation&amp;quot; 0;&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
For multi-mission setups an if-else block should be added to switch to the correct briefing animation for the current map:&lt;br /&gt;
 windowDef BriefingStateInit&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	// Init methods have onTime 10 instead of onTime 0.&lt;br /&gt;
 	onTime 10&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Of course you&#039;ll need to define a &amp;lt;tt&amp;gt;BriefingMissionXAnimation&amp;lt;/tt&amp;gt; block for each mission. You can use the instructions in the [[Briefing]] article to learn how to do that, just keep in mind to change the windowDef&#039;s name such that you don&#039;t end up with duplicate names for your windowDefs (this will lead to warnings in the console at game startup at best).&lt;br /&gt;
&lt;br /&gt;
Starting the correct mission briefing animation is only half the rent, you&#039;ll need to stop the correct animation as well when the player proceeds to the objectives screen:&lt;br /&gt;
 windowDef BriefingStateEnd&lt;br /&gt;
 {&lt;br /&gt;
 	noTime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;0&amp;quot;;&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
If you don&#039;t do that the player might see remnants of the previous mission&#039;s briefing when proceeding to the next map briefing.&lt;br /&gt;
&lt;br /&gt;
The same holds analogously for the BriefingSkip windowDef which is used to skip the briefing on mouse clicks:&lt;br /&gt;
&lt;br /&gt;
 windowDef BriefingSkip&lt;br /&gt;
 {&lt;br /&gt;
 	notime 1&lt;br /&gt;
 &lt;br /&gt;
 	onTime 0&lt;br /&gt;
 	{&lt;br /&gt;
 		// ... stuff&lt;br /&gt;
 &lt;br /&gt;
 		// Stop the animation&lt;br /&gt;
 		if (&amp;quot;gui::CurrentMission&amp;quot; == 1)&lt;br /&gt;
 		{&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission1Animation&amp;quot; 0;&lt;br /&gt;
 			set &amp;quot;BriefingMission1Animation::notime&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if (&amp;quot;gui::CurrentMission&amp;quot; == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			set &amp;quot;BriefingMission2Animation::visible&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 			resetTime &amp;quot;BriefingMission2Animation&amp;quot; 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Briefing Videos =&lt;br /&gt;
It&#039;s possible to define briefing/intro videos for each mission in a campaign. To enable videos mappers need to include a mainmenu_custom_defs.gui file in their PK4 and define a few variables in there. You can look at the default file in the TDM PK4s to get more info and read some comments. I&#039;ll include the most important settings briefly here:&lt;br /&gt;
&lt;br /&gt;
Enable SDK-controlled briefing videos by adding this line to your mainmenu_custom_defs.gui file (or uncomment the line if it is present already but commented out):&lt;br /&gt;
 #define BRIEFING_VIDEO_CONTROLLED_BY_SDK 1&lt;br /&gt;
&lt;br /&gt;
Next you&#039;ll need to specify which video to be played for each mission. These are bit more complex:&lt;br /&gt;
&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_MATERIALS &amp;quot;video/tdm_briefing_video;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_LENGTHS &amp;quot;4000;5000&amp;quot;&lt;br /&gt;
 #define MM_BRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music video/tdm_briefing_video_sound;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Easy to see, these three definitions refer to the first mission in the campaign, the prefix is &amp;quot;MM_BRIEFING_1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The MM_BRIEFING_1_VIDEO_MATERIALS line specifies the various ROQ materials that should be played (in this order). ROQ files have a maximum length of 60 seconds, so TDM added support to a sequence of ROQs to allow for longer videos. The materials should be separated by semicolons. Be sure to define the playback duration of each clip in the VIDEO_LENGTHS line.&lt;br /&gt;
&lt;br /&gt;
The next line MM_BRIEFING_1_VIDEO_LENGTHS corresponds to the MATERIALS line above and contains the playback duration of each ROQ clip. The time is specified in milliseconds, multiple times are separated by semicolons.&lt;br /&gt;
&lt;br /&gt;
The last line in this triple is defining the sound to be played along the video: MM_BRIEFING_1_VIDEO_SOUND_CMD. Sounds don&#039;t have a length limit, so there is no need to define multiple sounds like with the ROQ clips. Be sure to include the &amp;quot;music&amp;quot; command in the string and to refer to a valid sound shader.&lt;br /&gt;
&lt;br /&gt;
The original TDM mainmenu_custom_defs.gui file contains a lot of comments about these defs, please take a look there to learn more.&lt;br /&gt;
&lt;br /&gt;
Side note: the SDK-controlled video is also available in ordinary (single) mission packs. You don&#039;t need to build a full-blown campaign (with tdm_mapsequence.txt, etc.) to use this option, it&#039;s enough to make the correct #DEFINE statements above.&lt;br /&gt;
&lt;br /&gt;
= De-Briefing Videos =&lt;br /&gt;
With TDM 1.06 and upwards it&#039;s possible to have a video played back immediately after &amp;quot;Mission Complete&amp;quot;, so-called de-briefings.&lt;br /&gt;
&lt;br /&gt;
The mechanism to set these up is very similar to the above &amp;quot;SDK-controlled&amp;quot; briefing videos, all you need is to add the correct #DEFINE lines in your mainmenu_custom_defs.gui file:&lt;br /&gt;
&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_MATERIALS &amp;quot;guis/video/credits/typing_sequence01;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_LENGTHS &amp;quot;2000;&amp;quot;&lt;br /&gt;
 #define MM_DEBRIEFING_1_VIDEO_SOUND_CMD &amp;quot;music tdm_mainmenu_background_music;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This example will play a credits video after &amp;quot;Mission Complete&amp;quot; for 2 seconds (= 2000 milliseconds). Please refer to the above &amp;quot;Briefings&amp;quot; section to learn about the precise meaning of these lines, they are pretty much analogous.&lt;br /&gt;
&lt;br /&gt;
Side note: this option is not exclusive to campaigns, you can have a de-briefing video in single-mission setups just as well.&lt;br /&gt;
&lt;br /&gt;
= Conditional Objectives =&lt;br /&gt;
You can have your mission objectives depend on the state of objectives in previous missions. It&#039;s possible to set an objective in the second mission to &amp;quot;COMPLETE&amp;quot; if the player managed to fulfill an objective in the first mission.&lt;br /&gt;
&lt;br /&gt;
[[Image:Objective conditions editor.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Consider a campaign consisting of two maps: red.map and blue.map, played in this order. You have an optional objective in red.map telling the player to find 50 loot in gold. If the player manages to complete that objective the mandatory objective in mission 2 &#039;&#039;&amp;quot;Find enough gold for your rent&amp;quot;&#039;&#039; should already be marked as &#039;&#039;&amp;quot;Completed&amp;quot;&#039;&#039;. Such a thing can be achieved through a set of spawnargs that have been introduced in TDM 1.06 (see the [[Objectives#Objective_Conditions|Objectives]] article for reference), but you can do it through the Objectives Editor just as fine.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll assume the use of the Conditions editor is fairly straightforward, but feel free to ask specific questions in our forums.&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
There are a few script methods which are specifically designed to be used in maps. See the file tdm_events.script for more details about them.&lt;br /&gt;
&lt;br /&gt;
===== mission number =====&lt;br /&gt;
Use the getCurrentMission() method on the sys entity to retrieve the current mission number. Note that the mission numbers are 0-based in the code, the function will return 0 for the first mission in a campaign. The following snippet will print the number to the console:&lt;br /&gt;
 sys.println(&amp;quot;Current Mission: &amp;quot; + sys.getCurrentMissionNum());&lt;br /&gt;
&lt;br /&gt;
===== persistent info =====&lt;br /&gt;
There are a couple of script events that can be used to store data in between missions. This data is stored in the so-called &amp;quot;persistent level info&amp;quot;, which is designed to store key/value pairs.&lt;br /&gt;
See &amp;lt;tt&amp;gt;tdm_events.script&amp;lt;/tt&amp;gt; file for further reference:&lt;br /&gt;
&lt;br /&gt;
 void   setPersistentArg( string key, string value );&lt;br /&gt;
 string getPersistentString( string key );&lt;br /&gt;
 float  getPersistentFloat( string key );&lt;br /&gt;
 vector getPersistentVector( string key );&lt;br /&gt;
&lt;br /&gt;
For example, you can store a number value like this (all values are stored as strings):&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;dummyvar&amp;quot;, &amp;quot;20&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Later on you receive the number value like this:&lt;br /&gt;
 float testvar = sys.getPersistentFloat(&amp;quot;dummyvar&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If you ever need to clear out the entire level info there&#039;s a separate routine for that:&lt;br /&gt;
 sys.clearPersistentArgs();&lt;br /&gt;
&lt;br /&gt;
===== game &amp;amp; gui =====&lt;br /&gt;
&lt;br /&gt;
Starting with &#039;&#039;&#039;TDM 2.13&#039;&#039;&#039;, persistent information is also provided as GUI variables ([https://bugs.thedarkmod.com/view.php?id=6509 #6509]).&lt;br /&gt;
The information is automatically synchronized between game script variables and GUI variables.&lt;br /&gt;
&lt;br /&gt;
For example, here is how you access &amp;quot;killed_berny&amp;quot; persistent argument in game script:&lt;br /&gt;
 sys.setPersistentArg(&amp;quot;killed_berny&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
 float value = sys.getPersistentFloat(&amp;quot;killed_berny&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here is how you access it in GUI script:&lt;br /&gt;
 set &amp;quot;gui::persistent_killed_berny&amp;quot; &amp;quot;1&amp;quot;;&lt;br /&gt;
 if (&amp;quot;gui::persistent_killed_berny&amp;quot; == 0) { ... }&lt;br /&gt;
&lt;br /&gt;
You can add a custom checkbox in GUI briefing, and then customize the game depending on whether the player enabled it or not.&lt;br /&gt;
Or you can implement game script functions &amp;lt;tt&amp;gt;on_mission_complete&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;on_mission_failed&amp;lt;/tt&amp;gt; and save some info about game state in order to customize debriefing.&lt;br /&gt;
This feature can be useful for single missions as well.&lt;br /&gt;
&lt;br /&gt;
= Inventory Items =&lt;br /&gt;
The player&#039;s inventory contains all the keys, tools, lockpicks, lantern as well as all the weapons. The mapper can define which of these should be kept when proceeding to the next mission. Items that are allowed to be kept are called &amp;quot;persistent&amp;quot;, and the corresponding spawnarg controlling that property is called &amp;quot;inv_persistent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tools &amp;amp; Items ==&lt;br /&gt;
By default regular inventory items are not marked as persistent, i.e. the inv_persistent key is set to &amp;quot;0&amp;quot;. Once the mapper flips that spawnarg to &amp;quot;1&amp;quot; the item will be kept throughout the following missions. The item will be kept until the end of the whole campaign, unless:&lt;br /&gt;
* the player drops the item&lt;br /&gt;
* it is removed from the inventory by script or other events&lt;br /&gt;
* a rule on the atdm:campaign_info entity is forcing the item to be removed after &amp;quot;Mission Complete&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Even though TDM 2.02+ will resolve naming conflicts across maps, map authors should try to make sure that persistent items have unique names. For example, if the first map has a persistent item named &amp;quot;My Water Bottle&amp;quot;, none of the subsequent maps should have an item named &amp;quot;My Water Bottle&amp;quot;. If you must have a second water bottle, name it &amp;quot;My Second Water Bottle&amp;quot;, or something along those lines.&lt;br /&gt;
&lt;br /&gt;
If you have a persistent stackable item in map N, and you don&#039;t consume it in that map, and you have another instance of the same stackable item in map N+1 (whether it&#039;s marked &#039;persistent&#039; or not), when you pick it up, it will be added to the stack count of map N&#039;s item and become persistent.&lt;br /&gt;
&lt;br /&gt;
== Weapons &amp;amp; Arrows ==&lt;br /&gt;
All weapon inventory items are persistent by default including their ammo, so without further action the player will keep all his weapons and all the arrows when proceeding to the next mission. However it&#039;s possible to define ammo limits on the atdm:campaign_info entity, which is described below.&lt;br /&gt;
&lt;br /&gt;
Important: it&#039;s not advisable to mess with the inv_persistent spawnarg on weapon items - it&#039;s recommended to leave that spawnarg at the default value and control the carry-over by the rules on the campaign info entity.&lt;br /&gt;
&lt;br /&gt;
== Inventory Item and Weapon Limits ==&lt;br /&gt;
An [[atdm:campaign_info]] entity can be placed in a map to control which items make it to the next mission (and their amount) - and which should be dropped. The rules defined on the [[atdm:campaign_info]] entity will be enforced after the &amp;quot;Mission Complete&amp;quot; event, when the map is still active, i.e. it&#039;s &amp;quot;filtering&amp;quot; outgoing items. Each map can have its own campaign info entity to define its own set of rules.&lt;br /&gt;
&lt;br /&gt;
Please refer to the main [[atdm:campaign_info]] article to get precise info on how to set up these rules.&lt;br /&gt;
&lt;br /&gt;
= Loot Limits =&lt;br /&gt;
Special handling is possible for the amount of loot that is carried over and usable in the shop of the next mission. These so-called &amp;quot;loot carry-over&amp;quot; rules are defined on the shop entity of the respective map, e.g. the shop entity in Mission B will define the loot carry-over roles applicable to the loot collected in Mission A.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Shop#Limiting_the_Loot_from_previous_Missions|Shop]] article for further reference.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Campaigns]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Layers&amp;diff=34137</id>
		<title>Layers</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Layers&amp;diff=34137"/>
		<updated>2025-12-01T23:50:04Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Alternatives */ added &amp;quot;selection focus&amp;quot; because I think it&amp;#039;s related&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
[[Image:LayerInspector.jpg|thumb|368px|right|The layer inspector]]&lt;br /&gt;
The idea of layers to organize and simplify the users experience in editing media is not a new one. Most image editing software like Photoshop or The Gimp have this feature as well as several 3D modeling/mapping programs, including Dark Radiant, of course. If you are new to the concept of layers, just imagine them as a convenient way to hide elements that are currently in the way.&lt;br /&gt;
Please note that layers are only a tool to organize your map, they have no effect in the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Layers_enabled.jpg|368px|thumb|right|Without layers, working in this cluttered space would be a nightmare...]]&lt;br /&gt;
== The Layer Inspector ==&lt;br /&gt;
To use Dark Radiant&#039;s layer feature, open the layer inspector with the default shortcut {{Key|Ctrl+L}} or via the View-&amp;gt;Layers menu entry. If you haven&#039;t tinkered with layers yet you should see a list with exactly one entry called &#039;&#039;Default&#039;&#039; (unlike in the screenshot to the right). This is the layer that Dark Radiant automatically creates for you when you begin a new map and that every element belongs to unless you reassign it. It is in every map and can not be removed. &lt;br /&gt;
&lt;br /&gt;
In the layer inspector window you can do the following things:&lt;br /&gt;
* By clicking on the checkbox to the left of the layer name you can show/hide a layer respectively it&#039;s elements&lt;br /&gt;
* Clicking the layer name itself will select/deselect all members of that layer.&lt;br /&gt;
* The two buttons to the right of the layer name allow you to change it&#039;s name and to delete a layer (in that order). If you delete a layer, it&#039;s elements will not be removed from the map, but assigned to the Default layer instead.&lt;br /&gt;
* Click on &#039;&#039;New&#039;&#039; to create a new layer. You&#039;ll be prompted to give it a unique and - preferably - meaningful name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Layers_disabled.jpg|368px|thumb|right|...but with most of the layers hidden from view everything becomes clear again.]]&lt;br /&gt;
== How to Assign Elements to Layers ==&lt;br /&gt;
Select one or more elements and then right click anywhere in the orthogonal view. At the bottom of the context menu you should see the following items:&lt;br /&gt;
* &#039;&#039;&#039;Create Layer...&#039;&#039;&#039;: Same as &#039;&#039;New&#039;&#039; in the layer inspector.&lt;br /&gt;
* &#039;&#039;&#039;Add to Layer...&#039;&#039;&#039;: If you add something to a layer, it will become a member of this layer but also remains in the layers it already belongs to.&lt;br /&gt;
* &#039;&#039;&#039;Move to Layer...&#039;&#039;&#039;: Same as above, but the element will exclusively be a member of the newly assigned layer.&lt;br /&gt;
* &#039;&#039;&#039;Remove from Layer...&#039;&#039;&#039;: Removes an element from a layer. Note that the list shows all layers, not only those that the selected element is a member of.&lt;br /&gt;
&lt;br /&gt;
== Alternatives ==&lt;br /&gt;
There are no real alternatives to layers but three very convenient companions that you may use alongside:&lt;br /&gt;
* Select anything you don&#039;t want to see and press {{Key|H}} to hide it from view. Press {{Key|Shift+H}} to show it again. If you hide a selection then all the elements you hid previously will remain invisible.&lt;br /&gt;
* With [[Defining custom Filters in DarkRadiant|filters]] you can hide specific kinds of entities or textures by using [http://en.wikipedia.org/wiki/Regex regular expressions].&lt;br /&gt;
{{editing}}{{darkradiant}}&lt;br /&gt;
* With &amp;quot;Selection Focus&amp;quot; you can select some things, go into &amp;quot;Selection Focus&amp;quot; mode (Default key Ctrl-F, if you want to modify the key, it&#039;s named &amp;quot;ToggleSelectionFocus&amp;quot;) and then you can modify those things without being able to select and modify surrounding elements in the map, but the surroundings are still visible when &amp;quot;Selection focus&amp;quot; is active, while with filters and layers other things get hidden in order to focus on specific things.&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34136</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34136"/>
		<updated>2025-11-30T23:57:25Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Draft for updated campaign documentation on: https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&lt;br /&gt;
&lt;br /&gt;
Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . Custom settings related to that mission can be done in the file mainmenu_custom_defs.gui.&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, if you need to separately enable/disable stages or change menu backgrounds, you can make multiple sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
     #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
     #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to play a different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 in mainmenu_custom_defs.gui and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_1&amp;quot;&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_1;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_2&amp;quot;&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_2;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then inside mainmenu_briefing.gui  you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mainmenu_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mainmenu_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Stuff under here are just unrelated tests}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34135</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34135"/>
		<updated>2025-11-30T18:46:32Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Draft for updated campaign documentation on: https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&lt;br /&gt;
&lt;br /&gt;
Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . Custom settings related to that mission can be done in the file mainmenu_custom_defs.gui.&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, if you need to separately enable/disable stages or change menu backgrounds, you can make multiple sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
     #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
     #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to play a different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 in mainmenu_custom_defs.gui and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_1&amp;quot;&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_1;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_2&amp;quot;&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_2;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then inside mainmenu_briefing.gui  you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mainmenu_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mainmenu_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Stuff under here are just unrelated tests}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34134</id>
		<title>In-game Map Entities</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34134"/>
		<updated>2025-11-30T18:24:59Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Adding the script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;originally written by grayman&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Create atdm:map_of entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:map_of&amp;quot; entity as if you intend to place it in the player&#039;s inventory at the start of the mission. Then turn off the &amp;quot;inv_map_start&amp;quot; spawnarg.&lt;br /&gt;
&lt;br /&gt;
For example, create one with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MapOfSewer&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;Sewer Map&amp;quot;&lt;br /&gt;
 &amp;quot;gui&amp;quot; &amp;quot;guis/map_of_sewer.gui&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create gui file ==&lt;br /&gt;
&lt;br /&gt;
Create a gui file called &amp;quot;map_of_sewer.gui&amp;quot; with the following contents, and put it into your guis directory:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
        rect 0,0,640,480&lt;br /&gt;
        nocursor 1&lt;br /&gt;
  &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect 64,48, 512, 384&lt;br /&gt;
                background &amp;quot;guis/assets/game_maps/map_of_sewer&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Create image ==&lt;br /&gt;
&lt;br /&gt;
Create the image you want displayed (your map) in &amp;quot;map_of_sewer.tga&amp;quot;, with an alpha channel. (The alpha channel supports a map with a ragged edge. Unlike the method in [[Startpack_Mappers%27_Guide#Adding_an_In-game_Map_to_your_FM]], here, a custom .mtr or .def file is unneeded for such support.)&lt;br /&gt;
&lt;br /&gt;
Put that image into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
Retrieve a copy of guis/assets/game_maps/map_of_icon.tga from startmap.pk4 and place it into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
== Create atdm:static_custom_item entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:static_custom_item&amp;quot; entity with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;model&amp;quot; &amp;quot;models/darkmod/readables/scroll_rolled_up.lwo&amp;quot; (or use whatever model you prefer)&lt;br /&gt;
 &amp;quot;sr_class_1&amp;quot; &amp;quot;R&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1&amp;quot; &amp;quot;effect_script&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1_arg1&amp;quot; &amp;quot;FrobSewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;sr_state_1&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;sr_type_1&amp;quot; &amp;quot;STIM_FROB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sr_*&amp;quot; spawnargs describe how your custom entity will react to a frob stim.&lt;br /&gt;
&lt;br /&gt;
== Adding the script ==&lt;br /&gt;
&lt;br /&gt;
There are 2 types of script files. Map scripts and external scripts. Map scripts are used only in one map, while external scripts can be used in multiple maps. Map scripts always go in one script file which is stored inside the maps folder of your mission. &amp;lt;br&amp;gt;&lt;br /&gt;
The filename &#039;&#039;&#039;must&#039;&#039;&#039; always be: &#039;&#039;mapname&#039;&#039;.script (the same name as your map file, but with a .script extension) . In this example we use a map script. See also the guide [[A to Z Scripting: Setting up the .script files]].&lt;br /&gt;
&lt;br /&gt;
Place the following code inside your &#039;&#039;mapname&#039;&#039;.script file:&lt;br /&gt;
&lt;br /&gt;
 void FrobSewerMap()&lt;br /&gt;
 {&lt;br /&gt;
        // Put MapOfSewer into inventory, replacing the frobbed scroll named SewerMap.&lt;br /&gt;
        // MapOfSewer shows the sewer map when used while in inventory.&lt;br /&gt;
        // Make sure HUD shows the map icon.&lt;br /&gt;
 &lt;br /&gt;
        $player1.replaceInvItem($SewerMap,$MapOfSewer);&lt;br /&gt;
        $player1.setCurInvItem(&amp;quot;Sewer Map&amp;quot;); // provide inventory name, not item name&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void main() // this might already be there; skip if so&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The names in the script with a &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; next to them must match the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property of your entities, and the string in &amp;lt;code&amp;gt;setCurInvItem&amp;lt;/code&amp;gt; must match the &amp;lt;code&amp;gt;inv_name&amp;lt;/code&amp;gt; property of the &amp;lt;code&amp;gt;atdm:map_of entity&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;$player1&amp;lt;/code&amp;gt; is the player entity.&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
&lt;br /&gt;
When you play the mission, frobbing the custom item that looks like a scroll will cause the script to run, which replaces the custom item in your inventory with the &amp;quot;atdm:map_of&amp;quot; entity you created at the top of this note.&lt;br /&gt;
&lt;br /&gt;
From here on, it&#039;s as if the game gave you the map at mission start. Hit your &amp;quot;use&amp;quot; key and your map should appear on the screen.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Mapping Tutorials]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34133</id>
		<title>In-game Map Entities</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34133"/>
		<updated>2025-11-30T18:24:06Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Adding the script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;originally written by grayman&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Create atdm:map_of entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:map_of&amp;quot; entity as if you intend to place it in the player&#039;s inventory at the start of the mission. Then turn off the &amp;quot;inv_map_start&amp;quot; spawnarg.&lt;br /&gt;
&lt;br /&gt;
For example, create one with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MapOfSewer&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;Sewer Map&amp;quot;&lt;br /&gt;
 &amp;quot;gui&amp;quot; &amp;quot;guis/map_of_sewer.gui&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create gui file ==&lt;br /&gt;
&lt;br /&gt;
Create a gui file called &amp;quot;map_of_sewer.gui&amp;quot; with the following contents, and put it into your guis directory:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
        rect 0,0,640,480&lt;br /&gt;
        nocursor 1&lt;br /&gt;
  &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect 64,48, 512, 384&lt;br /&gt;
                background &amp;quot;guis/assets/game_maps/map_of_sewer&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Create image ==&lt;br /&gt;
&lt;br /&gt;
Create the image you want displayed (your map) in &amp;quot;map_of_sewer.tga&amp;quot;, with an alpha channel. (The alpha channel supports a map with a ragged edge. Unlike the method in [[Startpack_Mappers%27_Guide#Adding_an_In-game_Map_to_your_FM]], here, a custom .mtr or .def file is unneeded for such support.)&lt;br /&gt;
&lt;br /&gt;
Put that image into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
Retrieve a copy of guis/assets/game_maps/map_of_icon.tga from startmap.pk4 and place it into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
== Create atdm:static_custom_item entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:static_custom_item&amp;quot; entity with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;model&amp;quot; &amp;quot;models/darkmod/readables/scroll_rolled_up.lwo&amp;quot; (or use whatever model you prefer)&lt;br /&gt;
 &amp;quot;sr_class_1&amp;quot; &amp;quot;R&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1&amp;quot; &amp;quot;effect_script&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1_arg1&amp;quot; &amp;quot;FrobSewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;sr_state_1&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;sr_type_1&amp;quot; &amp;quot;STIM_FROB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sr_*&amp;quot; spawnargs describe how your custom entity will react to a frob stim.&lt;br /&gt;
&lt;br /&gt;
== Adding the script ==&lt;br /&gt;
&lt;br /&gt;
There are 2 types of script files. Map scripts and external scripts. Map scripts are used only in one map, while external scripts can be used in multiple maps. Map scripts always go in one script file which is stored inside the maps folder of your mission. &amp;lt;br&amp;gt;&lt;br /&gt;
The filename &#039;&#039;&#039;must&#039;&#039;&#039; always be: &#039;&#039;mapname&#039;&#039;.script (the same name as your map file, but with a .script extension) . In this example we use a map script. See also the guide [[A to Z Scripting: Setting up the .script files]].&lt;br /&gt;
&lt;br /&gt;
Place the following code inside your &#039;&#039;mapname&#039;&#039;.script file:&lt;br /&gt;
&lt;br /&gt;
 void FrobSewerMap()&lt;br /&gt;
 {&lt;br /&gt;
        // Put MapOfSewer into inventory, replacing the frobbed scroll named SewerMap.&lt;br /&gt;
        // MapOfSewer shows the sewer map when used while in inventory.&lt;br /&gt;
        // Make sure HUD shows the map icon.&lt;br /&gt;
 &lt;br /&gt;
        $player1.replaceInvItem($SewerMap,$MapOfSewer);&lt;br /&gt;
        $player1.setCurInvItem(&amp;quot;Sewer Map&amp;quot;); // provide inventory name, not item name&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void main() // this might already be there; skip if so&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The names in the script with a &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; next to them must match the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property of your entities, and the string in &amp;lt;code&amp;gt;setCurInvItem&amp;lt;/code&amp;gt; must match the &amp;lt;code&amp;gt;inv_name&amp;lt;/code&amp;gt; property of the &amp;lt;code&amp;gt;atdm:map_of entity&amp;lt;/code&amp;gt;. $player1 is the player entity.&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
&lt;br /&gt;
When you play the mission, frobbing the custom item that looks like a scroll will cause the script to run, which replaces the custom item in your inventory with the &amp;quot;atdm:map_of&amp;quot; entity you created at the top of this note.&lt;br /&gt;
&lt;br /&gt;
From here on, it&#039;s as if the game gave you the map at mission start. Hit your &amp;quot;use&amp;quot; key and your map should appear on the screen.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Mapping Tutorials]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34132</id>
		<title>In-game Map Entities</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34132"/>
		<updated>2025-11-30T18:22:09Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Adding the script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;originally written by grayman&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Create atdm:map_of entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:map_of&amp;quot; entity as if you intend to place it in the player&#039;s inventory at the start of the mission. Then turn off the &amp;quot;inv_map_start&amp;quot; spawnarg.&lt;br /&gt;
&lt;br /&gt;
For example, create one with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MapOfSewer&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;Sewer Map&amp;quot;&lt;br /&gt;
 &amp;quot;gui&amp;quot; &amp;quot;guis/map_of_sewer.gui&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create gui file ==&lt;br /&gt;
&lt;br /&gt;
Create a gui file called &amp;quot;map_of_sewer.gui&amp;quot; with the following contents, and put it into your guis directory:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
        rect 0,0,640,480&lt;br /&gt;
        nocursor 1&lt;br /&gt;
  &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect 64,48, 512, 384&lt;br /&gt;
                background &amp;quot;guis/assets/game_maps/map_of_sewer&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Create image ==&lt;br /&gt;
&lt;br /&gt;
Create the image you want displayed (your map) in &amp;quot;map_of_sewer.tga&amp;quot;, with an alpha channel. (The alpha channel supports a map with a ragged edge. Unlike the method in [[Startpack_Mappers%27_Guide#Adding_an_In-game_Map_to_your_FM]], here, a custom .mtr or .def file is unneeded for such support.)&lt;br /&gt;
&lt;br /&gt;
Put that image into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
Retrieve a copy of guis/assets/game_maps/map_of_icon.tga from startmap.pk4 and place it into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
== Create atdm:static_custom_item entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:static_custom_item&amp;quot; entity with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;model&amp;quot; &amp;quot;models/darkmod/readables/scroll_rolled_up.lwo&amp;quot; (or use whatever model you prefer)&lt;br /&gt;
 &amp;quot;sr_class_1&amp;quot; &amp;quot;R&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1&amp;quot; &amp;quot;effect_script&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1_arg1&amp;quot; &amp;quot;FrobSewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;sr_state_1&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;sr_type_1&amp;quot; &amp;quot;STIM_FROB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sr_*&amp;quot; spawnargs describe how your custom entity will react to a frob stim.&lt;br /&gt;
&lt;br /&gt;
== Adding the script ==&lt;br /&gt;
&lt;br /&gt;
There are 2 types of script files. Map scripts and external scripts. Map scripts are used only in one map, while external scripts can be used in multiple maps. Map scripts always go in one script file which is stored inside the maps folder of your mission. &lt;br /&gt;
The filename &#039;&#039;&#039;must&#039;&#039;&#039; always be: &#039;&#039;mapname&#039;&#039;.script (the same name as your map file, but with a .script extension) . In this example we use a map script. See also the guide [[A to Z Scripting: Setting up the .script files]].&lt;br /&gt;
&lt;br /&gt;
Place the following code inside your &#039;&#039;mapname&#039;&#039;.script file:&lt;br /&gt;
&lt;br /&gt;
 void FrobSewerMap()&lt;br /&gt;
 {&lt;br /&gt;
        // Put MapOfSewer into inventory, replacing the frobbed scroll named SewerMap.&lt;br /&gt;
        // MapOfSewer shows the sewer map when used while in inventory.&lt;br /&gt;
        // Make sure HUD shows the map icon.&lt;br /&gt;
 &lt;br /&gt;
        $player1.replaceInvItem($SewerMap,$MapOfSewer);&lt;br /&gt;
        $player1.setCurInvItem(&amp;quot;Sewer Map&amp;quot;); // provide inventory name, not item name&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void main() // this might already be there; skip if so&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The names in the script with a &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; next to them must match the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property of your entities, and the string in &amp;lt;code&amp;gt;setCurInvItem&amp;lt;/code&amp;gt; must match the &amp;lt;code&amp;gt;inv_name&amp;lt;/code&amp;gt; property of the &amp;lt;code&amp;gt;atdm:map_of entity&amp;lt;/code&amp;gt;. $player1 is the player entity.&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
&lt;br /&gt;
When you play the mission, frobbing the custom item that looks like a scroll will cause the script to run, which replaces the custom item in your inventory with the &amp;quot;atdm:map_of&amp;quot; entity you created at the top of this note.&lt;br /&gt;
&lt;br /&gt;
From here on, it&#039;s as if the game gave you the map at mission start. Hit your &amp;quot;use&amp;quot; key and your map should appear on the screen.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Mapping Tutorials]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34131</id>
		<title>In-game Map Entities</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34131"/>
		<updated>2025-11-30T18:21:43Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Adding the script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;originally written by grayman&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Create atdm:map_of entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:map_of&amp;quot; entity as if you intend to place it in the player&#039;s inventory at the start of the mission. Then turn off the &amp;quot;inv_map_start&amp;quot; spawnarg.&lt;br /&gt;
&lt;br /&gt;
For example, create one with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MapOfSewer&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;Sewer Map&amp;quot;&lt;br /&gt;
 &amp;quot;gui&amp;quot; &amp;quot;guis/map_of_sewer.gui&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create gui file ==&lt;br /&gt;
&lt;br /&gt;
Create a gui file called &amp;quot;map_of_sewer.gui&amp;quot; with the following contents, and put it into your guis directory:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
        rect 0,0,640,480&lt;br /&gt;
        nocursor 1&lt;br /&gt;
  &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect 64,48, 512, 384&lt;br /&gt;
                background &amp;quot;guis/assets/game_maps/map_of_sewer&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Create image ==&lt;br /&gt;
&lt;br /&gt;
Create the image you want displayed (your map) in &amp;quot;map_of_sewer.tga&amp;quot;, with an alpha channel. (The alpha channel supports a map with a ragged edge. Unlike the method in [[Startpack_Mappers%27_Guide#Adding_an_In-game_Map_to_your_FM]], here, a custom .mtr or .def file is unneeded for such support.)&lt;br /&gt;
&lt;br /&gt;
Put that image into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
Retrieve a copy of guis/assets/game_maps/map_of_icon.tga from startmap.pk4 and place it into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
== Create atdm:static_custom_item entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:static_custom_item&amp;quot; entity with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;model&amp;quot; &amp;quot;models/darkmod/readables/scroll_rolled_up.lwo&amp;quot; (or use whatever model you prefer)&lt;br /&gt;
 &amp;quot;sr_class_1&amp;quot; &amp;quot;R&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1&amp;quot; &amp;quot;effect_script&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1_arg1&amp;quot; &amp;quot;FrobSewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;sr_state_1&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;sr_type_1&amp;quot; &amp;quot;STIM_FROB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sr_*&amp;quot; spawnargs describe how your custom entity will react to a frob stim.&lt;br /&gt;
&lt;br /&gt;
== Adding the script ==&lt;br /&gt;
&lt;br /&gt;
There are 2 types of script files. Map scripts and external scripts. Map scripts are used only in one map, while external scripts can be used in multiple maps. Map scripts always go in one script file which is stored inside the maps folder of your mission. The filename &#039;&#039;&#039;must&#039;&#039;&#039; always be: &#039;&#039;mapname&#039;&#039;.script (the same name as your map file, but with a .script extension) . In this example we use a map script. See also the guide [[A to Z Scripting: Setting up the .script files]].&lt;br /&gt;
&lt;br /&gt;
Place the following code inside your &#039;&#039;mapname&#039;&#039;.script file:&lt;br /&gt;
&lt;br /&gt;
 void FrobSewerMap()&lt;br /&gt;
 {&lt;br /&gt;
        // Put MapOfSewer into inventory, replacing the frobbed scroll named SewerMap.&lt;br /&gt;
        // MapOfSewer shows the sewer map when used while in inventory.&lt;br /&gt;
        // Make sure HUD shows the map icon.&lt;br /&gt;
 &lt;br /&gt;
        $player1.replaceInvItem($SewerMap,$MapOfSewer);&lt;br /&gt;
        $player1.setCurInvItem(&amp;quot;Sewer Map&amp;quot;); // provide inventory name, not item name&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void main() // this might already be there; skip if so&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The names in the script with a &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; next to them must match the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property of your entities, and the string in &amp;lt;code&amp;gt;setCurInvItem&amp;lt;/code&amp;gt; must match the &amp;lt;code&amp;gt;inv_name&amp;lt;/code&amp;gt; property of the &amp;lt;code&amp;gt;atdm:map_of entity&amp;lt;/code&amp;gt;. $player1 is the player entity.&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
&lt;br /&gt;
When you play the mission, frobbing the custom item that looks like a scroll will cause the script to run, which replaces the custom item in your inventory with the &amp;quot;atdm:map_of&amp;quot; entity you created at the top of this note.&lt;br /&gt;
&lt;br /&gt;
From here on, it&#039;s as if the game gave you the map at mission start. Hit your &amp;quot;use&amp;quot; key and your map should appear on the screen.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Mapping Tutorials]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34130</id>
		<title>In-game Map Entities</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=In-game_Map_Entities&amp;diff=34130"/>
		<updated>2025-11-30T18:18:59Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: Organised the page a bit and added some clarifications (info suplied by user Skaruts)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;originally written by grayman&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Create atdm:map_of entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:map_of&amp;quot; entity as if you intend to place it in the player&#039;s inventory at the start of the mission. Then turn off the &amp;quot;inv_map_start&amp;quot; spawnarg.&lt;br /&gt;
&lt;br /&gt;
For example, create one with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MapOfSewer&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;Sewer Map&amp;quot;&lt;br /&gt;
 &amp;quot;gui&amp;quot; &amp;quot;guis/map_of_sewer.gui&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create gui file ==&lt;br /&gt;
&lt;br /&gt;
Create a gui file called &amp;quot;map_of_sewer.gui&amp;quot; with the following contents, and put it into your guis directory:&lt;br /&gt;
&lt;br /&gt;
 windowDef Desktop&lt;br /&gt;
 {&lt;br /&gt;
        rect 0,0,640,480&lt;br /&gt;
        nocursor 1&lt;br /&gt;
  &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect 64,48, 512, 384&lt;br /&gt;
                background &amp;quot;guis/assets/game_maps/map_of_sewer&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Create image ==&lt;br /&gt;
&lt;br /&gt;
Create the image you want displayed (your map) in &amp;quot;map_of_sewer.tga&amp;quot;, with an alpha channel. (The alpha channel supports a map with a ragged edge. Unlike the method in [[Startpack_Mappers%27_Guide#Adding_an_In-game_Map_to_your_FM]], here, a custom .mtr or .def file is unneeded for such support.)&lt;br /&gt;
&lt;br /&gt;
Put that image into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
Retrieve a copy of guis/assets/game_maps/map_of_icon.tga from startmap.pk4 and place it into guis/assets/game_maps/.&lt;br /&gt;
&lt;br /&gt;
== Create atdm:static_custom_item entity ==&lt;br /&gt;
&lt;br /&gt;
Create an &amp;quot;atdm:static_custom_item&amp;quot; entity with these spawnargs:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;model&amp;quot; &amp;quot;models/darkmod/readables/scroll_rolled_up.lwo&amp;quot; (or use whatever model you prefer)&lt;br /&gt;
 &amp;quot;sr_class_1&amp;quot; &amp;quot;R&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1&amp;quot; &amp;quot;effect_script&amp;quot;&lt;br /&gt;
 &amp;quot;sr_effect_1_1_arg1&amp;quot; &amp;quot;FrobSewerMap&amp;quot;&lt;br /&gt;
 &amp;quot;sr_state_1&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;sr_type_1&amp;quot; &amp;quot;STIM_FROB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sr_*&amp;quot; spawnargs describe how your custom entity will react to a frob stim.&lt;br /&gt;
&lt;br /&gt;
== Adding the script ==&lt;br /&gt;
&lt;br /&gt;
There are 2 types of script files. Map scripts and external scripts. Map scripts are used only in one map, while external scripts can be used in multiple maps. Map scripts always go in one script file which is stored inside the maps folder of your mission. The filename must always be: &#039;&#039;mapname&#039;&#039;.script . In this example we use a map script. See also the guide [[A to Z Scripting: Setting up the .script files]].&lt;br /&gt;
&lt;br /&gt;
Place the following code inside your &#039;&#039;mapname&#039;&#039;.script file:&lt;br /&gt;
&lt;br /&gt;
 void FrobSewerMap()&lt;br /&gt;
 {&lt;br /&gt;
        // Put MapOfSewer into inventory, replacing the frobbed scroll named SewerMap.&lt;br /&gt;
        // MapOfSewer shows the sewer map when used while in inventory.&lt;br /&gt;
        // Make sure HUD shows the map icon.&lt;br /&gt;
 &lt;br /&gt;
        $player1.replaceInvItem($SewerMap,$MapOfSewer);&lt;br /&gt;
        $player1.setCurInvItem(&amp;quot;Sewer Map&amp;quot;); // provide inventory name, not item name&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void main() // this might already be there; skip if so&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The names in the script with a &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; next to them must match the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property of your entities, and the string in &amp;lt;code&amp;gt;setCurInvItem&amp;lt;/code&amp;gt; must match the &amp;lt;code&amp;gt;inv_name&amp;lt;/code&amp;gt; property of the &amp;lt;code&amp;gt;atdm:map_of entity&amp;lt;/code&amp;gt;. $player1 is the player entity.&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
&lt;br /&gt;
When you play the mission, frobbing the custom item that looks like a scroll will cause the script to run, which replaces the custom item in your inventory with the &amp;quot;atdm:map_of&amp;quot; entity you created at the top of this note.&lt;br /&gt;
&lt;br /&gt;
From here on, it&#039;s as if the game gave you the map at mission start. Hit your &amp;quot;use&amp;quot; key and your map should appear on the screen.&lt;br /&gt;
&lt;br /&gt;
{{editing}}&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Mapping Tutorials]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34129</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34129"/>
		<updated>2025-11-30T04:13:31Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Draft for updated campaign documentation on: https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&lt;br /&gt;
&lt;br /&gt;
Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . Custom settings related to that mission can be done in the file mainmenu_custom_defs.gui.&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, if you need to separately enable/disable stages or change menu backgrounds, you can make multiple sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define ENABLE_MAINMENU_SHOP 1&lt;br /&gt;
     #define ENABLE_MAINMENU_SUCCESS 0&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define ENABLE_MAINMENU_BRIEFING_VIDEO 1&lt;br /&gt;
     #define ENABLE_MAINMENU_BRIEFING 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to play a different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_1&amp;quot;&lt;br /&gt;
	 #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_1;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define MM_BRIEFING_VIDEO_MATERIAL_1 &amp;quot;video/briefing_video_2&amp;quot;&lt;br /&gt;
	 #define MM_BRIEFING_VIDEO_SOUND_CMD &amp;quot;music video/briefing_video_2;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then inside mainmenu_briefing.gui  you reference them via #include per MM_CURRENTMISSION .&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
       #include mainmenu_briefing_1.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
       #include mainmenu_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
       #include mainmenu_briefing_2.gui&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Stuff under here are just unrelated tests}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34128</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34128"/>
		<updated>2025-11-28T12:56:54Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Draft for updated campaign documentation on: https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&lt;br /&gt;
&lt;br /&gt;
Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_briefing.gui you can define what advanced briefing is loaded with every mission in your campaign. It&#039;s advised to make seperate missions and then combine them together into a campaing using code inside mainmenu_briefing.gui . Custom settings related to that mission can be done in the file mainmenu_custom_defs.gui.&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, if you need to separately enable/disable stages or change menu backgrounds, you can make multiple sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to play a different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then include one of these files based on MM_CURRENTMISSION inside mainmenu_briefing.gui.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Stuff under here are just unrelated tests}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34127</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34127"/>
		<updated>2025-11-28T12:10:52Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Draft for updated campaign documentation on: https://wiki.thedarkmod.com/index.php?title=Setting_up_Campaigns&lt;br /&gt;
&lt;br /&gt;
Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_custom_defs.gui you can define what briefing is loaded with every mission in your campaign and also other custom settings related to that mission in the campaign. It&#039;s adviced to make seperate missions and then combine them together into a campaing using code inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, if you need to separately enable/disable stages or change menu backgrounds, you can make multiple sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to play a different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then include one of these files based on MM_CURRENTMISSION inside mainmenu_briefing.gui.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Stuff under here are just unrelated tests}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34126</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34126"/>
		<updated>2025-11-28T11:14:37Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_custom_defs.gui you can define what briefing is loaded with every mission in your campaign and also other custom settings related to that mission in the campaign. It&#039;s adviced to make seperate missions and then combine them together into a campaing using code inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, if you need to separately enable/disable stages or change menu backgrounds, you can make multiple sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to play a different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then include one of these files based on MM_CURRENTMISSION inside mainmenu_briefing.gui.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Bla Bla Bla}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34125</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34125"/>
		<updated>2025-11-27T11:25:36Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_custom_defs.gui you can define what briefing is loaded with every mission in your campaign and also other custom settings related to that mission in the campaign. It&#039;s adviced to make seperate missions and then combine them together into a campaing using code inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s adviced to follow this route:&lt;br /&gt;
&lt;br /&gt;
1 Set up the first mission as you normally do.&lt;br /&gt;
&lt;br /&gt;
2 Save the customized files somewhere.&lt;br /&gt;
&lt;br /&gt;
3 Set up the second mission as you normally do.&lt;br /&gt;
&lt;br /&gt;
4 Save the files somewhere.&lt;br /&gt;
&lt;br /&gt;
5 And so on&lt;br /&gt;
&lt;br /&gt;
6 Now look at all the differences in GUI code between the different variant gui code and wrap them into #ifdef-s by MM_CURRENTMISSION however is more comfortable for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For instance, if you need to separately enable/disable stages or change menu backgrounds, you can make 3 sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to play different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then include one of these files based on MM_CURRENTMISSION inside mainmenu_briefing.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Bla Bla Bla}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34124</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34124"/>
		<updated>2025-11-27T11:23:36Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_custom_defs.gui you can define what briefing is loaded with every mission in your campaign and also other custom settings related to that mission in the campaign. It&#039;s adviced to make seperate missions and then combine them together into a campaing using code inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s adviced to follow this route:&lt;br /&gt;
&lt;br /&gt;
1 Set up the first mission as you normally do.&lt;br /&gt;
&lt;br /&gt;
2 Save the customized files somewhere.&lt;br /&gt;
&lt;br /&gt;
3 Set up the second mission as you normally do.&lt;br /&gt;
&lt;br /&gt;
4 Save the files somewhere.&lt;br /&gt;
&lt;br /&gt;
5 And so on&lt;br /&gt;
&lt;br /&gt;
6 Now look at all the differences in GUI code between the different variant gui code and wrap them into #ifdef-s by MM_CURRENTMISSION however is more comfortable for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For instance, if you need to separately enable/disable stages or change menu backgrounds, you can make 3 sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
If you want to play different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then include one of these files based on MM_CURRENTMISSION inside mainmenu_briefing.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Bla Bla Bla}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34123</id>
		<title>User:Datiswous</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=User:Datiswous&amp;diff=34123"/>
		<updated>2025-11-27T11:23:05Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: Making a draft for a better campaign-mission documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Briefings&lt;br /&gt;
&lt;br /&gt;
Once the map sequence is defined one needs to take care of the briefing. If you like to keep it simple, just refer to the Briefing article in the [[Briefing#Text-only_Briefing|Text-only Briefing]] section. Each map needs its own xdata block with the briefing and you&#039;ll be done.&lt;br /&gt;
&lt;br /&gt;
For advanced setups there are a few modifications to be made. In the briefing gui file mainmenu_custom_defs.gui you can define what briefing is loaded with every mission in your campaign and also other custom settings related to that mission in the campaign. It&#039;s adviced to make seperate missions and then combine them together into a campaing using code inside mainmenu_custom_defs.gui .&lt;br /&gt;
&lt;br /&gt;
The current (in core) mainmenu_custom_defs.gui file states the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
If you have a campaign, then you can set different value for every mission like this:&lt;br /&gt;
&lt;br /&gt;
   #if MM_CURRENTMISSION == 1&lt;br /&gt;
     #define NAME value1&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 2&lt;br /&gt;
     #define NAME value2&lt;br /&gt;
&lt;br /&gt;
   #elif MM_CURRENTMISSION == 3&lt;br /&gt;
     #define NAME value3&lt;br /&gt;
&lt;br /&gt;
   #endif&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s adviced to follow this route:&lt;br /&gt;
&lt;br /&gt;
1 Set up the first mission as you normally do.&lt;br /&gt;
&lt;br /&gt;
2 Save the customized files somewhere.&lt;br /&gt;
&lt;br /&gt;
3 Set up the second mission as you normally do.&lt;br /&gt;
&lt;br /&gt;
4 Save the files somewhere.&lt;br /&gt;
&lt;br /&gt;
5 And so on&lt;br /&gt;
&lt;br /&gt;
6 Now look at all the differences in GUI code between the different variant gui code and wrap them into #ifdef-s by MM_CURRENTMISSION however is more comfortable for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For instance, if you need to separately enable/disable stages or change menu backgrounds, you can make 3 sections in mainmenu_custom_defs.gui inside #ifdef-s.&lt;br /&gt;
&lt;br /&gt;
If you want to play different briefing video, you can do #ifdef around MM_BRIEFING_VIDEO_MATERIAL_1 and set it to different stuff depending on the define.&lt;br /&gt;
&lt;br /&gt;
If you want to make GUI briefings with custom GUI code, you can put them into mainmenu_briefing_1.gui, mainmenu_briefing_2.gui, mainmenu_briefing_3.gui, then include one of these files based on MM_CURRENTMISSION inside mainmenu_briefing.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
This text is not collapsible; but the next is collapsible and hidden by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;bla bla bla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Talk&amp;quot; links next to &amp;quot;Datiswous&amp;quot; appear {{red|red}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Templates&lt;br /&gt;
&lt;br /&gt;
= Secrets of Waterdeep =&lt;br /&gt;
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= Bla Bla Bla}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Table test ==&lt;br /&gt;
&lt;br /&gt;
An alternative way to create and edit tables via use of a template.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 {|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
 |-&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
 !bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
 |-&lt;br /&gt;
 {{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
 {{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
 |}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
{{TableRow|&#039;&#039;&#039;kitchen&#039;&#039;&#039;|&amp;lt;gallery&amp;gt;File:Jug01.png&amp;lt;/gallery&amp;gt;|atdm:jug01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing01.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing01|N/A|}}&lt;br /&gt;
{{TableRow||&amp;lt;gallery&amp;gt;File:Wine bottle02 standing02.png&amp;lt;/gallery&amp;gt;|atdm:wine_bottle02_standing02|N/A|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Items&amp;quot; subfolder ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:show}}&amp;quot; data-collapsetext=&amp;quot;{{int:hide}}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=1 style=&amp;quot;&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;7%&amp;quot;|Subfolder(s)&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity image&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;8%&amp;quot;|Entity file name&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Entity description&lt;br /&gt;
!bgcolor=#d0d0e0 width=&amp;quot;11%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use. The base class for items the player can pick up.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TBA&lt;br /&gt;
|atdm:item_book_red1&lt;br /&gt;
|&#039;&#039;A red Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_book_t1&lt;br /&gt;
|&#039;&#039;Book&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_paper1&lt;br /&gt;
|&#039;&#039;Paper&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:item_scroll1&lt;br /&gt;
|&#039;&#039;Scroll&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:map_base&lt;br /&gt;
|&#039;&#039;Don&#039;t use - base class for all map items.&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Not&#039;&#039;&#039; for mapper use.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:grabable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:moveable_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the &#039;atdm:static_custom_item&#039; which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use &#039;atdm:grabable_custom_item&#039;.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|atdm:static_custom_item&lt;br /&gt;
|&#039;&#039;A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the &#039;atdm:moveable_custom_item&#039;, which can optionally be dropped but the model must have a collision model or the map won&#039;t run.&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Controlling Where the Player Starts==&lt;br /&gt;
&lt;br /&gt;
{{infobox|text= The &amp;quot;Controlling Where the Player Starts&amp;quot; functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
The following text is originally written in 2011 by Grayman and is now outdated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.&lt;br /&gt;
&lt;br /&gt;
===mainmenu_briefing.gui===&lt;br /&gt;
Obtain a new version of mainmenu_briefing.gui from this location:&lt;br /&gt;
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)&lt;br /&gt;
&lt;br /&gt;
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.&lt;br /&gt;
&lt;br /&gt;
In the sample gui, you&#039;ll see these new definitions:&lt;br /&gt;
&lt;br /&gt;
*windowDef StartPointBox1&lt;br /&gt;
*windowDef StartPointBox2&lt;br /&gt;
*windowDef StartPointBox3&lt;br /&gt;
*windowDef StartPointText1&lt;br /&gt;
*windowDef StartPointText2&lt;br /&gt;
*windowDef StartPointText3&lt;br /&gt;
&lt;br /&gt;
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.&lt;br /&gt;
&lt;br /&gt;
StartPointBoxN defines a checkbox to the left of the text describing starting point N.&lt;br /&gt;
&lt;br /&gt;
Though the template provides three starting points, you can change it to offer any number you wish. They don&#039;t need to appear on the last briefing screen, either, though you may find that&#039;s the most logical place to offer them.&lt;br /&gt;
&lt;br /&gt;
===What the Player Sees===&lt;br /&gt;
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.&lt;br /&gt;
&lt;br /&gt;
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.&lt;br /&gt;
&lt;br /&gt;
When the player starts the mission, he&#039;ll start at the selected location.&lt;br /&gt;
&lt;br /&gt;
If the player makes no selection, he&#039;ll start at the info_player_start in the map that has the lowest entity number.&lt;br /&gt;
&lt;br /&gt;
===Making It Your Own===&lt;br /&gt;
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:&lt;br /&gt;
 text &amp;quot;Scale the north wall and enter through an attic window.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Use the secret tunnel into the cellar.&amp;quot;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 text &amp;quot;Slide down the coal chute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart1&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart2&amp;quot;;&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 set &amp;quot;gui::startSelect&amp;quot; &amp;quot;PlayerStart3&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&#039;s all you need to do to offer three starting points.&lt;br /&gt;
&lt;br /&gt;
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.&lt;br /&gt;
&lt;br /&gt;
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.&lt;br /&gt;
&lt;br /&gt;
For example, in the StartPointBox1 definition, you&#039;ll see these lines in the onAction() event:&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:&lt;br /&gt;
&lt;br /&gt;
 set &amp;quot;background&amp;quot;			&amp;quot;guis/assets/objectives/box_checked&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox2::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox3::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointBox4::background&amp;quot;	&amp;quot;guis/assets/objectives/box_default&amp;quot;;&lt;br /&gt;
 set &amp;quot;StartPointText1::forecolor&amp;quot; 	HIGHLIGHTED_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText2::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText3::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
 set &amp;quot;StartPointText4::forecolor&amp;quot; 	DEFAULT_TEXT_COLOR;&lt;br /&gt;
&lt;br /&gt;
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.&lt;br /&gt;
&lt;br /&gt;
Also look for references to &amp;quot;selectionIndex&amp;quot;, see how it&#039;s used, and adjust its setting in your new definitions accordingly. &lt;br /&gt;
&lt;br /&gt;
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40%;&amp;quot;&amp;gt;&lt;br /&gt;
=== Testmap path nodes ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Save code in texteditor (for example) as path.map and load in DR&lt;br /&gt;
 Version 2&lt;br /&gt;
 // entity 0&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;worldspawn&amp;quot;&lt;br /&gt;
 &amp;quot;editor_description&amp;quot; &amp;quot;Simple test map consisting of a large room with a player start and a blue room comprising the mapstartpack_complete prefab. The ambient world has been brightened to 0.1 0.1 0.1.&amp;quot;&lt;br /&gt;
 // primitive 0&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 1&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -796 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 764 ) ( ( 0.007811999879777431 0 1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 2&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -345 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 313 ) ( ( 0.007811999879777431 0 1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 3&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -160 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 128 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 1.554587960243225 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 4&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -313 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -292 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -711 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 260 ) ( ( 0.007811999879777431 0 -1.554587960243225 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 5&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 -764 ) ( ( 0.015625 0 -3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -128 ) ( ( 0.015625 0 -3.9375 ) ( 0 0.015625 -3.109375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -260 ) ( ( 0.015625 0 3.109375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 -743 ) ( ( 0.015625 0 3.9375 ) ( 0 0.015625 -2 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 711 ) ( ( 0.007811999879777431 0 -1.968623995780945 ) ( 0 0.007811999879777431 -0.9999359846115112 ) ) &amp;quot;textures/darkmod/wood/boards/pier_platform&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 6&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -88 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.25 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 1.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 41.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 7&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 21.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 492 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -500 ) ( ( 0.0625 0 22.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 8&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -56 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 42.75 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 20.75 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 -32.65625 ) ( 0 0.0625 0.28125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 1 48 ) ( ( 0.0625 0 96.65625 ) ( 0 0.0625 22.25 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 9&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 21.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -737 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 45.78125 ) ( 0 0.0625 42.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -796 ) ( ( 0.0625 0 21.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 609 ) ( ( 0.0625 0 18.21875 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 788 ) ( ( 0.0625 0 41.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 10&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 21.9375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 42.0625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 42.0625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 21.9375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 601 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -609 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // primitive 11&lt;br /&gt;
 {&lt;br /&gt;
 brushDef3&lt;br /&gt;
 {&lt;br /&gt;
 ( 0 0 1 -80 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 13.4375 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 1 0 500 ) ( ( 0.0625 0 50.5625 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 0 -1 -48 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 50.5625 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 0 -1 0 -788 ) ( ( 0.0625 0 13.4375 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( -1 0 0 737 ) ( ( 0.0625 0 -33.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 ( 1 0 0 -745 ) ( ( 0.0625 0 97.25 ) ( 0 0.0625 0.78125 ) ) &amp;quot;textures/common/caulk&amp;quot; 0 0 0&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // entity 1&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ambient_world&amp;quot;&lt;br /&gt;
 &amp;quot;_color&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;10280 10280 10280&amp;quot;&lt;br /&gt;
 &amp;quot;nodiffuse&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;noshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nospecular&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;709 -532 48&amp;quot;&lt;br /&gt;
 &amp;quot;parallel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;texture&amp;quot; &amp;quot;lights/ambientlightnfo&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 2&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_addobjectives&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;Objectives&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec1&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_spec_val1&amp;quot; &amp;quot;ItemName&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_desc&amp;quot; &amp;quot;Get or Steal a Special Object&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj1_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_desc&amp;quot; &amp;quot;Get Loot (Easy)&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_difficulty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj2_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_args&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_desc&amp;quot; &amp;quot;Get Loot (Hard)&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_difficulty&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj3_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_args&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_1_type&amp;quot; &amp;quot;item&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_desc&amp;quot; &amp;quot;Get Loot (Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj4_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_args&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_not&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_player_responsible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_spec1&amp;quot; &amp;quot;overall&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_state&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_1_type&amp;quot; &amp;quot;kill&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_desc&amp;quot; &amp;quot;No killing (on Expert)&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_difficulty&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_irreversible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_ongoing&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj5_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_args&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_not&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_player_responsible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec1&amp;quot; &amp;quot;spawnclass&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec2&amp;quot; &amp;quot;name&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val1&amp;quot; &amp;quot;idPlayer&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_spec_val2&amp;quot; &amp;quot;EscZone&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_1_type&amp;quot; &amp;quot;location&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_desc&amp;quot; &amp;quot;Go To Room X, eg, When all objectives done, return to start (modify Enabling Objectives if different)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_enabling_objs&amp;quot; &amp;quot;1 AND (2 OR 3 OR 4)&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_irreversible&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_mandatory&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_ongoing&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_state&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;obj6_visible&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 3&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 4&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 5&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -554.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 6&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 7&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -604.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 8&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -605.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 9&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -554.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 10&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -604.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 11&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:key_fancy02&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;key_master&amp;quot;&lt;br /&gt;
 &amp;quot;inv_icon&amp;quot; &amp;quot;guis/assets/hud/inventory_icons/key_good_red&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_name&amp;quot; &amp;quot;MASTER KEY&amp;quot;&lt;br /&gt;
 &amp;quot;inv_stackable&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -532 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 -1 0 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;skin&amp;quot; &amp;quot;bc_key02red&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 12&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:shop&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;ShopItems&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_shop_gold_start&amp;quot; &amp;quot;800&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_shop_gold_start&amp;quot; &amp;quot;600&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_shop_gold_start&amp;quot; &amp;quot;400&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -532 0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;shopItem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_11_item&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_12_item&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_13_item&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_15_item&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_16_item&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_17_item&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_18_item&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_19_item&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_1_item&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_20_item&amp;quot; &amp;quot;atdm:weapon_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_2_item&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_3_item&amp;quot; &amp;quot;atdm:weapon_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_4_item&amp;quot; &amp;quot;atdm:weapon_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_5_item&amp;quot; &amp;quot;atdm:weapon_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_6_item&amp;quot; &amp;quot;atdm:weapon_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_7_item&amp;quot; &amp;quot;atdm:weapon_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_8_item&amp;quot; &amp;quot;atdm:weapon_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_0_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_1_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_2_qty&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;startingitem_9_item&amp;quot; &amp;quot;atdm:weapon_gasarrow&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 13&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 14&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 15&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_broadhead&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BroadheadsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;617 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 16&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 17&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 18&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_firearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FireArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;633 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 19&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 20&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 21&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_gasarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;GasArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;649 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 22&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 23&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 24&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_mossarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MossArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;665 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 25&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 26&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 27&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_noisemaker&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;NoiseArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;681 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 28&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 29&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 30&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_ropearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;RopeArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;697 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 31&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 32&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 33&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_waterarrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;WaterArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;729 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 34&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -621.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 35&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_blackjack&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BlackjackExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;679.62 -637.25 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 36&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -620.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 37&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:weapon_shortsword&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SwordExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;728 -636.5 11.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0 1 0 -1 0 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 38&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 39&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_compass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;CompassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;618 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 40&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 41&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lantern&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LanternExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;630 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 42&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -570.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 43&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_spyglass&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;SpyglassExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;640 -586.5 60.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 44&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -620.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 45&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashbomb&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashbombsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;620 -636.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 46&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 47&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_health_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HealthPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;656 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 48&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -570.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 49&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_breath_potion&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;BreathPotionsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;668 -586.5 35.5&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 50&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 51&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -554 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 52&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 53&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 54&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -604 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 55&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 56&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_snake&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickSnakeExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;711 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 57&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -570 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 58&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_lockpick_triangle&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;LockpickTriangleExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;727 -586 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 59&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 60&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_flashmine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;FlashminesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;635 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 61&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 62&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_mine&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;MinesExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;651 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 63&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -620 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 64&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:playertools_holywater&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;HolyWatersExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_count&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;667 -636 32&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 65&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsEasy&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -684 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 66&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsHard&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -732 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 67&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ammo_vinearrow&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;VineArrowsExpert&amp;quot;&lt;br /&gt;
 &amp;quot;diff_0_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_1_nospawn&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;diff_2_nospawn&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;inv_ammo_amount&amp;quot; &amp;quot;30&amp;quot;&lt;br /&gt;
 &amp;quot;inv_map_start&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;inv_no_pickup_message&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;nodrop&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;713 -780 -8&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 0 1 0 -1 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 68&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:location_settings&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_location_settings_1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dist_scale&amp;quot; &amp;quot;1.0&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_dynamic_cap&amp;quot; &amp;quot;0.1 0.1 0.1&amp;quot;&lt;br /&gt;
 &amp;quot;ambient_light_falloff&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;657 -532 0&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 69&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;info_player_start&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;info_player_start_1&amp;quot;&lt;br /&gt;
 &amp;quot;angle&amp;quot; &amp;quot;90.000000&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-199 -196 -128&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 70&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:ai_townsfolk_commoner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_ai_townsfolk_commoner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-584 24 -127.853&amp;quot;&lt;br /&gt;
 &amp;quot;rotation&amp;quot; &amp;quot;1 0 0 0 1 0 0 0 1&amp;quot;&lt;br /&gt;
 &amp;quot;team&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 71&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_follow_actor&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-192 24 -24&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 72&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_corner&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_corner_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -128&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;target1&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 73&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;path_wait&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;path_wait_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-392 24 -32&amp;quot;&lt;br /&gt;
 &amp;quot;wait&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 74&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;light&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;light_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-200 -24 24&amp;quot;&lt;br /&gt;
 &amp;quot;light_center&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
 &amp;quot;light_radius&amp;quot; &amp;quot;728 776 320&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 // entity 75&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;classname&amp;quot; &amp;quot;atdm:target_changetarget&amp;quot;&lt;br /&gt;
 &amp;quot;name&amp;quot; &amp;quot;atdm_target_changetarget_1&amp;quot;&lt;br /&gt;
 &amp;quot;origin&amp;quot; &amp;quot;-328 -8 24&amp;quot;&lt;br /&gt;
 &amp;quot;add&amp;quot; &amp;quot;player1&amp;quot;&lt;br /&gt;
 &amp;quot;target0&amp;quot; &amp;quot;path_follow_actor_1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34122</id>
		<title>Dmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34122"/>
		<updated>2025-11-25T20:32:52Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Optimization Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;started by Fidcal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This article can include anything about dmap. I just started it as a placeholder to list when and when not to....&lt;br /&gt;
&lt;br /&gt;
Also... do not Dmap while a mission is installed. Uninstall the mission then dmap.&lt;br /&gt;
&lt;br /&gt;
== When do I need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After creating new brush or patch worldspawn.&lt;br /&gt;
* After moving/rotating new brush or patch worldspawn.&lt;br /&gt;
* After renaming a brush or patch entity, eg, func_static.&lt;br /&gt;
* After rotating a brush or patch entity, eg, func_static.&lt;br /&gt;
* After adding AI may need pathfinding recalculating (included in dmap by default.)&lt;br /&gt;
* After adding or moving a light (shadows are precalculated for static, shadowcasting lights).&lt;br /&gt;
&lt;br /&gt;
== When do I NOT need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After adding a path_corner or other path entities.&lt;br /&gt;
* After moving a brush or patch entity&lt;br /&gt;
* After changing a spawnarg (entity keyvalue), unless it affects the origin or rotation of a model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delete Proc, CM, AAS ==&lt;br /&gt;
&lt;br /&gt;
When you dmap, in many cases the existing Proc, CM, and AAS files will not be overwritten.&lt;br /&gt;
It is advisable to delete all the files except the map, script, and custom assets. &lt;br /&gt;
&lt;br /&gt;
== Optimization Options ==&lt;br /&gt;
&lt;br /&gt;
Rather that just using the dmap command alone (as shown below):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can improve the way the map compiler optimizes the map through the use of &amp;quot;switches&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Shadowopt 2 ===&lt;br /&gt;
&lt;br /&gt;
The most commonly used switch is &amp;quot;shadowopt 2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
(CAUTION: There is one report that this caused pathfinding problems.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap shadowopt 2 map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LightCarve ===&lt;br /&gt;
&lt;br /&gt;
Another more common switch is &amp;quot;lightCarve&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This will split the geometry based on light boundaries. &lt;br /&gt;
It can improve performance at the expense of a larger map file. &lt;br /&gt;
&lt;br /&gt;
Mappers who are proficient with this compile method know to arrange and size their lights such that they&lt;br /&gt;
are broken via easy symmetry or ratios.&lt;br /&gt;
&lt;br /&gt;
This is primarily beneficial to maps with simple but wide-open areas with large light volumes (example: a large warehouse).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap lightCarve map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* By most accounts manually splitting light counts is more beneficial than LightCarve so using this switch can be seen as a &amp;quot;lazy technique&amp;quot;. &lt;br /&gt;
* (Though it&#039;s arguably still cumbersome because proper LightCarve application usually requires some pre-planning...).&lt;br /&gt;
&lt;br /&gt;
=== Noflood ===&lt;br /&gt;
&lt;br /&gt;
You can actually dmap your level with leaks using dmap noflood (your map). Obviously this will make it a broken map, but its useful when you&#039;re just moving stuff around and want to quickly see how it looks without having to seal everything up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap noflood map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Even further, advanced mappers can use === &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;noFragment&amp;quot; keyword in materials to &#039;&#039;&#039;prevent&#039;&#039;&#039; some surfaces from splitting during compile&lt;br /&gt;
* The &amp;quot;discrete&amp;quot; keyword in materials to ensure that specified surfaces are &#039;&#039;&#039;always split&#039;&#039;&#039; during compile&lt;br /&gt;
&lt;br /&gt;
These techniques are also referred to as [[Performance:_Essential_Must-Knows#Brush_Carving|&amp;quot;Brush Carving&amp;quot;]] &lt;br /&gt;
&lt;br /&gt;
* More details at: https://modwiki.dhewm3.org/Dmap_(console_command)&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Malloc Errors ===&lt;br /&gt;
&lt;br /&gt;
If you get malloc (memory allocation) errors while dmapping then this might be due to the limitation of the program even if you have plenty of RAM.&lt;br /&gt;
&lt;br /&gt;
If you have more than 4GB of RAM and 64-bit OS, then you should dmap in 64-bit build of DarkMod (starting from 2.06). Keep in mind that memory consumption in 64-bit build is usually higher than in 32-bit build.&lt;br /&gt;
&lt;br /&gt;
If you have 3GB RAM or more then you can get 32-bit build of DarkMod to access up to 4GB by using a 3rd party patch called NTCore. This is a simple Windows application. You just browse to TheDarkMod.exe and click it and it fixes it and makes a backup just in case. That&#039;s it! Here is the link: [[http://www.ntcore.com/4gb_patch.php NTCore]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34121</id>
		<title>Dmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34121"/>
		<updated>2025-11-25T20:29:12Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Even further, advanced mappers can use: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;started by Fidcal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This article can include anything about dmap. I just started it as a placeholder to list when and when not to....&lt;br /&gt;
&lt;br /&gt;
Also... do not Dmap while a mission is installed. Uninstall the mission then dmap.&lt;br /&gt;
&lt;br /&gt;
== When do I need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After creating new brush or patch worldspawn.&lt;br /&gt;
* After moving/rotating new brush or patch worldspawn.&lt;br /&gt;
* After renaming a brush or patch entity, eg, func_static.&lt;br /&gt;
* After rotating a brush or patch entity, eg, func_static.&lt;br /&gt;
* After adding AI may need pathfinding recalculating (included in dmap by default.)&lt;br /&gt;
* After adding or moving a light (shadows are precalculated for static, shadowcasting lights).&lt;br /&gt;
&lt;br /&gt;
== When do I NOT need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After adding a path_corner or other path entities.&lt;br /&gt;
* After moving a brush or patch entity&lt;br /&gt;
* After changing a spawnarg (entity keyvalue), unless it affects the origin or rotation of a model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delete Proc, CM, AAS ==&lt;br /&gt;
&lt;br /&gt;
When you dmap, in many cases the existing Proc, CM, and AAS files will not be overwritten.&lt;br /&gt;
It is advisable to delete all the files except the map, script, and custom assets. &lt;br /&gt;
&lt;br /&gt;
== Optimization Options ==&lt;br /&gt;
&lt;br /&gt;
Rather that just using the dmap command alone (as shown below):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can improve the way the map compiler optimizes the map through the use of &amp;quot;switches&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Shadowopt 2 ===&lt;br /&gt;
&lt;br /&gt;
The most commonly used switch is &amp;quot;shadowopt 2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
(CAUTION: There is one report that this caused pathfinding problems.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap shadowopt 2 map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LightCarve ===&lt;br /&gt;
&lt;br /&gt;
Another more common switch is &amp;quot;lightCarve&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This will split the geometry based on light boundaries. &lt;br /&gt;
It can improve performance at the expense of a larger map file. &lt;br /&gt;
&lt;br /&gt;
Mappers who are proficient with this compile method know to arrange and size their lights such that they&lt;br /&gt;
are broken via easy symmetry or ratios.&lt;br /&gt;
&lt;br /&gt;
This is primarily beneficial to maps with simple but wide-open areas with large light volumes (example: a large warehouse).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap lightCarve map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* By most accounts manually splitting light counts is more beneficial than LightCarve so using this switch can be seen as a &amp;quot;lazy technique&amp;quot;. &lt;br /&gt;
* (Though it&#039;s arguably still cumbersome because proper LightCarve application usually requires some pre-planning...).&lt;br /&gt;
&lt;br /&gt;
=== Noflood ===&lt;br /&gt;
&lt;br /&gt;
You can actually dmap your level with leaks using dmap noflood (your map). Obviously this will make it a broken map, but its useful when you&#039;re just moving stuff around and want to quickly see how it looks without having to seal everything up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Even further, advanced mappers can use === &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;noFragment&amp;quot; keyword in materials to &#039;&#039;&#039;prevent&#039;&#039;&#039; some surfaces from splitting during compile&lt;br /&gt;
* The &amp;quot;discrete&amp;quot; keyword in materials to ensure that specified surfaces are &#039;&#039;&#039;always split&#039;&#039;&#039; during compile&lt;br /&gt;
&lt;br /&gt;
These techniques are also referred to as [[Performance:_Essential_Must-Knows#Brush_Carving|&amp;quot;Brush Carving&amp;quot;]] &lt;br /&gt;
&lt;br /&gt;
* More details at: https://modwiki.dhewm3.org/Dmap_(console_command)&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Malloc Errors ===&lt;br /&gt;
&lt;br /&gt;
If you get malloc (memory allocation) errors while dmapping then this might be due to the limitation of the program even if you have plenty of RAM.&lt;br /&gt;
&lt;br /&gt;
If you have more than 4GB of RAM and 64-bit OS, then you should dmap in 64-bit build of DarkMod (starting from 2.06). Keep in mind that memory consumption in 64-bit build is usually higher than in 32-bit build.&lt;br /&gt;
&lt;br /&gt;
If you have 3GB RAM or more then you can get 32-bit build of DarkMod to access up to 4GB by using a 3rd party patch called NTCore. This is a simple Windows application. You just browse to TheDarkMod.exe and click it and it fixes it and makes a backup just in case. That&#039;s it! Here is the link: [[http://www.ntcore.com/4gb_patch.php NTCore]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34120</id>
		<title>Dmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34120"/>
		<updated>2025-11-25T20:28:21Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Optimization Options */ Added noflood (info from Kingsal)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;started by Fidcal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This article can include anything about dmap. I just started it as a placeholder to list when and when not to....&lt;br /&gt;
&lt;br /&gt;
Also... do not Dmap while a mission is installed. Uninstall the mission then dmap.&lt;br /&gt;
&lt;br /&gt;
== When do I need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After creating new brush or patch worldspawn.&lt;br /&gt;
* After moving/rotating new brush or patch worldspawn.&lt;br /&gt;
* After renaming a brush or patch entity, eg, func_static.&lt;br /&gt;
* After rotating a brush or patch entity, eg, func_static.&lt;br /&gt;
* After adding AI may need pathfinding recalculating (included in dmap by default.)&lt;br /&gt;
* After adding or moving a light (shadows are precalculated for static, shadowcasting lights).&lt;br /&gt;
&lt;br /&gt;
== When do I NOT need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After adding a path_corner or other path entities.&lt;br /&gt;
* After moving a brush or patch entity&lt;br /&gt;
* After changing a spawnarg (entity keyvalue), unless it affects the origin or rotation of a model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delete Proc, CM, AAS ==&lt;br /&gt;
&lt;br /&gt;
When you dmap, in many cases the existing Proc, CM, and AAS files will not be overwritten.&lt;br /&gt;
It is advisable to delete all the files except the map, script, and custom assets. &lt;br /&gt;
&lt;br /&gt;
== Optimization Options ==&lt;br /&gt;
&lt;br /&gt;
Rather that just using the dmap command alone (as shown below):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can improve the way the map compiler optimizes the map through the use of &amp;quot;switches&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Shadowopt 2 ===&lt;br /&gt;
&lt;br /&gt;
The most commonly used switch is &amp;quot;shadowopt 2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
(CAUTION: There is one report that this caused pathfinding problems.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap shadowopt 2 map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LightCarve ===&lt;br /&gt;
&lt;br /&gt;
Another more common switch is &amp;quot;lightCarve&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This will split the geometry based on light boundaries. &lt;br /&gt;
It can improve performance at the expense of a larger map file. &lt;br /&gt;
&lt;br /&gt;
Mappers who are proficient with this compile method know to arrange and size their lights such that they&lt;br /&gt;
are broken via easy symmetry or ratios.&lt;br /&gt;
&lt;br /&gt;
This is primarily beneficial to maps with simple but wide-open areas with large light volumes (example: a large warehouse).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap lightCarve map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* By most accounts manually splitting light counts is more beneficial than LightCarve so using this switch can be seen as a &amp;quot;lazy technique&amp;quot;. &lt;br /&gt;
* (Though it&#039;s arguably still cumbersome because proper LightCarve application usually requires some pre-planning...).&lt;br /&gt;
&lt;br /&gt;
=== Noflood ===&lt;br /&gt;
&lt;br /&gt;
You can actually dmap your level with leaks using dmap noflood (your map). Obviously this will make it a broken map, but its useful when you&#039;re just moving stuff around and want to quickly see how it looks without having to seal everything up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Even further, advanced mappers can use:=== &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;noFragment&amp;quot; keyword in materials to &#039;&#039;&#039;prevent&#039;&#039;&#039; some surfaces from splitting during compile&lt;br /&gt;
* The &amp;quot;discrete&amp;quot; keyword in materials to ensure that specified surfaces are &#039;&#039;&#039;always split&#039;&#039;&#039; during compile&lt;br /&gt;
&lt;br /&gt;
These techniques are also referred to as [[Performance:_Essential_Must-Knows#Brush_Carving|&amp;quot;Brush Carving&amp;quot;]] &lt;br /&gt;
&lt;br /&gt;
* More details at: https://modwiki.dhewm3.org/Dmap_(console_command)&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Malloc Errors ===&lt;br /&gt;
&lt;br /&gt;
If you get malloc (memory allocation) errors while dmapping then this might be due to the limitation of the program even if you have plenty of RAM.&lt;br /&gt;
&lt;br /&gt;
If you have more than 4GB of RAM and 64-bit OS, then you should dmap in 64-bit build of DarkMod (starting from 2.06). Keep in mind that memory consumption in 64-bit build is usually higher than in 32-bit build.&lt;br /&gt;
&lt;br /&gt;
If you have 3GB RAM or more then you can get 32-bit build of DarkMod to access up to 4GB by using a 3rd party patch called NTCore. This is a simple Windows application. You just browse to TheDarkMod.exe and click it and it fixes it and makes a backup just in case. That&#039;s it! Here is the link: [[http://www.ntcore.com/4gb_patch.php NTCore]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34119</id>
		<title>Dmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Dmap&amp;diff=34119"/>
		<updated>2025-11-25T20:20:03Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: /* Even further, advanced mappers can use: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;started by Fidcal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This article can include anything about dmap. I just started it as a placeholder to list when and when not to....&lt;br /&gt;
&lt;br /&gt;
Also... do not Dmap while a mission is installed. Uninstall the mission then dmap.&lt;br /&gt;
&lt;br /&gt;
== When do I need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After creating new brush or patch worldspawn.&lt;br /&gt;
* After moving/rotating new brush or patch worldspawn.&lt;br /&gt;
* After renaming a brush or patch entity, eg, func_static.&lt;br /&gt;
* After rotating a brush or patch entity, eg, func_static.&lt;br /&gt;
* After adding AI may need pathfinding recalculating (included in dmap by default.)&lt;br /&gt;
* After adding or moving a light (shadows are precalculated for static, shadowcasting lights).&lt;br /&gt;
&lt;br /&gt;
== When do I NOT need to dmap? ==&lt;br /&gt;
&lt;br /&gt;
* After adding a path_corner or other path entities.&lt;br /&gt;
* After moving a brush or patch entity&lt;br /&gt;
* After changing a spawnarg (entity keyvalue), unless it affects the origin or rotation of a model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delete Proc, CM, AAS ==&lt;br /&gt;
&lt;br /&gt;
When you dmap, in many cases the existing Proc, CM, and AAS files will not be overwritten.&lt;br /&gt;
It is advisable to delete all the files except the map, script, and custom assets. &lt;br /&gt;
&lt;br /&gt;
== Optimization Options ==&lt;br /&gt;
&lt;br /&gt;
Rather that just using the dmap command alone (as shown below):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can improve the way the map compiler optimizes the map through the use of &amp;quot;switches&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The most commonly used switch is &amp;quot;shadowopt 2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
(CAUTION: There is one report that this caused pathfinding problems.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap shadowopt 2 map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another more common switch is &amp;quot;lightCarve&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This will split the geometry based on light boundaries. &lt;br /&gt;
It can improve performance at the expense of a larger map file. &lt;br /&gt;
&lt;br /&gt;
Mappers who are proficient with this compile method know to arrange and size their lights such that they&lt;br /&gt;
are broken via easy symmetry or ratios.&lt;br /&gt;
&lt;br /&gt;
This is primarily beneficial to maps with simple but wide-open areas with large light volumes (example: a large warehouse).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dmap lightCarve map_name.map&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* By most accounts manually splitting light counts is more beneficial than LightCarve so using this switch can be seen as a &amp;quot;lazy technique&amp;quot;. &lt;br /&gt;
* (Though it&#039;s arguably still cumbersome because proper LightCarve application usually requires some pre-planning...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Even further, advanced mappers can use:=== &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;noFragment&amp;quot; keyword in materials to &#039;&#039;&#039;prevent&#039;&#039;&#039; some surfaces from splitting during compile&lt;br /&gt;
* The &amp;quot;discrete&amp;quot; keyword in materials to ensure that specified surfaces are &#039;&#039;&#039;always split&#039;&#039;&#039; during compile&lt;br /&gt;
&lt;br /&gt;
These techniques are also referred to as [[Performance:_Essential_Must-Knows#Brush_Carving|&amp;quot;Brush Carving&amp;quot;]] &lt;br /&gt;
&lt;br /&gt;
* More details at: https://modwiki.dhewm3.org/Dmap_(console_command)&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Malloc Errors ===&lt;br /&gt;
&lt;br /&gt;
If you get malloc (memory allocation) errors while dmapping then this might be due to the limitation of the program even if you have plenty of RAM.&lt;br /&gt;
&lt;br /&gt;
If you have more than 4GB of RAM and 64-bit OS, then you should dmap in 64-bit build of DarkMod (starting from 2.06). Keep in mind that memory consumption in 64-bit build is usually higher than in 32-bit build.&lt;br /&gt;
&lt;br /&gt;
If you have 3GB RAM or more then you can get 32-bit build of DarkMod to access up to 4GB by using a 3rd party patch called NTCore. This is a simple Windows application. You just browse to TheDarkMod.exe and click it and it fixes it and makes a backup just in case. That&#039;s it! Here is the link: [[http://www.ntcore.com/4gb_patch.php NTCore]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Grouping&amp;diff=34118</id>
		<title>Grouping</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Grouping&amp;diff=34118"/>
		<updated>2025-11-25T09:42:24Z</updated>

		<summary type="html">&lt;p&gt;Datiswous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This article uses &amp;quot;entity&amp;quot; in the broad sense, as a &amp;quot;collection of map objects&amp;quot;, which can include, for instance, worldspawn.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With the release of DarkRadiant 2.2.1 the grouping feature was introduced. This feature lets you group together several individual entities, so they are treated as a single entity in DarkRadiant.&lt;br /&gt;
In order to group entities, select all entities, that you want in one group, and then either use the right mouse button and select &amp;quot;Group Selection&amp;quot; or use Edit -&amp;gt; Group Selection in the task bar. The group can be disbandend by using &amp;quot;Ungroup Selection&amp;quot; in the same way. &lt;br /&gt;
&lt;br /&gt;
To change individual parts of the group without ungrouping you have to enter &amp;quot;Selection focus&amp;quot;, which can only be accessed via a key (the command is called &amp;quot;ToggleSelectionFocus&amp;quot;). In this mode you can can change grouped parts, but nothing outside of the group. Check the info [https://wiki.thedarkmod.com/index.php?title=The_Parts_and_Whole:_DR_Groups#Selection_focus here] for a longer description.&lt;br /&gt;
&lt;br /&gt;
== Grouping and Prefabs ==&lt;br /&gt;
With the introduction of the grouping feature Prefabs are grouped by default, as they usually are used as a single entity. There are examples, where this behaviour is unwanted (e.g. for the key of a chest prefab). It is possible to change this behaviour before inserting the prefab by unticking the Box &amp;quot;Create Group out of Prefab parts&amp;quot; in the &amp;quot;Choose Prefab&amp;quot; window. Please note, that this box remains unticked after inserting the prefab; so if you want to insert a prefab as a group later on, you will have to tick this box again.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[The Parts and Whole: DR Groups]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;br /&gt;
[[Category:Models]]&lt;br /&gt;
[[Category:Prefabs]]&lt;/div&gt;</summary>
		<author><name>Datiswous</name></author>
	</entry>
</feed>