<?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=Teh+saccade</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=Teh+saccade"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Special:Contributions/Teh_saccade"/>
	<updated>2026-04-29T22:21:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=A_-_Z_Beginner_Full_Guide_Start_Here!&amp;diff=23710</id>
		<title>A - Z Beginner Full Guide Start Here!</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=A_-_Z_Beginner_Full_Guide_Start_Here!&amp;diff=23710"/>
		<updated>2019-03-01T14:45:12Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* Folder Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{A-Z Beginner Guide TOC}}&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;PLEASE NOTE: &amp;lt;br&amp;gt;THIS GUIDE CONTAINS SPOILERS FOR THE &amp;quot;THIEF&#039;S DEN&amp;quot; DEMO MISSION RELEASED JAN 18TH, 2008.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mappers might also be interested in Sotha&#039;s excellent video tutorial showcasing the creation of a small mission from start to finish:  [https://www.youtube.com/watch?v=gem2sHGhfZE Let&#039;s Map With Sotha]&lt;br /&gt;
&lt;br /&gt;
Springheel also has a video tutorial showcasing how to speed up your mission-building using existing prefabs and modules:  [https://www.youtube.com/watch?v=n9Bbp7fFljc Springheel&#039;s Speed Build Challenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Since writing this I&#039;ve created a [[Startpack Mappers&#039; Guide]] which is a ready made FM template with a set of ready made components to make it even easier to make a Dark Mod FM because it already includes things like objectives, briefing, readables, etc. etc and you just modify them and concentrate on building. However, I recommend you first follow this guide so you have some understanding of the basics and then the startpack will make more sense.&lt;br /&gt;
&lt;br /&gt;
This is an easy guide for complete beginners to Dark Mod. It will lead you from start to finish, &#039;push that button, click that menu&#039; and at the end you will have a fully working (but tiny) Dark Mod mission with all the main essential features including objectives all zipped up. You will be able to include variations of your own as you progress if you wish. Links to more detailed info is included but ignore those first time if you wish. Creating this mission is a learning process: although others will be able to play it, it will be too simple for that purpose - though it might be fun to see how varied the results might be from different players following the same instructions! When finished you can modify it and customise it to learn more or just shelve it for reference while you start your &#039;&#039;real&#039;&#039; mission!&lt;br /&gt;
&lt;br /&gt;
This tutorial does not describe how to make your mission architecturally beautiful - just the opposite; the build may be as crude, quick, and ugly as you like. Nor does it advise how to design for good gameplay, etc. For that you should go to [[Mission Design Tips]] after you have mastered the basics. This is a &#039;&#039;method&#039;&#039; tutorial, not a &#039;&#039;design&#039;&#039; tutorial. Nor can it answer every question. It will merely present the most basic information for making a complete mission.&lt;br /&gt;
&lt;br /&gt;
Feel free to experiment, add to, or even skip parts you already know or seem obvious, especially if you have a background producing Doom or Quake maps.&lt;br /&gt;
&lt;br /&gt;
This guide was inspired by Komag&#039;s famous tutorial which helped a great many Dromeders (including myself) to get started producing Thief 2 FMs. If you are or were a Dromeder then you might first like to browse quickly through [[Dromed - Dark Mod Differences]] before proceeding - though it is not essential for this tutorial as I am trying to make few assumptions of prior knowledge. It will refer to default keys/mouse settings in Dard Radiant (editor - see later) so if you have changed any hot keys in Dark Radiant&#039;s help menu then keep that in mind. Also note that any screenshots might be in a different colour to your settings of course.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes that you have Dark Mod already installed. If not, please refer to [http://www.thedarkmod.com The Dark Mod] website for information.&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use the limited Dark Mod resources provided by the pre-release demo mission [[Thief&#039;s Den]]&lt;br /&gt;
&lt;br /&gt;
== The Dark Mod Editor ==&lt;br /&gt;
&lt;br /&gt;
To edit Dark Mod missions you will need a game editor. &#039;&#039;&#039;This tutorial is based on the [[Dark Radiant]] editor&#039;&#039;&#039; (hereinafter may be called DR) but you can possibly follow most of it in other editors like DoomEd. Variations might be shown where possible but it will mainly assume Dark Radiant. If you haven&#039;t got Dark Radiant yet, consult the [[Dark Radiant]] sections, install it and set it up how you like it. If you want to use DoomEd then you need to look elsewhere first. DoomEd of course is supplied with Doom.&lt;br /&gt;
&lt;br /&gt;
You might wish to open the [[Dark Radiant Controls, Keys &amp;amp; Mouse|DR Controls]] page in a new window in your web browser for quick reference while following this tutorial. I&#039;ll try to make it so you don&#039;t need to!&lt;br /&gt;
&lt;br /&gt;
Make sure you can run Dark Mod and your editor before proceeding. In particular remember you can undo your last step(s) (edit menu or {{key|CTRL}}+{{key|Z}})&lt;br /&gt;
&lt;br /&gt;
== Folder Structure == &lt;br /&gt;
&lt;br /&gt;
[Added by Destined]&lt;br /&gt;
This section was added later and overlaps with the contents of the section &amp;quot;Dmap: Compiling the Mission&amp;quot;&lt;br /&gt;
* All main resources and executables are stored in the TDM root folder (this is where you have installed The Dark Mod, e.g. C:/Darkmod). The recources are stored in pk4-files. These are simply renamed zip-files and can be opened with any common unpacking program like Winzip, Winrar or 7zip.&lt;br /&gt;
* The &amp;quot;maps&amp;quot; folder is where Dark Radiant saves maps by default.&lt;br /&gt;
* All fan missions are stored in the &amp;quot;fms&amp;quot; folder as pk4-files. Upon installing a mission in-game, a sub-folder is created and the pk4-file as well as the readme.txt, the description file, and any savegames belonging to this mission are saved there.&lt;br /&gt;
* If you open a mission pk4-file (e.g. the Training Mission or Tears of St. Lucia), you can see the folder structure used for fan missions. It contains folders like &amp;quot;maps&amp;quot;, &amp;quot;textures&amp;quot;, or &amp;quot;materials&amp;quot;, that you need for custom assets in your mission.&lt;br /&gt;
* Create a folder for your new map in &amp;quot;fms&amp;quot; and name it accordingly (e.g. Tut), then create a sub-folder &amp;quot;maps&amp;quot; and open Dark Radiant.&lt;br /&gt;
* With File-&amp;gt;Select Game... you can open a window to configure basic settings (this might open automatically when you start Dark Radiant for the first time).&lt;br /&gt;
* For &amp;quot;Select a Game&amp;quot; choose &amp;quot;The Dark Mod 2.0 (Standalone).&lt;br /&gt;
* For &amp;quot;Engine Path&amp;quot; browse to the root folder of your installation (the path to the folder with your TheDarkMod.exe). (e.g. C:/Darkmod)&lt;br /&gt;
* &amp;quot;Mod(fs_game)&amp;quot; is the path to your current FM (e.g. fms/Tut). This path is relative to the given &amp;quot;Engine Path&amp;quot;.  You can leave this blank if you are not working on a FM.&lt;br /&gt;
* Now the editor will use resources you point to in this folder. Otherwise a pk4-package in the root folder would be needed.&lt;br /&gt;
* In order to have these new settings take effect, restart Dark Radiant.&lt;br /&gt;
* Save the blank file under fms/yourmapfolder/maps (e.g. fms/Tut/maps). It is recommended to choose a short name for your mission as you will type it a lot in the game console.&lt;br /&gt;
* An overview of all files possible to be included in a packaged mission, with a collection of links to other resources and appropriate wiki pages, can be found in the [[Mission Filestructure|Mission Filestructure]] entry.&lt;br /&gt;
&lt;br /&gt;
== Your First Mission ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s get started.&lt;br /&gt;
&lt;br /&gt;
* Open Dark Radiant (hereinafter DR) and also open Dark Mod for quick testing.&lt;br /&gt;
* If you have a mission already open in DR then select File menu &amp;gt; New Map to clear it.&lt;br /&gt;
* Save it now as any suitable name. You might prefer to save later but I always do it immediately. All missions must go (with exceptions I will describe later in [[A - Z Beginner Full Guide Page 5#Managing your Mission Files|Managing your Mission Files]]) in the darkmod\maps folder or a folder within that. I urge you to create a new folder for each project within that maps folder. In this case:&lt;br /&gt;
# Open File Menu &amp;gt; Save As&lt;br /&gt;
# Make sure you are in the &#039;maps&#039; folder.&lt;br /&gt;
# Select &#039;Create Folder&#039; and type in say &#039;tutorial&#039;. You might prefer &#039;Tut&#039; or even &#039;T&#039; because you have to keep typing it over and over in the Dark Mod console when testing!&lt;br /&gt;
# Select that folder&lt;br /&gt;
# Enter the name of your mission at the top.&lt;br /&gt;
* The game will be saved as a &#039;map&#039; file with a .map suffix and is commonly called a &#039;map&#039; in Doom circles. But I will use the term &#039;mission&#039; or &#039;FM&#039; (Fan Mission) or maybe &#039;game&#039; for the map file to try to avoid confusion with actual &#039;city&#039; or &#039;treasure&#039; maps within the mission.&lt;br /&gt;
&lt;br /&gt;
First, let&#039;s consider our rough storyline so we have some idea what to build...&lt;br /&gt;
&lt;br /&gt;
== Story, Briefing ==&lt;br /&gt;
&lt;br /&gt;
Formal mission objectives will be described much later in this tutorial. But before you begin your mission you will obviously need to have at least some idea of storyline and plot else you will have no idea what to build. You might have a detailed story or just some simple ideas which you can develop later.&lt;br /&gt;
&lt;br /&gt;
Ultimately, you will need to brief the player with information about the story, characters, and the main purpose of the mission. It probably makes sense to write that fully when you are nearly finished the mission because new ideas or even technical difficulties might make you change your story. However, in this tutorial I&#039;ll describe it early so as you build the mission the layout and objects make sense.&lt;br /&gt;
&lt;br /&gt;
Your briefing text should eventually be entered as described at [[Briefing]] but temporarily you might just write it in a plain text document for reference.&lt;br /&gt;
&lt;br /&gt;
This mini tutorial mission is called &#039;Thief&#039;s Den&#039; so here is an example briefing (&#039;&#039;&#039;not&#039;&#039;&#039; in correct format for the gui or .xd file):&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I had a nice haul the other night including a grand scepter from Lord Frothley. But a low-life named Creep who had given me the info, then stole it from ME! Never trust a thief I say. But I know where he lives...&lt;br /&gt;
&lt;br /&gt;
I also still have his message in his own hand, giving the low-down. If I can dispose of Creep and drop the message nearby then he should take the heat for the heist diverting all suspicion from me.&lt;br /&gt;
&lt;br /&gt;
Creep is a nasty piece of work who is handy with a blade. He can be dangerous and may be expecting me - may even have recruited a thug or two as back up - but he has badly underestimated my stealth skills...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Preparing to Build ==&lt;br /&gt;
&lt;br /&gt;
When you open Dark Radiant it will default to a grid size (in the XYZ orthoview) of 8 units by 8 (changeable from version 0.9.5 onwards.) These [[Conversion of Game Units|units]] are 1.1 inches. Check your preference (default key P) in DR as it will be easier during this tutorial if you have the following checked (ticked) in Preferences &amp;gt; Orthoview...&lt;br /&gt;
&lt;br /&gt;
* Show Grid&lt;br /&gt;
* Show Size Info&lt;br /&gt;
* Show Coordinates&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; It is recommend you generally build with the grid set reasonably to a large size such as the default 8 or 16 for all walls, floors, etc. This makes alignment easier. You can reduce this in the grid menu for fine placement but don&#039;t leave it like that generally or you will have complexity problems. Snap to grid ([[Image:DRsnapGrid.jpg]], {{key|CTRL}}+{{key|G}}) will re-align a selection to the current grid size.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll mostly be working in the XYZ grid orthoview but if you have room for the camera view at the side so much the better. The camera view does a rough render in 3D (F3 toggles a better rendering with lighting etc but keep that off if it slows things down which it is likely to and just use it now and again.)&lt;br /&gt;
&lt;br /&gt;
* Note the origin icon of the &#039;world&#039; at 0,0,0 in the grid view&lt;br /&gt;
* Zoom in and out with the mouse wheel&lt;br /&gt;
* Right mouse drag the grid view to scroll around (zoom out further to scroll around faster)&lt;br /&gt;
* Use &#039;&#039;Change views&#039;&#039; tool ([[Image:DRnextViewBut.jpg]], {{key|CTRL}}+{{key|Tab}}) to toggle between top (XY), front (XZ), and side (YZ) views (you can open aditional windows using menu &amp;lt;tt&amp;gt;View &amp;gt; New XY view&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The blank windows in the grid and camera views can be regarded as empty void - the space in which we shall build. We have to build in bubbles sealed off from that void like an airtight spaceship or a submarine. Any gaps will cause leaks and crash your game so it&#039;s obviously the first major rule to learn: always build inner spaces sealed off from the outer void&lt;br /&gt;
&lt;br /&gt;
Apart from special materials like water and weather, all the raw material you will use is &#039;solid&#039; to form different shapes. So we can make panels and place them together to form lots of floating airtight boxes and these can be linked together. The entire game then takes place inside those boxes. One box can hold a tiny cupboard or an entire cathedral and a lot of boxes can hold a city. Inside those boxes you cannot see the void.&lt;br /&gt;
&lt;br /&gt;
A shortcut to putting panels together is to make one solid block and hollow it out to form a box and this is what we are going to do now to form our first room.&lt;br /&gt;
&lt;br /&gt;
== Making Your First Room ==&lt;br /&gt;
&lt;br /&gt;
First we make a rough solid block...&lt;br /&gt;
&lt;br /&gt;
* Select the top view (XY) in the grid view (toggle with [[Image:DRnextViewBut.jpg]]).&lt;br /&gt;
* Left mouse drag out a rectangle any few grid units across in the middle somewhere.&lt;br /&gt;
* This rectangle is called a &#039;brush&#039; and used to define raw shapes for walls, floors etc.&lt;br /&gt;
* Left drag &#039;&#039;within&#039;&#039; that brush to drag the brush around&lt;br /&gt;
* Select the &#039;&#039;Resize&#039;&#039; tool ([[Image:DRdragResize.jpg]], {{key|Q}}).&lt;br /&gt;
* Now left drag &#039;&#039;outside&#039;&#039; that brush to resize it.&lt;br /&gt;
&lt;br /&gt;
Now we adjust its top view area...&lt;br /&gt;
&lt;br /&gt;
* Left drag outside that brush to resize it to 256 across left to right (X direction) by 192 up and down (Y direction in top view.) You should see those dimensions at the sides of the rectangle if you have &#039;Show Size Info&#039; set in Edit &amp;gt; Preferences &amp;gt; Orthoview. The position of the top left corner is in brackets at top left.&lt;br /&gt;
* Left drag within the brush to move it so its sides fit on the bigger grid. If all sides don&#039;t fit then check your dimensions and that you are still in grid size 8 (see grid menu.)&lt;br /&gt;
* I prefer to build up in the top right corner from the world 0,0,0 so none of the values are negatives but you decide for yourself. Move it where you want but ideally so the sides are on the big grid.&lt;br /&gt;
&lt;br /&gt;
Now we adjust its height to get our finished block (brush)...&lt;br /&gt;
&lt;br /&gt;
* Use [[Image:DRnextViewBut.jpg]] ({{key|CTRL}}+{{key|Tab}}) to switch to side (YZ) or front (XZ) view and left drag outside the brush to change its height to 128&lt;br /&gt;
* Left drag inside the brush to move it up and down so its sides are on a big grid same as you did in the top view.&lt;br /&gt;
* You should now have brush 256 x 192 x 128  (see [[Conversion of Game Units#Tips|Unit Tips]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:AZblock.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Selecting and DEselecting ==&lt;br /&gt;
&lt;br /&gt;
We only have one item in our view but eventually many. Operations only work on what is currently selected. When you have just created something as we just have it is automatically the current selection and should be highlighted in your views (see DR Preferences for colour.) &lt;br /&gt;
&lt;br /&gt;
* To DEselect it, point your mouse at it in either the grid or camera view and use {{key|SHIFT}}+{{key|ALT}}+{{LMB}} (or just press the {{key|Esc}} key.)&lt;br /&gt;
*To select it again, point your mouse at it and use {{key|SHIFT}}+{{key|ALT}}+{{LMB}} again.&lt;br /&gt;
&lt;br /&gt;
Selecting is something you&#039;ll do a lot of so get familiar with that {{key|SHIFT}}+{{key|ALT}}+{{LMB}}. It&#039;s an exclusive select to get just one item. There are other selects I&#039;ll describe later. The {{key|Esc}} key always deselects and it is vitally important to get into the habit of DEselecting before you select or create something new or in some cases you will have multiple selections without knowing it and can delete or change something you didn&#039;t want to. This is why the {{key|SHIFT}}+{{key|ALT}}+{{LMB}} is the safest select as it is exclusive and will automatically DEselect anything else that was left selected. But it won&#039;t protect an item when creating. Yes, it is possible to have say a brush selected, forget it is selected, then create say, a new light. Oh! what happened to the brush? It&#039;s gone - replaced by the light. Develop a nervous habit of keep hitting {{key|Esc}} to deselect when you go to create!&lt;br /&gt;
&lt;br /&gt;
From now on I&#039;ll use LMB, MMB, and RMB to refer to the mouse buttons.&lt;br /&gt;
&lt;br /&gt;
== Camera View ==&lt;br /&gt;
&lt;br /&gt;
You should be able to see this block in the camera view. If the camera view is just black remember {{key|F3}} toggles true light rendering and we don&#039;t yet have a light so hit {{key|F3}} to get a constant bright test light throughout. I won&#039;t go into details of all the camera controls suffice to say use the arrow keys and {{key|D}} and {{key|C}} to move vertically. But scroll down to &#039;camera&#039; in [[Dark Radiant Controls, Keys &amp;amp; Mouse]] and you will see a fantastic amount of control you have in DR&#039;s camera view - especially with the mouse. It will take time to get used to them all so for now perhaps just learn enough to move around to see what you&#039;ve done so far.&lt;br /&gt;
&lt;br /&gt;
If you can see your block(brush) in the camera view then it is likely not to have any particular texture unless you were doing something before this tutorial. Close up you may see it is covered in a checkered blue &#039;shader not found&#039; message. Don&#039;t worry if it&#039;s covered in something else like stone or wood though. Since it will eventually be hollowed out to form a room, let&#039;s paint it now with some material more suitable to the Dark Mod universe...&lt;br /&gt;
&lt;br /&gt;
== Materials, Textures, Painting the Block ==&lt;br /&gt;
&lt;br /&gt;
This is the tiny home of a cheap thief so we&#039;ll use some old stonework.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve mentioned &#039;textures&#039;, &#039;shaders&#039;, and &#039;materials&#039;; what do these terms mean? A &#039;material&#039; or &#039;shader&#039; is the properties of a surface, including (but not necessarily) texture, sound, and others. To &#039;paint&#039; our block we...&lt;br /&gt;
&lt;br /&gt;
* Select the Media Browser. This is one of the tabs on a panel. Pressing N or T hides/shows the whole panel but I guess most people leave the panel showing all the time and just select the tab they want. &lt;br /&gt;
* Allow a few seconds for DR to read in the media first time and then you should see &#039;textures&#039; listed&lt;br /&gt;
* Click &#039;textures&#039; and it opens up to show all available textures. Many of the ones you see are Doom textures. Scroll down and select &#039;darkmod&#039; which reveals the ones most suitable for our use. Scroll down to stone, open it, then cobblestones and select blocks_mixed_multicolour. Right click it and select &#039;Apply to selection&#039;. This covers all surfaces of the block because we have still got selected the whole block not just one surface. You should see this in the camera view. Use this throughout the house (and eventually on its outside surface for consistency.)&lt;br /&gt;
* Select the Texture Browser. This is one of the tabs on the same panel as Media Browser.  The Texture Browser only shows recently used textures. You should see only the one texture you selected so it&#039;s handy for future use. Odds are you will want to re-use the same textures. It will also show other textures if you clicked on them in the media browser plus any others if you were using DR before this tutorial. You can also copy and paste textures onto single or multiple surfaces (see later.)&lt;br /&gt;
* Hover the mouse over the four little buttons at the top of the Texture Browser and read the text so you have some idea of what features are there for the future. For now, click on the one that says &#039;Flush and Reload Shaders&#039; and it should clear all of them except the one we put on our brush. As we add others they will appear in the texture browser so you can get to them more quickly.&lt;br /&gt;
* Now, press S for Surface Inspector (or View menu)&lt;br /&gt;
* If you have only one face selected (more about this later) you can set Horiz and Vert scale. Value like 0.3 makes it harder for the player to see any pattern repetition (in this situation and in my opinion - use your own judgement with other textures and wall sizes.) In the mean time you can use arrow buttons to adjust the scale for the whole selected brush. Whatever scale you use, generally you should be consistent with it for the same texture wherever used in a mission. If you use copy and paste then it will transfer the scale as well which is far easier.&lt;br /&gt;
* There will be more on texture adjustment later in this tutorial.&lt;br /&gt;
&lt;br /&gt;
== Hollowing out a Room from the Block ==&lt;br /&gt;
&lt;br /&gt;
Building to a large grid size helps performance. The outside of our block will never be seen in the game. Once we hollow it out then the player will only see the inside so that is the surface that is rendered and that we need to align to the large grid. There are two tools to hollow out a block, both activated by a button on the left button bar: one called &#039;hollow&#039; and the other &#039;room&#039;.  Don&#039;t use &#039;hollow&#039; as it reduces the internal sides so they don&#039;t fit the big grid AND it overlaps the corners which can cause rendering errors like so....&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font size=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;center&amp;gt;BAD!&amp;lt;/center&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:AZhollow.jpg]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead use the &#039;room&#039; button which does the job right (note the increased size so the &#039;&#039;internal&#039;&#039; dimensions will be the same as our original block and align to the big grid...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font size=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;center&amp;gt;GOOD!&amp;lt;/center&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:AZroom.jpg]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All brushes in Doom must be convex. They cannot have any inward angles (like an L shape which would have to be two brushes together) and cannot actually be hollow. The above tools really create new side panel brushes to replace the original brush. In the case of our six-sided block that is six new brushes positioned as walls, floor, and ceiling. &#039;&#039;The walls they create are one small grid line wide so their width will vary depending on your grid size setting.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Examine the block in the camera view and zoom right inside so you can see it internally which is where it will be seen in game. Note the texture aligns nicely because we stuck to a big grid size. The stone is appropriate for all four walls (which is why I textured the whole block in one go rather than one surface at a time) but now we need different textures for floor and ceiling...&lt;br /&gt;
&lt;br /&gt;
== Selecting and Texturing Individual Surfaces ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You cannot select a surface in the grid view&#039;&#039;&#039; so move inside the room in the camera view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To texture the floor...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Press Esc to make sure everything is DEselected&lt;br /&gt;
* Point at the floor and use {{key|SHIFT}}+{{LMB}}. Repeat a few times and you will see it selects/DEselects the surface. Keep it selected.&lt;br /&gt;
* Select the Media Browser again (on the tabbed panel)&lt;br /&gt;
* In the darkmod section select say stone/cobblestones or maybe you would like some wood/boards/worn_01 ? You choose but something like carpet might need special alignment so stick with stones or boards maybe for now? Remember - RIGHT click the texture name and select &#039;Apply to Selection&#039;&lt;br /&gt;
* Alternatively you can click on several possibles then select them with one LMB in the Texture Browser on the other tab. In the Texture Browser you can enlarge the textures if preferred to see them better.&lt;br /&gt;
* Esc to DEselect so you can see it better in camera view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To texture the ceiling...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Press Esc to make sure everything is DEselected&lt;br /&gt;
* Point at the ceiling and use {{key|SHIFT}}+{{LMB}} again to select its surface.&lt;br /&gt;
* Select the Media Browser again (on the tabbed panel)&lt;br /&gt;
* In the darkmod section select say plaster/plaster01 and apply it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you change your mind about the walls you can change them to something else...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Press Esc to make sure everything is DEselected&lt;br /&gt;
* Point at one wall and use {{key|SHIFT}}+{{LMB}} again to select its surface.&lt;br /&gt;
* Point at another wall use {{key|SHIFT}}+{{LMB}} again so now both surfaces are selected&lt;br /&gt;
* &#039;Accidentally&#039; select the ceiling. No problem. Just use {{key|SHIFT}}+{{LMB}} on it again to DEselect it but the walls are still selected. In this way you can select which surfaces you want to select.&lt;br /&gt;
* Select the Media Browser again and just apply another type of stone, perhaps brick, to the walls if you want or just leave it as it is.&lt;br /&gt;
&lt;br /&gt;
Now press {{key|CTRL}}+{{key|S}} to resave the mission or use the File menu. Get into the habit of doing this often unless you have autosave set. Now and again you can also save with a new name so you can go back to an earlier one if you totally mess up. Note: There is also a backup file made automatically by DR.&lt;br /&gt;
&lt;br /&gt;
== Adding the Player&#039;s Start Point ==&lt;br /&gt;
&lt;br /&gt;
One more thing is &#039;&#039;essential&#039;&#039; to play this in Dark Mod and that is the Player&#039;s starting position.&lt;br /&gt;
&lt;br /&gt;
* Press Esc to DEselect everything.&lt;br /&gt;
* In the TOP grid view, point the mouse in the middle of the room and RMB to get a pop up menu. This menu is important so glance at some of the other items on it while you&#039;re here. &#039;Entities&#039; are special function items and the player start is amongst them but there is a shortcut on the menu so instead...&lt;br /&gt;
* Select &amp;quot;Create Player Start here&amp;quot; on the menu. This will create the playerstart entity (red box) and put it where you clicked. Drag the entity around to the point where you want the player to start.&lt;br /&gt;
* You should see an arrow on the red box indicating the way the player will face at the start. If you cannot see the arrow then menu &amp;lt;tt&amp;gt;View &amp;gt; Show &amp;gt; Show Angles&amp;lt;/tt&amp;gt; will reveal it. You can rotate the player by selecting &#039;&#039;Rotate&#039;&#039; tool ([[Image:DRrotate.jpg]], {{key|R}}) and dragging with the mouse.&lt;br /&gt;
* Use {{key|CTRL}}+{{key|Tab}} to switch to the side view (YZ) and use LMB to drag the &#039;&#039;inside&#039;&#039; of the player start box so its base is on the floor of the room (you can also use &#039;&#039;Translate&#039;&#039; tool, [[Image:DRtranslate.jpg]], {{key|W}}). Make sure you do not go below or the floor or the player might be stuck with his feet in concrete! Tip: In Thief games it was common to start just dropping over a wall with this player start a few feet above the ground. You might note that entities do not directly resize like brushes so LMB dragging on the &#039;&#039;outside&#039;&#039; of the box does nothing (unless you have selected the &#039;&#039;Translate&#039;&#039; tool).&lt;br /&gt;
* RMB in the grid view again and you will see there is now a &#039;&#039;Move player start here&#039;&#039; option so you can quickly move its position while testing different areas of your mission. But always remember to check both the side and top view when moving things around, to make sure the vertical position is also valid. (Also note that &#039;&#039;Move player start here&#039;&#039; does not &#039;&#039;select&#039;&#039; the player start - you will need to select it if you need to adjust its position by dragging.)&lt;br /&gt;
* With the player start still selected you can select the Entity Inspector (on the panel, or {{key|N}} to hide/show it) and see the properties of your first entity.&lt;br /&gt;
&lt;br /&gt;
The game could now be played but it will be totally dark so we need to create at least one light.....&lt;br /&gt;
&lt;br /&gt;
== Creating a Light ==&lt;br /&gt;
&lt;br /&gt;
* Press Esc to DEselect everything.&lt;br /&gt;
* In the TOP grid view, point the mouse in the &#039;&#039;middle&#039;&#039; of the room and RMB to get the pop up menu.&lt;br /&gt;
* Select &amp;quot;Create Light&amp;quot; on the menu.&lt;br /&gt;
* A large red box appears with diagonals representing the light&#039;s centre and its rough &#039;radius&#039;. The default light is more like six pyramids pointing out to their peaks in the centre of each side of the box. This gives a rough impression of a sphere of light and helps performance. &lt;br /&gt;
* {{key|CTRL}}+{{key|TAB}} to get a side view and LMB drag &#039;&#039;right in the centre of the light&#039;&#039; to move it up/down to centre it in the room if it is not already. Just dragging inside the radius box won&#039;t move it - you have to point at the centre.&lt;br /&gt;
&lt;br /&gt;
== Resizing a Light ==&lt;br /&gt;
&lt;br /&gt;
Resizing a light is awkward because dragging any side moves the centre (this might be changed in a later Dark Radiant.) Two ways of dealing with this. Just roughly drag it about and keep moving the light back to where you want it. But if you have very precisely positioned a light then you don&#039;t want to have to keep doing that so this is what I do...&lt;br /&gt;
&lt;br /&gt;
* Select the Entity Inspector on the panel&lt;br /&gt;
* You should see it has a light radius property with three values for XYZ for the three dimensions. They are north and south for Y, east and west for X, and up and down for Z. (those are the compass directions in game by the way.)&lt;br /&gt;
* Click on the light radius property to highlight it.&lt;br /&gt;
* Note that its values appear in a choice of inputs at the bottom - You can type new values in a line with a space in between then click the check(tick) button or enter them as separate values or even use the little scrolly buttons at the side and then click the Apply button.&lt;br /&gt;
* The room interior is 192 x 256 x 128 (in XYZ order) so give the light radius the values 200 260 133 so it protrudes outside the walls (we&#039;re setting radius - so the light diameter will be twice that size). We may well change this again later if we want the light to spill out through a doorway or something.&lt;br /&gt;
* You can now toggle light rendering in the preview using {{Key|F3}} (or an icon in the preview toolbar) to see how the light affects the walls.&lt;br /&gt;
&lt;br /&gt;
The light radius is not just a cut-off point. It can be regarded as a &#039;fade to zero point&#039;. What this means is that the light is at maximum brightness at its centre and fades to zero at the limit of the radius. So in a big open area, if you extend the radius you will &#039;stretch the brightness&#039; further. Imagine the scale from max to min compacted in a small radius or expanded in a large one. More on this later when we place wall torches.&lt;br /&gt;
&lt;br /&gt;
== Changing a Light&#039;s Brightness ==&lt;br /&gt;
&lt;br /&gt;
The light may be a little bright. To change it...&lt;br /&gt;
&lt;br /&gt;
* Press L (or View menu)* to call up the Light Inspector&lt;br /&gt;
* Click on the white rectangle button just below where it says &#039;Colour&#039;&lt;br /&gt;
* The brightness value is called &#039;Lum:&#039; (luminosity) and should default to 100. Reduce it to 90, by overtyping it or using the slider to the far right. It might not matter. I&#039;m just showing you where the control is for now.&lt;br /&gt;
* Fool around with the colours if you want - there are extensive features I won&#039;t cover here.&lt;br /&gt;
&lt;br /&gt;
Hey! We should have your first working mission! Do a {{key|CTRL}}+{{key|S}} to save it and then follow the next sections in Dark Mod itself not in Dark Radiant.....&lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
&lt;br /&gt;
There is no need to do anything special about &#039;&#039;hearing&#039;&#039; sounds such as footsteps, collision sounds, etc. at this stage as it will work automatically. Adding custom sounds will be dealt with later.&lt;br /&gt;
&lt;br /&gt;
== Pathfinding ==&lt;br /&gt;
&lt;br /&gt;
Pathfinding data to tell the AI characters where they can move is created by dmap by default when compiling in the next section...&lt;br /&gt;
&lt;br /&gt;
== Dmap: Compiling the Mission ==&lt;br /&gt;
* Your mission file cannot be played itself; it is simply the directions to create a game file. To do this...&lt;br /&gt;
* Start up The Dark Mod. From any Dark Mod menu go to the console. By default, the console is {{key|CTRL}}+{{key|ALT}}+{{key|~}} (US Keyboards) or {{key|CTRL}}+{{key|ALT}}+{{key|&#039;}} (UK Keyboards). This key is the top left below Esc and to the left of &amp;quot;1&amp;quot; on all keyboards I believe.  But most people set up a shortcut to just use the ~ (` in UK) on its own so:&lt;br /&gt;
&lt;br /&gt;
 For single key click to get the console:&lt;br /&gt;
 In your desktop shortcut to TheDarkMod.exe add this argument to its properties (right click shortcut): &#039;&#039;&#039;&#039;&#039;+set com_allowConsole 1&#039;&#039;&#039;&#039;&#039; so the target line would be something like:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;C:\Darkmod\TheDarkMod.exe +set com_allowConsole 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 (plus any other arguments you might want)&lt;br /&gt;
* In the console type and Enter dmap Tut/T001 where you should substitute your subfolder name for Tut and your mission filename for T001. So, if you created your mission file directly in the maps folder then you do not need a folder name and can put dmap T001. If you made a subfolder in maps called MyMaps and named your mission MissionImpossible999.map then enter dmap MyMaps/MissionImpossible999. I recommend you do not use upper case in filenames in Doom as I think it can cause problems on other platforms.&lt;br /&gt;
* Wait while dmap compiles the mission. This should only be a few seconds with this tiny mission but will be much longer for big missions.&lt;br /&gt;
* If you get a &#039;leaked&#039; error or some other serious red warning then recheck your work; look for gaps in the wall or a wrong texture like nodraw or have you got an entity outside in the void? See [[Performance: Essential Must-Knows#How to detect and fix leaks|HERE]] for more about fixing leaks but at this stage of this tutorial it might be easier just to redo. What I have laboured over is basically make a block, texture it, hollow it, stick in a player start and a light. As you get more proficient you can do it in less than a minute.&lt;br /&gt;
* Assuming there were no dmap red &amp;quot;ERROR&amp;quot;s then you should be returned to the Dark Mod menus and are now able to play the mission.&lt;br /&gt;
* Return to the console.&lt;br /&gt;
* Type and Enter map Tut/T001. Tip: Press the up arrow key toggles back through the history of what you have typed before so your dmap should re-appear. Just press the Home key and delete the &#039;d&#039;. An alternative is to use &#039;testmap&#039; instead of dmap which does both dmap and map but I prefer to see dmap&#039;s results.&lt;br /&gt;
* You should now be able to walk around in the room. If you have a player shadow set then you might notice that walking through that light looks odd so keep that in mind for light placement. But most lights you will place close to a visible source like a gaslight or wall torch.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the first part done!&lt;br /&gt;
&lt;br /&gt;
{{A-Z Beginner Guide TOC}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Mapping Tutorials]]&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19806</id>
		<title>Stim/Response Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19806"/>
		<updated>2018-03-06T01:20:33Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* Stims */ subject caps consistency /sp.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Stim / Response Editor =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Stim/Response Editor was introduced to save typing each arg for every stim and response on the page, [[Stim/Response Key/Values]] that also contains more specific descriptions as to what each Stim/Response [[Glossary#Spawnarg|arg]] does. &lt;br /&gt;
&lt;br /&gt;
For more general reading on stims and responses, please see also the pages [[Stim/Response]] and [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
= Stims =&lt;br /&gt;
&lt;br /&gt;
To add a Stim or Response to an entity, open the Stim/Response editor:&lt;br /&gt;
Select the entity and - from the menu bar - go to Entity &amp;gt; Stim/Response.&lt;br /&gt;
The Stim/Response Editor has three tabs: Stims, Responses and Custom Stims.&lt;br /&gt;
As stated on the [[Stim/Response]] page, an entity can have either or both Stims and Responses, but is not able to create a Response through a Stim fired on itself.&lt;br /&gt;
&lt;br /&gt;
To add a non-custom Stim, select the &amp;quot;Stims&amp;quot; tab.&lt;br /&gt;
From here, it is possible to add a Stim from the drop-down menu next to the &amp;quot;Add&amp;quot; button, clicking the Add button and choosing a stim from the &amp;quot;Type&amp;quot; drop-down menu at the top (&amp;quot;Frob&amp;quot; being the default) or using a keyboard shortcut by pressing the initial letter of the Stim type you&#039;d like to add.&lt;br /&gt;
&lt;br /&gt;
Select the Stim to edit from the numbered list on the left.&lt;br /&gt;
If no Stim type is selected, all options presented on the right are greyed out.&lt;br /&gt;
The options on the right side of the editor allow changes to all key values of the Stim, removing the need to type and enter manually all key values as listed and described in [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
= Responses =&lt;br /&gt;
&lt;br /&gt;
The Response Editor is a simplified way to create basic scripts without need for deeper knowledge in scripting for TDM.&lt;br /&gt;
It works similar to the Stim Editor, but for adding Stims that will act as entity Responses.&lt;br /&gt;
In the Responses tab, the Stim to which the selected entity should respond is selected in the same way as the Stims tab.&lt;br /&gt;
&lt;br /&gt;
However, this only tells the entity that it must show a Response to a certain Stim type. For a Response to happen, there must be an effect.&amp;lt;br&amp;gt;&lt;br /&gt;
To add an effect, right-click in the &amp;quot;Response Effects&amp;quot; window and press, &amp;quot;Add new Effect&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Double-clicking the numbered Response (or right-clicking it and choosing &amp;quot;Edit&amp;quot;) will open the &amp;quot;Edit Response Effect&amp;quot; box, in which it is possible to select the target entity, type of Stim (as args) and the Response effect itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Available effects ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Activate Response:&#039;&#039;&#039; Activates the Response for the stated Stim Type on the stated Entity.&lt;br /&gt;
** E.g. the player must give a fire stim to a furnace in order to have a door react to a frob Stim.&lt;br /&gt;
* &#039;&#039;&#039;Activate Shooter:&#039;&#039;&#039; Activates the named Shooter entity.&lt;br /&gt;
** E.g. Can be used to activate a trap.&lt;br /&gt;
* &#039;&#039;&#039;Activate Stim:&#039;&#039;&#039; Activates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
** E.g. Adds a damage stim to the furnace after a fire stim is given.&lt;br /&gt;
* &#039;&#039;&#039;Add Target: &#039;&#039;&#039; Adds the stated Target to the named Entity.&lt;br /&gt;
** E.g.  Add a new path_corner to a patrol route.&lt;br /&gt;
* &#039;&#039;&#039;Apply Stim:&#039;&#039;&#039; Fires a Stim of the stated Stim Type to the named Target.&lt;br /&gt;
** The Source can be changed, but is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Blind AI:&#039;&#039;&#039; Blinds the named AI as if a flash bomb has been used on it.&lt;br /&gt;
* &#039;&#039;&#039;Clear Targets:&#039;&#039;&#039; Removes all Target-args from the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Damage:&#039;&#039;&#039; Applies a damage type to the stated Target.&lt;br /&gt;
** Damage Defs can be found in the def file &amp;quot;darkmod/tdm_defs01.pk4/defs/tdm_damage.def&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Response:&#039;&#039;&#039; Deactivates the Response for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Shooter:&#039;&#039;&#039; Deactivates the stated Shooter.&lt;br /&gt;
** E.g. Can be used to disarm a trap.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Stim:&#039;&#039;&#039; Deactivates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Disable Effect:&#039;&#039;&#039; Disables only one Effect on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response number 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Enable Effect:&#039;&#039;&#039; Enables only one Effect on the stated Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is enabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Fade Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color over a time of Fade Time seconds.&lt;br /&gt;
* &#039;&#039;&#039;Frob:&#039;&#039;&#039; Frobs the named Entity as if it had been frobbed by the player.&lt;br /&gt;
* &#039;&#039;&#039;Gas Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with a gas arrow.&lt;br /&gt;
* &#039;&#039;&#039;Heal:&#039;&#039;&#039; Heals the named Target by the stated Amount.&lt;br /&gt;
* &#039;&#039;&#039;Kill:&#039;&#039;&#039; Kills the named Target.&lt;br /&gt;
* &#039;&#039;&#039;Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with the blackjack.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light Off:&#039;&#039;&#039; Extinguishes the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light On:&#039;&#039;&#039; (Re)ignites the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light Off:&#039;&#039;&#039; Turns off the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light On:&#039;&#039;&#039; Turns on the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Move To Position:&#039;&#039;&#039; Moves the named Entity to the stated Position (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is ticked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Move To Random Position:&#039;&#039;&#039; Moves the named Entity to a random position inside the &amp;quot;Within Radius&amp;quot; range.&lt;br /&gt;
* &#039;&#039;&#039;Play Animation:&#039;&#039;&#039; Plays the stated Animation for the stated Entity.&lt;br /&gt;
** The Animation can be limited to only one channel (such as only the head or similar), but is best left this blank, unless sure of intent.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound:&#039;&#039;&#039; Play the named entity&#039;s stated Sound.&lt;br /&gt;
** The channel can be limited (e.g. to the player voice or ambient), but this can also be left blank.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound Shader:&#039;&#039;&#039; Plays the named Sound Shader on the stated channel (as before the channel does not need not be defined). This is not limited to inherited sounds of the entity.&lt;br /&gt;
* &#039;&#039;&#039;Remove:&#039;&#039;&#039; Removes the named Target from the map.&lt;br /&gt;
* &#039;&#039;&#039;Run Script:&#039;&#039;&#039; Runs the named Script. For more information on scripts refer to [[Scripting basics]].&lt;br /&gt;
* &#039;&#039;&#039;Set AI Team:&#039;&#039;&#039; Change the named AI&#039;s team to the stated Team.&lt;br /&gt;
** For a list of which AI belongs to which team by default, refer to [[AI_Relations_(Editing)#AI_Types_.28Teams.29|AI Relations]]&lt;br /&gt;
* &#039;&#039;&#039;Set Angles:&#039;&#039;&#039; Set the named Target&#039;s rotation to the stated Angles (in pitch/yaw/roll).&lt;br /&gt;
** As with Move To Position, this is also possible relative to the entity&#039;s current angles.&lt;br /&gt;
* &#039;&#039;&#039;Set Frobable:&#039;&#039;&#039; Sets the named Entity as frobable (box checked) or unfrobable (box unchecked).&lt;br /&gt;
* &#039;&#039;&#039;Set Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color.&lt;br /&gt;
** In contrast to &amp;quot;Fade to Color&amp;quot;, this happens without any transition.&lt;br /&gt;
* &#039;&#039;&#039;Set Model:&#039;&#039;&#039; Changes the current model of the named Target to the stated Model.&lt;br /&gt;
** E.g. Can be used to change a model to a broken model after recieving damage.&lt;br /&gt;
* &#039;&#039;&#039;Set Skin:&#039;&#039;&#039; Changes the current skin of the stated Target to the stated Skin.&lt;br /&gt;
* &#039;&#039;&#039;Set Spawnarg:&#039;&#039;&#039; Changes the value of a Key (Spawnarg) on the stated Target to a stated Value.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Entity:&#039;&#039;&#039; Creates an [[entity]] of the stated Entity Class at a given location Origin (X Y Z). E.g. can be used to create new loot through an event.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Particle:&#039;&#039;&#039; Creates an emitter that will emit the named [[Particles|particle]] (including its .prt extension) at the location Origin (X Y Z) that stay there for stated Lifetime seconds. If no Lifetime is given it stays infinitely.&lt;br /&gt;
* &#039;&#039;&#039;Start Stim Timer:&#039;&#039;&#039; Starts the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Stop Stim Timer:&#039;&#039;&#039; Stops the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Teleport (Set Origin):&#039;&#039;&#039; Moves the named Entity to the stated location&#039;s New Origin (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is checked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Effect:&#039;&#039;&#039; Disables the stated Effect if enabled or enables the stated Effect if disabled on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Light:&#039;&#039;&#039; Turns off the named Light if on or turns on the named Light if off.&lt;br /&gt;
* &#039;&#039;&#039;Trigger:&#039;&#039;&#039; Activates the named Target Trigger entity as if activated by the stated Activator. (If I remember correctly, this does not count as a trigger Stim. For this you would have to target a trigger entity, that then targets the entity you wish to receive the trigger Stim).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Response list gives a variety of options that allows for many effects without the need to write scripts.&lt;br /&gt;
&lt;br /&gt;
It is possible to add several effects with one response type by checking the box, &amp;quot;Random Effects&amp;quot; and entering the number of random effects to be used.&lt;br /&gt;
Note that each effect can be used multiple times. E.g. Selecting only one effect and setting &amp;quot;Random Effects: 3&amp;quot; will use the same effect three times.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Arrow Trap ==&lt;br /&gt;
&lt;br /&gt;
First, create an &amp;quot;atdm:func_shooter&amp;quot; entity and position it so that the arrow points in the desired direction to shoot.&lt;br /&gt;
&#039;&#039;Note that this entity does not have a model. If a model is required, the shooter can be placed in front of the approriate model&#039;&#039;.&lt;br /&gt;
Define the projectile to be fired (the default is a fire arrow) and check the pitch for the projectile&#039;s trajectory.&lt;br /&gt;
&lt;br /&gt;
Next, it is necessary to create an activator, that can be achieved with the Stim/Response Editor as follows:&lt;br /&gt;
* Create a brush, giving it a NoDraw texture and convert it to a [[Glossary#func_static|func_static]].&lt;br /&gt;
* Place this func_static entity, where the shooter is to be activated (note that the radius of the Player Stim is 350 with a Falloff Exponent of 3 around the player. This results in an effective radius of around 100 [[Limits,_Max,_Min,_Stats,_etc#Conversion_of_game units|units]]).&lt;br /&gt;
* Open the Stim/Response Editor.&lt;br /&gt;
* Add a Response &amp;quot;Player&amp;quot; to the NoDraw func_static entity.&lt;br /&gt;
* To that Response, add the Effect &amp;quot;Activate Shooter&amp;quot; with the name of the shooter as &amp;quot;Shooter Entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now the shooter will start firing as soon as the player comes within 100 units of the NoDraw func_static entity.&lt;br /&gt;
&lt;br /&gt;
There are three options:&lt;br /&gt;
&lt;br /&gt;
* If the the setup is left as it is, the shooter will continuously fire.&lt;br /&gt;
* If the shooter is given an ammo value that is not -1, the shooter will stop firing some time, depending on if the ammo is depleted, after the player moves away from the NoDraw func_static entity.&lt;br /&gt;
* If the shooter is to fire only once, it is necessary to add the Effect, &amp;quot;Disable Effect&amp;quot; and target the first effect that activates the shooter or give an ammo value of 1.&lt;br /&gt;
&lt;br /&gt;
It may also possible for the player to disarm the trap:&lt;br /&gt;
&lt;br /&gt;
* Create a response on another entity that the player will use to do to disarm the trap.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E.g. Frob, if the player is to push a button or use a switch or lever, or a Water response if the player is to shoot a water arrow on a circuit board or a furnace. The possibilities are endless.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Add the same &amp;quot;Disable Effect&amp;quot; effect as before.&lt;br /&gt;
* It is also possible to use the Effect, &amp;quot;Remove shooter&amp;quot;. But if this is used, the shooter will not be reactivated (E.g. if the player re-arms the trap, as above).&lt;br /&gt;
&#039;&#039;Note that using this setup, where the Response is &amp;quot;Player&amp;quot;, the trap will exclusively react to the player and not to any AI.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Change Patrol ==&lt;br /&gt;
&lt;br /&gt;
An AI&#039;s behaviour, such as its [[AI_Patrol|patrol route]], may be altered through a response.&lt;br /&gt;
E.g. If the player has taken a specific loot item.&lt;br /&gt;
&lt;br /&gt;
* Give the loot item a Response &amp;quot;Frob&amp;quot;.&lt;br /&gt;
* Add the effect &amp;quot;Add Target&amp;quot;.&lt;br /&gt;
* As the &amp;quot;Entity&amp;quot; do not use the AI, but the path_corner from which the AI is to leave its original path to enter the new one.&lt;br /&gt;
* As &amp;quot;Target&amp;quot; put in the first path_corner of the new path.&lt;br /&gt;
&lt;br /&gt;
If the new path circles back to the original path, the path will fork at this point:&lt;br /&gt;
if the new path does not target any path_corner of the original path, the AI will remain patrolling the new path.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19805</id>
		<title>Stim/Response Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19805"/>
		<updated>2018-03-06T01:17:10Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* Responses */ &amp;lt;br&amp;gt; / gram.syntx.&amp;#039;C&amp;#039;onsist.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Stim / Response Editor =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Stim/Response Editor was introduced to save typing each arg for every stim and response on the page, [[Stim/Response Key/Values]] that also contains more specific descriptions as to what each Stim/Response [[Glossary#Spawnarg|arg]] does. &lt;br /&gt;
&lt;br /&gt;
For more general reading on stims and responses, please see also the pages [[Stim/Response]] and [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
= Stims =&lt;br /&gt;
&lt;br /&gt;
To add a stim or response to an entity, open the Stim/Response editor:&lt;br /&gt;
Select the entity and - from the menu bar - go to Entity &amp;gt; Stim/Response.&lt;br /&gt;
The Stim/Response Editor has three tabs: Stims, Responses and Custom Stims.&lt;br /&gt;
As stated on the [[Stim/Response]] page, an entity can have either or both Stims and Responses, but is not able to crate a Response through a Stim fired on itself.&lt;br /&gt;
&lt;br /&gt;
To add a non-custom Stim, select the &amp;quot;Stims&amp;quot; tab.&lt;br /&gt;
From here, it is possible to add a Stim from the drop-down menu next to the &amp;quot;Add&amp;quot; button, clicking the Add button and choosing a stim from the &amp;quot;Type&amp;quot; drop-down menu at the top (&amp;quot;Frob&amp;quot; being the default) or using a keyboard shortcut by pressing the initial letter of the Stim type you&#039;d like to add.&lt;br /&gt;
&lt;br /&gt;
Select the Stim to edit from the numbered list on the left.&lt;br /&gt;
If no Stim type is selected, all options presented on the right are greyed out.&lt;br /&gt;
The options on the right side of the editor allow changes to all key values of the Stim, removing the need to type and enter manually all key values as listed and described in [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Responses =&lt;br /&gt;
&lt;br /&gt;
The Response Editor is a simplified way to create basic scripts without need for deeper knowledge in scripting for TDM.&lt;br /&gt;
It works similar to the Stim Editor, but for adding Stims that will act as entity Responses.&lt;br /&gt;
In the Responses tab, the Stim to which the selected entity should respond is selected in the same way as the Stims tab.&lt;br /&gt;
&lt;br /&gt;
However, this only tells the entity that it must show a Response to a certain Stim type. For a Response to happen, there must be an effect.&amp;lt;br&amp;gt;&lt;br /&gt;
To add an effect, right-click in the &amp;quot;Response Effects&amp;quot; window and press, &amp;quot;Add new Effect&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Double-clicking the numbered Response (or right-clicking it and choosing &amp;quot;Edit&amp;quot;) will open the &amp;quot;Edit Response Effect&amp;quot; box, in which it is possible to select the target entity, type of Stim (as args) and the Response effect itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Available effects ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Activate Response:&#039;&#039;&#039; Activates the Response for the stated Stim Type on the stated Entity.&lt;br /&gt;
** E.g. the player must give a fire stim to a furnace in order to have a door react to a frob Stim.&lt;br /&gt;
* &#039;&#039;&#039;Activate Shooter:&#039;&#039;&#039; Activates the named Shooter entity.&lt;br /&gt;
** E.g. Can be used to activate a trap.&lt;br /&gt;
* &#039;&#039;&#039;Activate Stim:&#039;&#039;&#039; Activates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
** E.g. Adds a damage stim to the furnace after a fire stim is given.&lt;br /&gt;
* &#039;&#039;&#039;Add Target: &#039;&#039;&#039; Adds the stated Target to the named Entity.&lt;br /&gt;
** E.g.  Add a new path_corner to a patrol route.&lt;br /&gt;
* &#039;&#039;&#039;Apply Stim:&#039;&#039;&#039; Fires a Stim of the stated Stim Type to the named Target.&lt;br /&gt;
** The Source can be changed, but is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Blind AI:&#039;&#039;&#039; Blinds the named AI as if a flash bomb has been used on it.&lt;br /&gt;
* &#039;&#039;&#039;Clear Targets:&#039;&#039;&#039; Removes all Target-args from the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Damage:&#039;&#039;&#039; Applies a damage type to the stated Target.&lt;br /&gt;
** Damage Defs can be found in the def file &amp;quot;darkmod/tdm_defs01.pk4/defs/tdm_damage.def&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Response:&#039;&#039;&#039; Deactivates the Response for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Shooter:&#039;&#039;&#039; Deactivates the stated Shooter.&lt;br /&gt;
** E.g. Can be used to disarm a trap.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Stim:&#039;&#039;&#039; Deactivates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Disable Effect:&#039;&#039;&#039; Disables only one Effect on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response number 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Enable Effect:&#039;&#039;&#039; Enables only one Effect on the stated Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is enabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Fade Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color over a time of Fade Time seconds.&lt;br /&gt;
* &#039;&#039;&#039;Frob:&#039;&#039;&#039; Frobs the named Entity as if it had been frobbed by the player.&lt;br /&gt;
* &#039;&#039;&#039;Gas Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with a gas arrow.&lt;br /&gt;
* &#039;&#039;&#039;Heal:&#039;&#039;&#039; Heals the named Target by the stated Amount.&lt;br /&gt;
* &#039;&#039;&#039;Kill:&#039;&#039;&#039; Kills the named Target.&lt;br /&gt;
* &#039;&#039;&#039;Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with the blackjack.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light Off:&#039;&#039;&#039; Extinguishes the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light On:&#039;&#039;&#039; (Re)ignites the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light Off:&#039;&#039;&#039; Turns off the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light On:&#039;&#039;&#039; Turns on the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Move To Position:&#039;&#039;&#039; Moves the named Entity to the stated Position (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is ticked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Move To Random Position:&#039;&#039;&#039; Moves the named Entity to a random position inside the &amp;quot;Within Radius&amp;quot; range.&lt;br /&gt;
* &#039;&#039;&#039;Play Animation:&#039;&#039;&#039; Plays the stated Animation for the stated Entity.&lt;br /&gt;
** The Animation can be limited to only one channel (such as only the head or similar), but is best left this blank, unless sure of intent.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound:&#039;&#039;&#039; Play the named entity&#039;s stated Sound.&lt;br /&gt;
** The channel can be limited (e.g. to the player voice or ambient), but this can also be left blank.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound Shader:&#039;&#039;&#039; Plays the named Sound Shader on the stated channel (as before the channel does not need not be defined). This is not limited to inherited sounds of the entity.&lt;br /&gt;
* &#039;&#039;&#039;Remove:&#039;&#039;&#039; Removes the named Target from the map.&lt;br /&gt;
* &#039;&#039;&#039;Run Script:&#039;&#039;&#039; Runs the named Script. For more information on scripts refer to [[Scripting basics]].&lt;br /&gt;
* &#039;&#039;&#039;Set AI Team:&#039;&#039;&#039; Change the named AI&#039;s team to the stated Team.&lt;br /&gt;
** For a list of which AI belongs to which team by default, refer to [[AI_Relations_(Editing)#AI_Types_.28Teams.29|AI Relations]]&lt;br /&gt;
* &#039;&#039;&#039;Set Angles:&#039;&#039;&#039; Set the named Target&#039;s rotation to the stated Angles (in pitch/yaw/roll).&lt;br /&gt;
** As with Move To Position, this is also possible relative to the entity&#039;s current angles.&lt;br /&gt;
* &#039;&#039;&#039;Set Frobable:&#039;&#039;&#039; Sets the named Entity as frobable (box checked) or unfrobable (box unchecked).&lt;br /&gt;
* &#039;&#039;&#039;Set Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color.&lt;br /&gt;
** In contrast to &amp;quot;Fade to Color&amp;quot;, this happens without any transition.&lt;br /&gt;
* &#039;&#039;&#039;Set Model:&#039;&#039;&#039; Changes the current model of the named Target to the stated Model.&lt;br /&gt;
** E.g. Can be used to change a model to a broken model after recieving damage.&lt;br /&gt;
* &#039;&#039;&#039;Set Skin:&#039;&#039;&#039; Changes the current skin of the stated Target to the stated Skin.&lt;br /&gt;
* &#039;&#039;&#039;Set Spawnarg:&#039;&#039;&#039; Changes the value of a Key (Spawnarg) on the stated Target to a stated Value.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Entity:&#039;&#039;&#039; Creates an [[entity]] of the stated Entity Class at a given location Origin (X Y Z). E.g. can be used to create new loot through an event.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Particle:&#039;&#039;&#039; Creates an emitter that will emit the named [[Particles|particle]] (including its .prt extension) at the location Origin (X Y Z) that stay there for stated Lifetime seconds. If no Lifetime is given it stays infinitely.&lt;br /&gt;
* &#039;&#039;&#039;Start Stim Timer:&#039;&#039;&#039; Starts the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Stop Stim Timer:&#039;&#039;&#039; Stops the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Teleport (Set Origin):&#039;&#039;&#039; Moves the named Entity to the stated location&#039;s New Origin (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is checked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Effect:&#039;&#039;&#039; Disables the stated Effect if enabled or enables the stated Effect if disabled on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Light:&#039;&#039;&#039; Turns off the named Light if on or turns on the named Light if off.&lt;br /&gt;
* &#039;&#039;&#039;Trigger:&#039;&#039;&#039; Activates the named Target Trigger entity as if activated by the stated Activator. (If I remember correctly, this does not count as a trigger Stim. For this you would have to target a trigger entity, that then targets the entity you wish to receive the trigger Stim).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Response list gives a variety of options that allows for many effects without the need to write scripts.&lt;br /&gt;
&lt;br /&gt;
It is possible to add several effects with one response type by checking the box, &amp;quot;Random Effects&amp;quot; and entering the number of random effects to be used.&lt;br /&gt;
Note that each effect can be used multiple times. E.g. Selecting only one effect and setting &amp;quot;Random Effects: 3&amp;quot; will use the same effect three times.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Arrow Trap ==&lt;br /&gt;
&lt;br /&gt;
First, create an &amp;quot;atdm:func_shooter&amp;quot; entity and position it so that the arrow points in the desired direction to shoot.&lt;br /&gt;
&#039;&#039;Note that this entity does not have a model. If a model is required, the shooter can be placed in front of the approriate model&#039;&#039;.&lt;br /&gt;
Define the projectile to be fired (the default is a fire arrow) and check the pitch for the projectile&#039;s trajectory.&lt;br /&gt;
&lt;br /&gt;
Next, it is necessary to create an activator, that can be achieved with the Stim/Response Editor as follows:&lt;br /&gt;
* Create a brush, giving it a NoDraw texture and convert it to a [[Glossary#func_static|func_static]].&lt;br /&gt;
* Place this func_static entity, where the shooter is to be activated (note that the radius of the Player Stim is 350 with a Falloff Exponent of 3 around the player. This results in an effective radius of around 100 [[Limits,_Max,_Min,_Stats,_etc#Conversion_of_game units|units]]).&lt;br /&gt;
* Open the Stim/Response Editor.&lt;br /&gt;
* Add a Response &amp;quot;Player&amp;quot; to the NoDraw func_static entity.&lt;br /&gt;
* To that Response, add the Effect &amp;quot;Activate Shooter&amp;quot; with the name of the shooter as &amp;quot;Shooter Entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now the shooter will start firing as soon as the player comes within 100 units of the NoDraw func_static entity.&lt;br /&gt;
&lt;br /&gt;
There are three options:&lt;br /&gt;
&lt;br /&gt;
* If the the setup is left as it is, the shooter will continuously fire.&lt;br /&gt;
* If the shooter is given an ammo value that is not -1, the shooter will stop firing some time, depending on if the ammo is depleted, after the player moves away from the NoDraw func_static entity.&lt;br /&gt;
* If the shooter is to fire only once, it is necessary to add the Effect, &amp;quot;Disable Effect&amp;quot; and target the first effect that activates the shooter or give an ammo value of 1.&lt;br /&gt;
&lt;br /&gt;
It may also possible for the player to disarm the trap:&lt;br /&gt;
&lt;br /&gt;
* Create a response on another entity that the player will use to do to disarm the trap.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E.g. Frob, if the player is to push a button or use a switch or lever, or a Water response if the player is to shoot a water arrow on a circuit board or a furnace. The possibilities are endless.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Add the same &amp;quot;Disable Effect&amp;quot; effect as before.&lt;br /&gt;
* It is also possible to use the Effect, &amp;quot;Remove shooter&amp;quot;. But if this is used, the shooter will not be reactivated (E.g. if the player re-arms the trap, as above).&lt;br /&gt;
&#039;&#039;Note that using this setup, where the Response is &amp;quot;Player&amp;quot;, the trap will exclusively react to the player and not to any AI.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Change Patrol ==&lt;br /&gt;
&lt;br /&gt;
An AI&#039;s behaviour, such as its [[AI_Patrol|patrol route]], may be altered through a response.&lt;br /&gt;
E.g. If the player has taken a specific loot item.&lt;br /&gt;
&lt;br /&gt;
* Give the loot item a Response &amp;quot;Frob&amp;quot;.&lt;br /&gt;
* Add the effect &amp;quot;Add Target&amp;quot;.&lt;br /&gt;
* As the &amp;quot;Entity&amp;quot; do not use the AI, but the path_corner from which the AI is to leave its original path to enter the new one.&lt;br /&gt;
* As &amp;quot;Target&amp;quot; put in the first path_corner of the new path.&lt;br /&gt;
&lt;br /&gt;
If the new path circles back to the original path, the path will fork at this point:&lt;br /&gt;
if the new path does not target any path_corner of the original path, the AI will remain patrolling the new path.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19804</id>
		<title>Stim/Response Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19804"/>
		<updated>2018-03-06T01:08:00Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* Arrow Trap */ sp.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Stim / Response Editor =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Stim/Response Editor was introduced to save typing each arg for every stim and response on the page, [[Stim/Response Key/Values]] that also contains more specific descriptions as to what each Stim/Response [[Glossary#Spawnarg|arg]] does. &lt;br /&gt;
&lt;br /&gt;
For more general reading on stims and responses, please see also the pages [[Stim/Response]] and [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
= Stims =&lt;br /&gt;
&lt;br /&gt;
To add a stim or response to an entity, open the Stim/Response editor:&lt;br /&gt;
Select the entity and - from the menu bar - go to Entity &amp;gt; Stim/Response.&lt;br /&gt;
The Stim/Response Editor has three tabs: Stims, Responses and Custom Stims.&lt;br /&gt;
As stated on the [[Stim/Response]] page, an entity can have either or both Stims and Responses, but is not able to crate a Response through a Stim fired on itself.&lt;br /&gt;
&lt;br /&gt;
To add a non-custom Stim, select the &amp;quot;Stims&amp;quot; tab.&lt;br /&gt;
From here, it is possible to add a Stim from the drop-down menu next to the &amp;quot;Add&amp;quot; button, clicking the Add button and choosing a stim from the &amp;quot;Type&amp;quot; drop-down menu at the top (&amp;quot;Frob&amp;quot; being the default) or using a keyboard shortcut by pressing the initial letter of the Stim type you&#039;d like to add.&lt;br /&gt;
&lt;br /&gt;
Select the Stim to edit from the numbered list on the left.&lt;br /&gt;
If no Stim type is selected, all options presented on the right are greyed out.&lt;br /&gt;
The options on the right side of the editor allow changes to all key values of the Stim, removing the need to type and enter manually all key values as listed and described in [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Responses =&lt;br /&gt;
&lt;br /&gt;
The Response Editor is a simplified way to create basic scripts without need for deeper knowledge on scripting for TDM.&lt;br /&gt;
It works similar to the Stim Editor, but for adding Stims that will act as entity responses.&lt;br /&gt;
In the Responses tab, the Stim to which the selected entity should respond is selected in the same way as the Stims tab.&lt;br /&gt;
&lt;br /&gt;
However, this only tells the entity that it must show a response to a certain Stim type. For a response to happen, there must be an effect.&lt;br /&gt;
To add an effect, right-click in the &amp;quot;Response Effects&amp;quot; window and press, &amp;quot;Add new Effect&amp;quot;.&lt;br /&gt;
Double-clicking the numbered Response, or right-clicking it and choosing &amp;quot;Edit&amp;quot;, open the &amp;quot;Edit Response Effect&amp;quot; box in which it is possible to select the target entity, type of Stim (as args) and the Response effect itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Available effects ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Activate Response:&#039;&#039;&#039; Activates the Response for the stated Stim Type on the stated Entity.&lt;br /&gt;
** E.g. the player must give a fire stim to a furnace in order to have a door react to a frob Stim.&lt;br /&gt;
* &#039;&#039;&#039;Activate Shooter:&#039;&#039;&#039; Activates the named Shooter entity.&lt;br /&gt;
** E.g. Can be used to activate a trap.&lt;br /&gt;
* &#039;&#039;&#039;Activate Stim:&#039;&#039;&#039; Activates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
** E.g. Adds a damage stim to the furnace after a fire stim is given.&lt;br /&gt;
* &#039;&#039;&#039;Add Target: &#039;&#039;&#039; Adds the stated Target to the named Entity.&lt;br /&gt;
** E.g.  Add a new path_corner to a patrol route.&lt;br /&gt;
* &#039;&#039;&#039;Apply Stim:&#039;&#039;&#039; Fires a Stim of the stated Stim Type to the named Target.&lt;br /&gt;
** The Source can be changed, but is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Blind AI:&#039;&#039;&#039; Blinds the named AI as if a flash bomb has been used on it.&lt;br /&gt;
* &#039;&#039;&#039;Clear Targets:&#039;&#039;&#039; Removes all Target-args from the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Damage:&#039;&#039;&#039; Applies a damage type to the stated Target.&lt;br /&gt;
** Damage Defs can be found in the def file &amp;quot;darkmod/tdm_defs01.pk4/defs/tdm_damage.def&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Response:&#039;&#039;&#039; Deactivates the Response for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Shooter:&#039;&#039;&#039; Deactivates the stated Shooter.&lt;br /&gt;
** E.g. Can be used to disarm a trap.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Stim:&#039;&#039;&#039; Deactivates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Disable Effect:&#039;&#039;&#039; Disables only one Effect on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response number 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Enable Effect:&#039;&#039;&#039; Enables only one Effect on the stated Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is enabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Fade Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color over a time of Fade Time seconds.&lt;br /&gt;
* &#039;&#039;&#039;Frob:&#039;&#039;&#039; Frobs the named Entity as if it had been frobbed by the player.&lt;br /&gt;
* &#039;&#039;&#039;Gas Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with a gas arrow.&lt;br /&gt;
* &#039;&#039;&#039;Heal:&#039;&#039;&#039; Heals the named Target by the stated Amount.&lt;br /&gt;
* &#039;&#039;&#039;Kill:&#039;&#039;&#039; Kills the named Target.&lt;br /&gt;
* &#039;&#039;&#039;Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with the blackjack.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light Off:&#039;&#039;&#039; Extinguishes the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light On:&#039;&#039;&#039; (Re)ignites the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light Off:&#039;&#039;&#039; Turns off the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light On:&#039;&#039;&#039; Turns on the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Move To Position:&#039;&#039;&#039; Moves the named Entity to the stated Position (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is ticked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Move To Random Position:&#039;&#039;&#039; Moves the named Entity to a random position inside the &amp;quot;Within Radius&amp;quot; range.&lt;br /&gt;
* &#039;&#039;&#039;Play Animation:&#039;&#039;&#039; Plays the stated Animation for the stated Entity.&lt;br /&gt;
** The Animation can be limited to only one channel (such as only the head or similar), but is best left this blank, unless sure of intent.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound:&#039;&#039;&#039; Play the named entity&#039;s stated Sound.&lt;br /&gt;
** The channel can be limited (e.g. to the player voice or ambient), but this can also be left blank.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound Shader:&#039;&#039;&#039; Plays the named Sound Shader on the stated channel (as before the channel does not need not be defined). This is not limited to inherited sounds of the entity.&lt;br /&gt;
* &#039;&#039;&#039;Remove:&#039;&#039;&#039; Removes the named Target from the map.&lt;br /&gt;
* &#039;&#039;&#039;Run Script:&#039;&#039;&#039; Runs the named Script. For more information on scripts refer to [[Scripting basics]].&lt;br /&gt;
* &#039;&#039;&#039;Set AI Team:&#039;&#039;&#039; Change the named AI&#039;s team to the stated Team.&lt;br /&gt;
** For a list of which AI belongs to which team by default, refer to [[AI_Relations_(Editing)#AI_Types_.28Teams.29|AI Relations]]&lt;br /&gt;
* &#039;&#039;&#039;Set Angles:&#039;&#039;&#039; Set the named Target&#039;s rotation to the stated Angles (in pitch/yaw/roll).&lt;br /&gt;
** As with Move To Position, this is also possible relative to the entity&#039;s current angles.&lt;br /&gt;
* &#039;&#039;&#039;Set Frobable:&#039;&#039;&#039; Sets the named Entity as frobable (box checked) or unfrobable (box unchecked).&lt;br /&gt;
* &#039;&#039;&#039;Set Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color.&lt;br /&gt;
** In contrast to &amp;quot;Fade to Color&amp;quot;, this happens without any transition.&lt;br /&gt;
* &#039;&#039;&#039;Set Model:&#039;&#039;&#039; Changes the current model of the named Target to the stated Model.&lt;br /&gt;
** E.g. Can be used to change a model to a broken model after recieving damage.&lt;br /&gt;
* &#039;&#039;&#039;Set Skin:&#039;&#039;&#039; Changes the current skin of the stated Target to the stated Skin.&lt;br /&gt;
* &#039;&#039;&#039;Set Spawnarg:&#039;&#039;&#039; Changes the value of a Key (Spawnarg) on the stated Target to a stated Value.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Entity:&#039;&#039;&#039; Creates an [[entity]] of the stated Entity Class at a given location Origin (X Y Z). E.g. can be used to create new loot through an event.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Particle:&#039;&#039;&#039; Creates an emitter that will emit the named [[Particles|particle]] (including its .prt extension) at the location Origin (X Y Z) that stay there for stated Lifetime seconds. If no Lifetime is given it stays infinitely.&lt;br /&gt;
* &#039;&#039;&#039;Start Stim Timer:&#039;&#039;&#039; Starts the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Stop Stim Timer:&#039;&#039;&#039; Stops the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Teleport (Set Origin):&#039;&#039;&#039; Moves the named Entity to the stated location&#039;s New Origin (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is checked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Effect:&#039;&#039;&#039; Disables the stated Effect if enabled or enables the stated Effect if disabled on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Light:&#039;&#039;&#039; Turns off the named Light if on or turns on the named Light if off.&lt;br /&gt;
* &#039;&#039;&#039;Trigger:&#039;&#039;&#039; Activates the named Target Trigger entity as if activated by the stated Activator. (If I remember correctly, this does not count as a trigger Stim. For this you would have to target a trigger entity, that then targets the entity you wish to receive the trigger Stim).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Response list gives a variety of options that allows for many effects without the need to write scripts.&lt;br /&gt;
&lt;br /&gt;
It is possible to add several effects with one response type by checking the box, &amp;quot;Random Effects&amp;quot; and entering the number of random effects to be used.&lt;br /&gt;
Note that each effect can be used multiple times. E.g. Selecting only one effect and setting &amp;quot;Random Effects: 3&amp;quot; will use the same effect three times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Arrow Trap ==&lt;br /&gt;
&lt;br /&gt;
First, create an &amp;quot;atdm:func_shooter&amp;quot; entity and position it so that the arrow points in the desired direction to shoot.&lt;br /&gt;
&#039;&#039;Note that this entity does not have a model. If a model is required, the shooter can be placed in front of the approriate model&#039;&#039;.&lt;br /&gt;
Define the projectile to be fired (the default is a fire arrow) and check the pitch for the projectile&#039;s trajectory.&lt;br /&gt;
&lt;br /&gt;
Next, it is necessary to create an activator, that can be achieved with the Stim/Response Editor as follows:&lt;br /&gt;
* Create a brush, giving it a NoDraw texture and convert it to a [[Glossary#func_static|func_static]].&lt;br /&gt;
* Place this func_static entity, where the shooter is to be activated (note that the radius of the Player Stim is 350 with a Falloff Exponent of 3 around the player. This results in an effective radius of around 100 [[Limits,_Max,_Min,_Stats,_etc#Conversion_of_game units|units]]).&lt;br /&gt;
* Open the Stim/Response Editor.&lt;br /&gt;
* Add a Response &amp;quot;Player&amp;quot; to the NoDraw func_static entity.&lt;br /&gt;
* To that Response, add the Effect &amp;quot;Activate Shooter&amp;quot; with the name of the shooter as &amp;quot;Shooter Entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now the shooter will start firing as soon as the player comes within 100 units of the NoDraw func_static entity.&lt;br /&gt;
&lt;br /&gt;
There are three options:&lt;br /&gt;
&lt;br /&gt;
* If the the setup is left as it is, the shooter will continuously fire.&lt;br /&gt;
* If the shooter is given an ammo value that is not -1, the shooter will stop firing some time, depending on if the ammo is depleted, after the player moves away from the NoDraw func_static entity.&lt;br /&gt;
* If the shooter is to fire only once, it is necessary to add the Effect, &amp;quot;Disable Effect&amp;quot; and target the first effect that activates the shooter or give an ammo value of 1.&lt;br /&gt;
&lt;br /&gt;
It may also possible for the player to disarm the trap:&lt;br /&gt;
&lt;br /&gt;
* Create a response on another entity that the player will use to do to disarm the trap.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E.g. Frob, if the player is to push a button or use a switch or lever, or a Water response if the player is to shoot a water arrow on a circuit board or a furnace. The possibilities are endless.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Add the same &amp;quot;Disable Effect&amp;quot; effect as before.&lt;br /&gt;
* It is also possible to use the Effect, &amp;quot;Remove shooter&amp;quot;. But if this is used, the shooter will not be reactivated (E.g. if the player re-arms the trap, as above).&lt;br /&gt;
&#039;&#039;Note that using this setup, where the Response is &amp;quot;Player&amp;quot;, the trap will exclusively react to the player and not to any AI.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Change Patrol ==&lt;br /&gt;
&lt;br /&gt;
An AI&#039;s behaviour, such as its [[AI_Patrol|patrol route]], may be altered through a response.&lt;br /&gt;
E.g. If the player has taken a specific loot item.&lt;br /&gt;
&lt;br /&gt;
* Give the loot item a Response &amp;quot;Frob&amp;quot;.&lt;br /&gt;
* Add the effect &amp;quot;Add Target&amp;quot;.&lt;br /&gt;
* As the &amp;quot;Entity&amp;quot; do not use the AI, but the path_corner from which the AI is to leave its original path to enter the new one.&lt;br /&gt;
* As &amp;quot;Target&amp;quot; put in the first path_corner of the new path.&lt;br /&gt;
&lt;br /&gt;
If the new path circles back to the original path, the path will fork at this point:&lt;br /&gt;
if the new path does not target any path_corner of the original path, the AI will remain patrolling the new path.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19803</id>
		<title>Stim/Response Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19803"/>
		<updated>2018-03-05T14:50:47Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: / page format / index [header] nesting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Stim / Response Editor =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Stim/Response Editor was introduced to save typing each arg for every stim and response on the page, [[Stim/Response Key/Values]] that also contains more specific descriptions as to what each Stim/Response [[Glossary#Spawnarg|arg]] does. &lt;br /&gt;
&lt;br /&gt;
For more general reading on stims and responses, please see also the pages [[Stim/Response]] and [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
= Stims =&lt;br /&gt;
&lt;br /&gt;
To add a stim or response to an entity, open the Stim/Response editor:&lt;br /&gt;
Select the entity and - from the menu bar - go to Entity &amp;gt; Stim/Response.&lt;br /&gt;
The Stim/Response Editor has three tabs: Stims, Responses and Custom Stims.&lt;br /&gt;
As stated on the [[Stim/Response]] page, an entity can have either or both Stims and Responses, but is not able to crate a Response through a Stim fired on itself.&lt;br /&gt;
&lt;br /&gt;
To add a non-custom Stim, select the &amp;quot;Stims&amp;quot; tab.&lt;br /&gt;
From here, it is possible to add a Stim from the drop-down menu next to the &amp;quot;Add&amp;quot; button, clicking the Add button and choosing a stim from the &amp;quot;Type&amp;quot; drop-down menu at the top (&amp;quot;Frob&amp;quot; being the default) or using a keyboard shortcut by pressing the initial letter of the Stim type you&#039;d like to add.&lt;br /&gt;
&lt;br /&gt;
Select the Stim to edit from the numbered list on the left.&lt;br /&gt;
If no Stim type is selected, all options presented on the right are greyed out.&lt;br /&gt;
The options on the right side of the editor allow changes to all key values of the Stim, removing the need to type and enter manually all key values as listed and described in [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Responses =&lt;br /&gt;
&lt;br /&gt;
The Response Editor is a simplified way to create basic scripts without need for deeper knowledge on scripting for TDM.&lt;br /&gt;
It works similar to the Stim Editor, but for adding Stims that will act as entity responses.&lt;br /&gt;
In the Responses tab, the Stim to which the selected entity should respond is selected in the same way as the Stims tab.&lt;br /&gt;
&lt;br /&gt;
However, this only tells the entity that it must show a response to a certain Stim type. For a response to happen, there must be an effect.&lt;br /&gt;
To add an effect, right-click in the &amp;quot;Response Effects&amp;quot; window and press, &amp;quot;Add new Effect&amp;quot;.&lt;br /&gt;
Double-clicking the numbered Response, or right-clicking it and choosing &amp;quot;Edit&amp;quot;, open the &amp;quot;Edit Response Effect&amp;quot; box in which it is possible to select the target entity, type of Stim (as args) and the Response effect itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Available effects ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Activate Response:&#039;&#039;&#039; Activates the Response for the stated Stim Type on the stated Entity.&lt;br /&gt;
** E.g. the player must give a fire stim to a furnace in order to have a door react to a frob Stim.&lt;br /&gt;
* &#039;&#039;&#039;Activate Shooter:&#039;&#039;&#039; Activates the named Shooter entity.&lt;br /&gt;
** E.g. Can be used to activate a trap.&lt;br /&gt;
* &#039;&#039;&#039;Activate Stim:&#039;&#039;&#039; Activates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
** E.g. Adds a damage stim to the furnace after a fire stim is given.&lt;br /&gt;
* &#039;&#039;&#039;Add Target: &#039;&#039;&#039; Adds the stated Target to the named Entity.&lt;br /&gt;
** E.g.  Add a new path_corner to a patrol route.&lt;br /&gt;
* &#039;&#039;&#039;Apply Stim:&#039;&#039;&#039; Fires a Stim of the stated Stim Type to the named Target.&lt;br /&gt;
** The Source can be changed, but is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Blind AI:&#039;&#039;&#039; Blinds the named AI as if a flash bomb has been used on it.&lt;br /&gt;
* &#039;&#039;&#039;Clear Targets:&#039;&#039;&#039; Removes all Target-args from the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Damage:&#039;&#039;&#039; Applies a damage type to the stated Target.&lt;br /&gt;
** Damage Defs can be found in the def file &amp;quot;darkmod/tdm_defs01.pk4/defs/tdm_damage.def&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Response:&#039;&#039;&#039; Deactivates the Response for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Shooter:&#039;&#039;&#039; Deactivates the stated Shooter.&lt;br /&gt;
** E.g. Can be used to disarm a trap.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Stim:&#039;&#039;&#039; Deactivates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Disable Effect:&#039;&#039;&#039; Disables only one Effect on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response number 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Enable Effect:&#039;&#039;&#039; Enables only one Effect on the stated Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is enabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Fade Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color over a time of Fade Time seconds.&lt;br /&gt;
* &#039;&#039;&#039;Frob:&#039;&#039;&#039; Frobs the named Entity as if it had been frobbed by the player.&lt;br /&gt;
* &#039;&#039;&#039;Gas Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with a gas arrow.&lt;br /&gt;
* &#039;&#039;&#039;Heal:&#039;&#039;&#039; Heals the named Target by the stated Amount.&lt;br /&gt;
* &#039;&#039;&#039;Kill:&#039;&#039;&#039; Kills the named Target.&lt;br /&gt;
* &#039;&#039;&#039;Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with the blackjack.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light Off:&#039;&#039;&#039; Extinguishes the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light On:&#039;&#039;&#039; (Re)ignites the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light Off:&#039;&#039;&#039; Turns off the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light On:&#039;&#039;&#039; Turns on the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Move To Position:&#039;&#039;&#039; Moves the named Entity to the stated Position (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is ticked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Move To Random Position:&#039;&#039;&#039; Moves the named Entity to a random position inside the &amp;quot;Within Radius&amp;quot; range.&lt;br /&gt;
* &#039;&#039;&#039;Play Animation:&#039;&#039;&#039; Plays the stated Animation for the stated Entity.&lt;br /&gt;
** The Animation can be limited to only one channel (such as only the head or similar), but is best left this blank, unless sure of intent.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound:&#039;&#039;&#039; Play the named entity&#039;s stated Sound.&lt;br /&gt;
** The channel can be limited (e.g. to the player voice or ambient), but this can also be left blank.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound Shader:&#039;&#039;&#039; Plays the named Sound Shader on the stated channel (as before the channel does not need not be defined). This is not limited to inherited sounds of the entity.&lt;br /&gt;
* &#039;&#039;&#039;Remove:&#039;&#039;&#039; Removes the named Target from the map.&lt;br /&gt;
* &#039;&#039;&#039;Run Script:&#039;&#039;&#039; Runs the named Script. For more information on scripts refer to [[Scripting basics]].&lt;br /&gt;
* &#039;&#039;&#039;Set AI Team:&#039;&#039;&#039; Change the named AI&#039;s team to the stated Team.&lt;br /&gt;
** For a list of which AI belongs to which team by default, refer to [[AI_Relations_(Editing)#AI_Types_.28Teams.29|AI Relations]]&lt;br /&gt;
* &#039;&#039;&#039;Set Angles:&#039;&#039;&#039; Set the named Target&#039;s rotation to the stated Angles (in pitch/yaw/roll).&lt;br /&gt;
** As with Move To Position, this is also possible relative to the entity&#039;s current angles.&lt;br /&gt;
* &#039;&#039;&#039;Set Frobable:&#039;&#039;&#039; Sets the named Entity as frobable (box checked) or unfrobable (box unchecked).&lt;br /&gt;
* &#039;&#039;&#039;Set Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color.&lt;br /&gt;
** In contrast to &amp;quot;Fade to Color&amp;quot;, this happens without any transition.&lt;br /&gt;
* &#039;&#039;&#039;Set Model:&#039;&#039;&#039; Changes the current model of the named Target to the stated Model.&lt;br /&gt;
** E.g. Can be used to change a model to a broken model after recieving damage.&lt;br /&gt;
* &#039;&#039;&#039;Set Skin:&#039;&#039;&#039; Changes the current skin of the stated Target to the stated Skin.&lt;br /&gt;
* &#039;&#039;&#039;Set Spawnarg:&#039;&#039;&#039; Changes the value of a Key (Spawnarg) on the stated Target to a stated Value.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Entity:&#039;&#039;&#039; Creates an [[entity]] of the stated Entity Class at a given location Origin (X Y Z). E.g. can be used to create new loot through an event.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Particle:&#039;&#039;&#039; Creates an emitter that will emit the named [[Particles|particle]] (including its .prt extension) at the location Origin (X Y Z) that stay there for stated Lifetime seconds. If no Lifetime is given it stays infinitely.&lt;br /&gt;
* &#039;&#039;&#039;Start Stim Timer:&#039;&#039;&#039; Starts the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Stop Stim Timer:&#039;&#039;&#039; Stops the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Teleport (Set Origin):&#039;&#039;&#039; Moves the named Entity to the stated location&#039;s New Origin (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is checked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Effect:&#039;&#039;&#039; Disables the stated Effect if enabled or enables the stated Effect if disabled on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Light:&#039;&#039;&#039; Turns off the named Light if on or turns on the named Light if off.&lt;br /&gt;
* &#039;&#039;&#039;Trigger:&#039;&#039;&#039; Activates the named Target Trigger entity as if activated by the stated Activator. (If I remember correctly, this does not count as a trigger Stim. For this you would have to target a trigger entity, that then targets the entity you wish to receive the trigger Stim).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Response list gives a variety of options that allows for many effects without the need to write scripts.&lt;br /&gt;
&lt;br /&gt;
It is possible to add several effects with one response type by checking the box, &amp;quot;Random Effects&amp;quot; and entering the number of random effects to be used.&lt;br /&gt;
Note that each effect can be used multiple times. E.g. Selecting only one effect and setting &amp;quot;Random Effects: 3&amp;quot; will use the same effect three times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Arrow Trap ==&lt;br /&gt;
&lt;br /&gt;
First, create an &amp;quot;atdm:func_shooter&amp;quot; entity and position it so that the arrow points in the desired direction to shoot.&lt;br /&gt;
&#039;&#039;Note that this entity does not have a model. If a model is required, the shooter can be placed in front of the approriate model&#039;&#039;.&lt;br /&gt;
Define the projectile to be fired (the default is a fire arrow) and check the pitch for the projectile&#039;s trajectory.&lt;br /&gt;
&lt;br /&gt;
Next, it is necessary to create an activator, that can be achieved with the Stim/Response Editor as follows:&lt;br /&gt;
* Create a brush, giving it a NoDraw texture and convert it to a [[Glossary#func_static|func_static]].&lt;br /&gt;
* Place this func_static entity, where the shooter is to be activated (note that the radius of the Player Stim is 350 with a Falloff Exponent of 3 around the player. This results in an effective radius of around 100 [[Limits,_Max,_Min,_Stats,_etc#Conversion_of_game units|units]]).&lt;br /&gt;
* Open the Stim/Response Editor.&lt;br /&gt;
* Add a Response &amp;quot;Player&amp;quot; to the NoDraw func_static entity.&lt;br /&gt;
* To that Response, add the Effect &amp;quot;Activate Shooter&amp;quot; with the name of the shooter as &amp;quot;Shooter Entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now the shooter will start firing as soon as the player comes withing 100 units of the NoDraw func_static entity.&lt;br /&gt;
&lt;br /&gt;
There are three options:&lt;br /&gt;
&lt;br /&gt;
* If the the setup is left as it is, the shooter will continuously fire.&lt;br /&gt;
* If the shooter is given an ammo value that is not -1, the shooter will stop firing some time, depending on if the ammo is depleted, after the player moves away from the NoDraw func_static entity.&lt;br /&gt;
* If the shooter is to fire only once, it is necessary to add the Effect, &amp;quot;Disable Effect&amp;quot; and target the first effect that activates the shooter or give an ammo value of 1.&lt;br /&gt;
&lt;br /&gt;
It may also possible for the player to disarm the trap:&lt;br /&gt;
&lt;br /&gt;
* Create a response on another entity that the player will use to do to disarm the trap.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E.g. Frob, if the player is to push a button or use a switch or lever, or a Water response if the player is to shoot a water arrow on a circuit board or a furnace. The possibilities are endless.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Add the same &amp;quot;Disable Effect&amp;quot; effect as before.&lt;br /&gt;
* It is also possible to use the Effect, &amp;quot;Remove shooter&amp;quot;. But if this is used, the shooter will not be reactivated (E.g. if the player re-arms the trap, as above).&lt;br /&gt;
&#039;&#039;Note that using this setup, where the Response is &amp;quot;Player&amp;quot;, the trap will exclusively react to the player and not to any AI.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Change Patrol ==&lt;br /&gt;
&lt;br /&gt;
An AI&#039;s behaviour, such as its [[AI_Patrol|patrol route]], may be altered through a response.&lt;br /&gt;
E.g. If the player has taken a specific loot item.&lt;br /&gt;
&lt;br /&gt;
* Give the loot item a Response &amp;quot;Frob&amp;quot;.&lt;br /&gt;
* Add the effect &amp;quot;Add Target&amp;quot;.&lt;br /&gt;
* As the &amp;quot;Entity&amp;quot; do not use the AI, but the path_corner from which the AI is to leave its original path to enter the new one.&lt;br /&gt;
* As &amp;quot;Target&amp;quot; put in the first path_corner of the new path.&lt;br /&gt;
&lt;br /&gt;
If the new path circles back to the original path, the path will fork at this point:&lt;br /&gt;
if the new path does not target any path_corner of the original path, the AI will remain patrolling the new path.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19802</id>
		<title>Stim/Response Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&amp;diff=19802"/>
		<updated>2018-03-05T09:53:39Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* = Stim / Response Editor */ rem =&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Stim / Response Editor ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Stim/Response Editor was introduced to save typing each arg for every stim and response on the page, [[Stim/Response Key/Values]] that also contains more specific descriptions as to what each Stim/Response [[Glossary#Spawnarg|arg]] does. &lt;br /&gt;
&lt;br /&gt;
For more general reading on stims and responses, please see also the pages [[Stim/Response]] and [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
== Stims ==&lt;br /&gt;
&lt;br /&gt;
To add a stim or response to an entity, open the Stim/Response editor:&lt;br /&gt;
Select the entity and - from the menu bar - go to Entity &amp;gt; Stim/Response.&lt;br /&gt;
The Stim/Response Editor has three tabs: Stims, Responses and Custom Stims.&lt;br /&gt;
As stated on the [[Stim/Response]] page, an entity can have either or both Stims and Responses, but is not able to crate a Response through a Stim fired on itself.&lt;br /&gt;
&lt;br /&gt;
To add a non-custom Stim, select the &amp;quot;Stims&amp;quot; tab.&lt;br /&gt;
From here, it is possible to add a Stim from the drop-down menu next to the &amp;quot;Add&amp;quot; button, clicking the Add button and choosing a stim from the &amp;quot;Type&amp;quot; drop-down menu at the top (&amp;quot;Frob&amp;quot; being the default) or using a keyboard shortcut by pressing the initial letter of the Stim type you&#039;d like to add.&lt;br /&gt;
&lt;br /&gt;
Select the Stim to edit from the numbered list on the left.&lt;br /&gt;
If no Stim type is selected, all options presented on the right are greyed out.&lt;br /&gt;
The options on the right side of the editor allow changes to all key values of the Stim, removing the need to type and enter manually all key values as listed and described in [[Stim/Response Key/Values]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Responses ==&lt;br /&gt;
&lt;br /&gt;
The Response Editor is a simplified way to create basic scripts without need for deeper knowledge on scripting for TDM.&lt;br /&gt;
It works similar to the Stim Editor, but for adding Stims that will act as entity responses.&lt;br /&gt;
In the Responses tab, the Stim to which the selected entity should respond is selected in the same way as the Stims tab.&lt;br /&gt;
&lt;br /&gt;
However, this only tells the entity that it must show a response to a certain Stim type. For a response to happen, there must be an effect.&lt;br /&gt;
To add an effect, right-click in the &amp;quot;Response Effects&amp;quot; window and press, &amp;quot;Add new Effect&amp;quot;.&lt;br /&gt;
Double-clicking the numbered Response, or right-clicking it and choosing &amp;quot;Edit&amp;quot;, open the &amp;quot;Edit Response Effect&amp;quot; box in which it is possible to select the target entity, type of Stim (as args) and the Response effect itself.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Available effects are: ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Activate Response:&#039;&#039;&#039; Activates the Response for the stated Stim Type on the stated Entity.&lt;br /&gt;
** E.g. the player must give a fire stim to a furnace in order to have a door react to a frob Stim.&lt;br /&gt;
* &#039;&#039;&#039;Activate Shooter:&#039;&#039;&#039; Activates the named Shooter entity.&lt;br /&gt;
** E.g. Can be used to activate a trap.&lt;br /&gt;
* &#039;&#039;&#039;Activate Stim:&#039;&#039;&#039; Activates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
** E.g. Adds a damage stim to the furnace after a fire stim is given.&lt;br /&gt;
* &#039;&#039;&#039;Add Target: &#039;&#039;&#039; Adds the stated Target to the named Entity.&lt;br /&gt;
** E.g.  Add a new path_corner to a patrol route.&lt;br /&gt;
* &#039;&#039;&#039;Apply Stim:&#039;&#039;&#039; Fires a Stim of the stated Stim Type to the named Target.&lt;br /&gt;
** The Source can be changed, but is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Blind AI:&#039;&#039;&#039; Blinds the named AI as if a flash bomb has been used on it.&lt;br /&gt;
* &#039;&#039;&#039;Clear Targets:&#039;&#039;&#039; Removes all Target-args from the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Damage:&#039;&#039;&#039; Applies a damage type to the stated Target.&lt;br /&gt;
** Damage Defs can be found in the def file &amp;quot;darkmod/tdm_defs01.pk4/defs/tdm_damage.def&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Response:&#039;&#039;&#039; Deactivates the Response for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Shooter:&#039;&#039;&#039; Deactivates the stated Shooter.&lt;br /&gt;
** E.g. Can be used to disarm a trap.&lt;br /&gt;
* &#039;&#039;&#039;Deactivate Stim:&#039;&#039;&#039; Deactivates the Stim for the stated Stim Type on the named Entity.&lt;br /&gt;
* &#039;&#039;&#039;Disable Effect:&#039;&#039;&#039; Disables only one Effect on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response number 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Enable Effect:&#039;&#039;&#039; Enables only one Effect on the stated Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is enabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Fade Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color over a time of Fade Time seconds.&lt;br /&gt;
* &#039;&#039;&#039;Frob:&#039;&#039;&#039; Frobs the named Entity as if it had been frobbed by the player.&lt;br /&gt;
* &#039;&#039;&#039;Gas Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with a gas arrow.&lt;br /&gt;
* &#039;&#039;&#039;Heal:&#039;&#039;&#039; Heals the named Target by the stated Amount.&lt;br /&gt;
* &#039;&#039;&#039;Kill:&#039;&#039;&#039; Kills the named Target.&lt;br /&gt;
* &#039;&#039;&#039;Knockout:&#039;&#039;&#039; Knocks out the named Target as if it had been hit with the blackjack.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light Off:&#039;&#039;&#039; Extinguishes the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn extinguishable Light On:&#039;&#039;&#039; (Re)ignites the named extinguishable Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light Off:&#039;&#039;&#039; Turns off the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Turn Light On:&#039;&#039;&#039; Turns on the named Light.&lt;br /&gt;
* &#039;&#039;&#039;Move To Position:&#039;&#039;&#039; Moves the named Entity to the stated Position (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is ticked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Move To Random Position:&#039;&#039;&#039; Moves the named Entity to a random position inside the &amp;quot;Within Radius&amp;quot; range.&lt;br /&gt;
* &#039;&#039;&#039;Play Animation:&#039;&#039;&#039; Plays the stated Animation for the stated Entity.&lt;br /&gt;
** The Animation can be limited to only one channel (such as only the head or similar), but is best left this blank, unless sure of intent.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound:&#039;&#039;&#039; Play the named entity&#039;s stated Sound.&lt;br /&gt;
** The channel can be limited (e.g. to the player voice or ambient), but this can also be left blank.&lt;br /&gt;
* &#039;&#039;&#039;Play Sound Shader:&#039;&#039;&#039; Plays the named Sound Shader on the stated channel (as before the channel does not need not be defined). This is not limited to inherited sounds of the entity.&lt;br /&gt;
* &#039;&#039;&#039;Remove:&#039;&#039;&#039; Removes the named Target from the map.&lt;br /&gt;
* &#039;&#039;&#039;Run Script:&#039;&#039;&#039; Runs the named Script. For more information on scripts refer to [[Scripting basics]].&lt;br /&gt;
* &#039;&#039;&#039;Set AI Team:&#039;&#039;&#039; Change the named AI&#039;s team to the stated Team.&lt;br /&gt;
** For a list of which AI belongs to which team by default, refer to [[AI_Relations_(Editing)#AI_Types_.28Teams.29|AI Relations]]&lt;br /&gt;
* &#039;&#039;&#039;Set Angles:&#039;&#039;&#039; Set the named Target&#039;s rotation to the stated Angles (in pitch/yaw/roll).&lt;br /&gt;
** As with Move To Position, this is also possible relative to the entity&#039;s current angles.&lt;br /&gt;
* &#039;&#039;&#039;Set Frobable:&#039;&#039;&#039; Sets the named Entity as frobable (box checked) or unfrobable (box unchecked).&lt;br /&gt;
* &#039;&#039;&#039;Set Light Color:&#039;&#039;&#039; Changes the colour of the named Target Light to the stated Color.&lt;br /&gt;
** In contrast to &amp;quot;Fade to Color&amp;quot;, this happens without any transition.&lt;br /&gt;
* &#039;&#039;&#039;Set Model:&#039;&#039;&#039; Changes the current model of the named Target to the stated Model.&lt;br /&gt;
** E.g. Can be used to change a model to a broken model after recieving damage.&lt;br /&gt;
* &#039;&#039;&#039;Set Skin:&#039;&#039;&#039; Changes the current skin of the stated Target to the stated Skin.&lt;br /&gt;
* &#039;&#039;&#039;Set Spawnarg:&#039;&#039;&#039; Changes the value of a Key (Spawnarg) on the stated Target to a stated Value.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Entity:&#039;&#039;&#039; Creates an [[entity]] of the stated Entity Class at a given location Origin (X Y Z). E.g. can be used to create new loot through an event.&lt;br /&gt;
* &#039;&#039;&#039;Spawn Particle:&#039;&#039;&#039; Creates an emitter that will emit the named [[Particles|particle]] (including its .prt extension) at the location Origin (X Y Z) that stay there for stated Lifetime seconds. If no Lifetime is given it stays infinitely.&lt;br /&gt;
* &#039;&#039;&#039;Start Stim Timer:&#039;&#039;&#039; Starts the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Stop Stim Timer:&#039;&#039;&#039; Stops the timer of the stated Stim on the named Entity.&lt;br /&gt;
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.&lt;br /&gt;
* &#039;&#039;&#039;Teleport (Set Origin):&#039;&#039;&#039; Moves the named Entity to the stated location&#039;s New Origin (coordinates: X Y Z).&lt;br /&gt;
** If the box &amp;quot;Relative to old origin&amp;quot; is checked, the Entity is moved (X Y Z) units from its current location.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Effect:&#039;&#039;&#039; Disables the stated Effect if enabled or enables the stated Effect if disabled on the named Entity.&lt;br /&gt;
** The Effect is defined by two numbers (e.g. 2_3), meaning that the Effect numbered 3 on the Response numbered 2 is disabled. The respective numbers can be found in the first column of the Response Effects window.&lt;br /&gt;
* &#039;&#039;&#039;Toggle Light:&#039;&#039;&#039; Turns off the named Light if on or turns on the named Light if off.&lt;br /&gt;
* &#039;&#039;&#039;Trigger:&#039;&#039;&#039; Activates the named Target Trigger entity as if activated by the stated Activator. (If I remember correctly, this does not count as a trigger Stim. For this you would have to target a trigger entity, that then targets the entity you wish to receive the trigger Stim).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Response list gives a variety of options that allows for many effects without the need to write scripts.&lt;br /&gt;
&lt;br /&gt;
It is possible to add several effects with one response type by checking the box, &amp;quot;Random Effects&amp;quot; and entering the number of random effects to be used.&lt;br /&gt;
Note that each effect can be used multiple times. E.g. Selecting only one effect and setting &amp;quot;Random Effects: 3&amp;quot; will use the same effect three times.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Examples: ===&lt;br /&gt;
&lt;br /&gt;
== Arrow Trap: ==&lt;br /&gt;
&lt;br /&gt;
First, create an &amp;quot;atdm:func_shooter&amp;quot; entity and position it so that the arrow points in the desired direction to shoot.&lt;br /&gt;
&#039;&#039;Note that this entity does not have a model. If a model is required, the shooter can be placed in front of the approriate model&#039;&#039;.&lt;br /&gt;
Define the projectile to be fired (the default is a fire arrow) and check the pitch for the projectile&#039;s trajectory.&lt;br /&gt;
&lt;br /&gt;
Next, it is necessary to create an activator, that can be achieved with the Stim/Response Editor as follows:&lt;br /&gt;
* Create a brush, giving it a NoDraw texture and convert it to a [[Glossary#func_static|func_static]].&lt;br /&gt;
* Place this func_static entity, where the shooter is to be activated (note that the radius of the Player Stim is 350 with a Falloff Exponent of 3 around the player. This results in an effective radius of around 100 [[Limits,_Max,_Min,_Stats,_etc#Conversion_of_game units|units]]).&lt;br /&gt;
* Open the Stim/Response Editor.&lt;br /&gt;
* Add a Response &amp;quot;Player&amp;quot; to the NoDraw func_static entity.&lt;br /&gt;
* To that Response, add the Effect &amp;quot;Activate Shooter&amp;quot; with the name of the shooter as &amp;quot;Shooter Entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now the shooter will start firing as soon as the player comes withing 100 units of the NoDraw func_static entity.&lt;br /&gt;
&lt;br /&gt;
There are three options:&lt;br /&gt;
&lt;br /&gt;
* If the the setup is left as it is, the shooter will continuously fire.&lt;br /&gt;
* If the shooter is given an ammo value that is not -1, the shooter will stop firing some time, depending on if the ammo is depleted, after the player moves away from the NoDraw func_static entity.&lt;br /&gt;
* If the shooter is to fire only once, it is necessary to add the Effect, &amp;quot;Disable Effect&amp;quot; and target the first effect that activates the shooter or give an ammo value of 1.&lt;br /&gt;
&lt;br /&gt;
It may also possible for the player to disarm the trap:&lt;br /&gt;
&lt;br /&gt;
* Create a response on another entity that the player will use to do to disarm the trap.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E.g. Frob, if the player is to push a button or use a switch or lever, or a Water response if the player is to shoot a water arrow on a circuit board or a furnace. The possibilities are endless.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Add the same &amp;quot;Disable Effect&amp;quot; effect as before.&lt;br /&gt;
* It is also possible to use the Effect, &amp;quot;Remove shooter&amp;quot;. But if this is used, the shooter will not be reactivated (E.g. if the player re-arms the trap, as above).&lt;br /&gt;
&#039;&#039;Note that using this setup, where the Response is &amp;quot;Player&amp;quot;, the trap will exclusively react to the player and not to any AI.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Change Patrol: ==&lt;br /&gt;
An AI&#039;s behaviour, such as its [[AI_Patrol|patrol route]], may be altered through a response.&lt;br /&gt;
E.g. If the player has taken a specific loot item.&lt;br /&gt;
&lt;br /&gt;
* Give the loot item a Response &amp;quot;Frob&amp;quot;.&lt;br /&gt;
* Add the effect &amp;quot;Add Target&amp;quot;.&lt;br /&gt;
* As the &amp;quot;Entity&amp;quot; do not use the AI, but the path_corner from which the AI is to leave its original path to enter the new one.&lt;br /&gt;
* As &amp;quot;Target&amp;quot; put in the first path_corner of the new path.&lt;br /&gt;
&lt;br /&gt;
If the new path circles back to the original path, the path will fork at this point:&lt;br /&gt;
if the new path does not target any path_corner of the original path, the AI will remain patrolling the new path.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19798</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19798"/>
		<updated>2018-02-21T14:40:14Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* script */ $target&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
: .dds font is used for compression only - it is a hack-wrapper for the game to read the .ttf font. As such, it is unclear if it can contain additional maps (normal / specular).&lt;br /&gt;
: Not being a commonly used format for fonts in the game (.dat is preferable in nearly every instance as to be convention), it might be suggested that the .dds .ttf font-wrapper is a remnant of Doom3 that yet lingers.&lt;br /&gt;
: More information on altering existing, adding new or creating custom fonts can be found here: http://forums.thedarkmod.com/topic/19308-how-to-open-and-edit-the-dat-file-safely-and-successfully-purposes-font-editing/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
Officially, similar to C++.&lt;br /&gt;
&lt;br /&gt;
An intro to scripting can be found here: http://wiki.thedarkmod.com/index.php?title=Scripting_basics&lt;br /&gt;
And a reference to all scripts pulled from the game here: http://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
Objects are referenced with $name where &amp;quot;name&amp;quot; is the name of the object/entity. (eg, $player1).&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
:../script/custom_ai.script                                      &lt;br /&gt;
:../script/levelname.script&lt;br /&gt;
:../script/tdm_ai_event.script&lt;br /&gt;
:../script/tdm_custom_scripts.script&lt;br /&gt;
:../script/name_of_script_from_TDM_base_files &amp;lt;--- will be used in place of any script included in the game&#039;s base .pk4s (eg, tdm_alarm.script, found in tdmbase01.pk4, to change interval, delay, relighting torches, etc...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii, that might require some offset: http://wiki.thedarkmod.com/index.php?title=Font_Conversion_%26_Repair#I18N_.28Internationalization.29) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos (512x512 is a good starting resolution).&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
There is additional information and ffmpeg available in this thread: http://forums.thedarkmod.com/topic/12607-converting-avi-to-roq/#entry254712&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19797</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19797"/>
		<updated>2018-02-21T14:30:15Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* script */ formatting... :/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
: .dds font is used for compression only - it is a hack-wrapper for the game to read the .ttf font. As such, it is unclear if it can contain additional maps (normal / specular).&lt;br /&gt;
: Not being a commonly used format for fonts in the game (.dat is preferable in nearly every instance as to be convention), it might be suggested that the .dds .ttf font-wrapper is a remnant of Doom3 that yet lingers.&lt;br /&gt;
: More information on altering existing, adding new or creating custom fonts can be found here: http://forums.thedarkmod.com/topic/19308-how-to-open-and-edit-the-dat-file-safely-and-successfully-purposes-font-editing/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
Officially, similar to C++.&lt;br /&gt;
&lt;br /&gt;
An intro to scripting can be found here: http://wiki.thedarkmod.com/index.php?title=Scripting_basics&lt;br /&gt;
And a reference to all scripts pulled from the game here: http://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
:../script/custom_ai.script                                      &lt;br /&gt;
:../script/levelname.script&lt;br /&gt;
:../script/tdm_ai_event.script&lt;br /&gt;
:../script/tdm_custom_scripts.script&lt;br /&gt;
:../script/name_of_script_from_TDM_base_files &amp;lt;--- will be used in place of any script included in the game&#039;s base .pk4s (eg, tdm_alarm.script, found in tdmbase01.pk4, to change interval, delay, relighting torches, etc...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii, that might require some offset: http://wiki.thedarkmod.com/index.php?title=Font_Conversion_%26_Repair#I18N_.28Internationalization.29) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos (512x512 is a good starting resolution).&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
There is additional information and ffmpeg available in this thread: http://forums.thedarkmod.com/topic/12607-converting-avi-to-roq/#entry254712&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19796</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19796"/>
		<updated>2018-02-21T14:29:17Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* script */ added example of override base script / links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
: .dds font is used for compression only - it is a hack-wrapper for the game to read the .ttf font. As such, it is unclear if it can contain additional maps (normal / specular).&lt;br /&gt;
: Not being a commonly used format for fonts in the game (.dat is preferable in nearly every instance as to be convention), it might be suggested that the .dds .ttf font-wrapper is a remnant of Doom3 that yet lingers.&lt;br /&gt;
: More information on altering existing, adding new or creating custom fonts can be found here: http://forums.thedarkmod.com/topic/19308-how-to-open-and-edit-the-dat-file-safely-and-successfully-purposes-font-editing/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
Officially, similar to C++.&lt;br /&gt;
&lt;br /&gt;
An intro to scripting can be found here: http://wiki.thedarkmod.com/index.php?title=Scripting_basics&lt;br /&gt;
And a reference to all scripts pulled from the game here: http://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
&lt;br /&gt;
../script/custom_ai.script &lt;br /&gt;
                                      &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
../script/name_of_script_from_TDM_base_files &amp;lt;--- will be used in place of any script included in the game&#039;s base .pk4s (eg, tdm_alarm.script, found in tdmbase01.pk4, to change interval, delay, relighting torches, etc...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii, that might require some offset: http://wiki.thedarkmod.com/index.php?title=Font_Conversion_%26_Repair#I18N_.28Internationalization.29) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos (512x512 is a good starting resolution).&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
There is additional information and ffmpeg available in this thread: http://forums.thedarkmod.com/topic/12607-converting-avi-to-roq/#entry254712&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19795</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19795"/>
		<updated>2018-02-21T11:32:38Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* strings */ link to russian text hex offset&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
: .dds font is used for compression only - it is a hack-wrapper for the game to read the .ttf font. As such, it is unclear if it can contain additional maps (normal / specular).&lt;br /&gt;
: Not being a commonly used format for fonts in the game (.dat is preferable in nearly every instance as to be convention), it might be suggested that the .dds .ttf font-wrapper is a remnant of Doom3 that yet lingers.&lt;br /&gt;
: More information on altering existing, adding new or creating custom fonts can be found here: http://forums.thedarkmod.com/topic/19308-how-to-open-and-edit-the-dat-file-safely-and-successfully-purposes-font-editing/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii, that might require some offset: http://wiki.thedarkmod.com/index.php?title=Font_Conversion_%26_Repair#I18N_.28Internationalization.29) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos (512x512 is a good starting resolution).&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
There is additional information and ffmpeg available in this thread: http://forums.thedarkmod.com/topic/12607-converting-avi-to-roq/#entry254712&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19794</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19794"/>
		<updated>2018-02-21T11:29:50Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* fonts */ updated .dds font info; added link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
: .dds font is used for compression only - it is a hack-wrapper for the game to read the .ttf font. As such, it is unclear if it can contain additional maps (normal / specular).&lt;br /&gt;
: Not being a commonly used format for fonts in the game (.dat is preferable in nearly every instance as to be convention), it might be suggested that the .dds .ttf font-wrapper is a remnant of Doom3 that yet lingers.&lt;br /&gt;
: More information on altering existing, adding new or creating custom fonts can be found here: http://forums.thedarkmod.com/topic/19308-how-to-open-and-edit-the-dat-file-safely-and-successfully-purposes-font-editing/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos (512x512 is a good starting resolution).&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
There is additional information and ffmpeg available in this thread: http://forums.thedarkmod.com/topic/12607-converting-avi-to-roq/#entry254712&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19766</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19766"/>
		<updated>2017-12-20T07:10:57Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* video */ added rich&amp;#039;s info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos (512x512 is a good starting resolution).&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
There is additional information and ffmpeg available in this thread: http://forums.thedarkmod.com/topic/12607-converting-avi-to-roq/#entry254712&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19764</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19764"/>
		<updated>2017-12-17T06:04:35Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* video */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos (iirc, 640x480 was best resolution for video..?).&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19763</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19763"/>
		<updated>2017-12-17T06:02:36Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* video */ additional link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use roq.exe from elsewhere and follow tutorial: https://jkhub.org/topic/2718-creation-of-roq-files/ &lt;br /&gt;
or use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19762</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19762"/>
		<updated>2017-12-17T06:01:00Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* video */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [now 404&#039;d] - instead use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19761</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19761"/>
		<updated>2017-12-17T06:00:29Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* video */ update roq video encoder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip [404] - use this to convert an AVI file: https://jkhub.org/tutorials/article/26-creating-a-roq-video/&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19399</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19399"/>
		<updated>2017-07-17T18:25:32Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* guis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
Some guis requiring only .tga may be also located in ...dds/guis, for unknown reasons (compression?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19280</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19280"/>
		<updated>2017-05-29T20:27:58Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index, collecting links and data that might otherwise be fragmented or more easily overlooked.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19279</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19279"/>
		<updated>2017-05-29T20:26:47Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* the end */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This page contains the directory tree of a complete and full .pk4 for a mission for TDM.&lt;br /&gt;
It is not expected that all files would be used - as the wiki develops, it is hoped that more links to pertinant information will be inserted in the relevant sections for futher reading on each subject.&lt;br /&gt;
&lt;br /&gt;
The page merely serves as a reference and index.&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19278</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19278"/>
		<updated>2017-05-29T20:23:50Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* xdata = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
: The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
: All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19277</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19277"/>
		<updated>2017-05-29T20:22:43Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* xdata = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[http://wiki.thedarkmod.com/index.php?title=Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
:../xdata/briefing.xd  &lt;br /&gt;
:.. The text-only briefing.                                           &lt;br /&gt;
:../xdata/levelname.xd&lt;br /&gt;
:.. All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19276</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19276"/>
		<updated>2017-05-29T20:22:21Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* xdata = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Xdata files (.xd) contain text-only readables information (eg, the briefing and in-game notes and letters).&lt;br /&gt;
&lt;br /&gt;
For moving image, timed sequence or video briefings, please see the [[http://wiki.thedarkmod.com/index.php?title=Briefing|relevant articles]] on how to configure the .gui&#039;s for this.&lt;br /&gt;
&lt;br /&gt;
;../xdata&lt;br /&gt;
../xdata/briefing.xd  &lt;br /&gt;
.. The text-only briefing.                                           &lt;br /&gt;
../xdata/levelname.xd&lt;br /&gt;
.. All readables data (either #str, if you choose this or plain-text if otherwise or using readables editor).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19275</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19275"/>
		<updated>2017-05-29T20:18:00Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* video */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you wish to include a [[Setting_up_Campaigns#Briefing_Videos|video briefing or debriefing]], these files are placed here.&lt;br /&gt;
&lt;br /&gt;
TDM uses .roq format for its videos.&lt;br /&gt;
&lt;br /&gt;
The encoder may be found here: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip&lt;br /&gt;
&lt;br /&gt;
The decoder here: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_cin.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../video/levelname_briefing.roq                                 &lt;br /&gt;
;../video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19274</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19274"/>
		<updated>2017-05-29T20:13:46Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* levelname */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there are very few additional files, there is no reason to not simply place them into a single directory.&lt;br /&gt;
&lt;br /&gt;
:../levelname/customtexture.jpg  &lt;br /&gt;
:../levelname/customtexture.tga&lt;br /&gt;
&lt;br /&gt;
However, most files are required to be placed correctly in the directory structure (so the game knows where to look by default) and to prevent a &amp;quot;custom&amp;quot; folder becoming cluttered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19273</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19273"/>
		<updated>2017-05-29T20:11:14Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
The textures directory serves as a depository for any texture files used in the FM that are not packaged as .dds.&lt;br /&gt;
They contain no specular / bump / normal maps - they are merely flat textures.&lt;br /&gt;
&lt;br /&gt;
Please remember, .jpg&#039;s contain no alpha channel and as such contain no transparency.&lt;br /&gt;
&lt;br /&gt;
Anything other than 24 or 32 bit textures that contain transparency may appear to have black alpha channels, rather than transparent.&lt;br /&gt;
512x512px appears to be a decent resolution for most tiling patternage or surface texture.&lt;br /&gt;
&lt;br /&gt;
Again, all textures must be defined by a materials file (.mtr) and/or .skin file (if applied to model), regardless of format.&lt;br /&gt;
It is possible to compress .jpg and .tga files into .dds for smaller size and faster download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../textures                         &lt;br /&gt;
:../textures/darkmod/                                            &lt;br /&gt;
:../textures/darkmod/custom texture.jpg                                 &lt;br /&gt;
:../textures/darkmod/custom texture.tga  &lt;br /&gt;
:../textures/darkmod/weapons/sword01.tga                                &lt;br /&gt;
:../textures/decals/                                                &lt;br /&gt;
:../textures/decals/blood                                         &lt;br /&gt;
:../textures/decals/blood/custom_blood.jpg                      &lt;br /&gt;
:../textures/decals/blood/custom_blood.tga                      &lt;br /&gt;
:../textures/decals/dirt/dirt/custom_dirt.jpg                        &lt;br /&gt;
:../textures/decals/dirt/custom_dirt.tga   &lt;br /&gt;
                      &lt;br /&gt;
&lt;br /&gt;
EXIF data is retained in these files.&lt;br /&gt;
&lt;br /&gt;
Nb, structural organisation for ease of future reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19272</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19272"/>
		<updated>2017-05-29T20:01:54Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* strings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19271</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19271"/>
		<updated>2017-05-29T20:01:38Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* strings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings - the .lang files - are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as [[Mission_Title_Screen_while_Loading|loading tips]] or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
:../strings/fm/de.lang                                            &lt;br /&gt;
: #str_20000 halo, wie gehts?&lt;br /&gt;
:../strings/fm/eng.lang&lt;br /&gt;
: #str_20000 hello, how are you?                                         &lt;br /&gt;
:../strings/fm/es.lang&lt;br /&gt;
: #str_20000 hola, como estas?&lt;br /&gt;
:../strings/fm/fr/lang&lt;br /&gt;
: #str_20000 salut, comment ca va?                                            &lt;br /&gt;
:../strings/fm/pyc.lang&lt;br /&gt;
: #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
DR&#039;s readables editor does not produce this convention as standard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19270</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19270"/>
		<updated>2017-05-29T19:57:55Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* strings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
[[How_to_pack_your_Mission#Internationalisation_.28I18N.29|Strings]] can be very useful in the creation of in-game text, to facilitate changes and also transation of the FM into other languages.&lt;br /&gt;
Instead of having to change every single readable that is created, using #str_xxxxxx from a single file, as noted in the article, it is possible to change the readable into languages other than English with greater ease.&lt;br /&gt;
&lt;br /&gt;
For more information on how this works, please read [[Internationalization]].&lt;br /&gt;
&lt;br /&gt;
These strings are contained in an additional .pk4, eg &amp;quot;levelname_i18n.pk4&amp;quot; that would be contained in the same directory as &amp;quot;levelname.pk4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also useful, outside of internationalization, for some scripting - as in such things as loading tips or &amp;quot;random&amp;quot; notes and readables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../strings/fm&lt;br /&gt;
                                                   &lt;br /&gt;
../strings/fm/de.lang                                            &lt;br /&gt;
.. #str_20000 halo, wie gehts?&lt;br /&gt;
../strings/fm/eng.lang&lt;br /&gt;
.. #str_20000 hello, how are you?                                         &lt;br /&gt;
../strings/fm/es.lang&lt;br /&gt;
.. #str_20000 hola, como estas?&lt;br /&gt;
../strings/fm/fr/lang&lt;br /&gt;
.. #str_20000 salut, comment ca va?                                            &lt;br /&gt;
../strings/fm/pyc.lang&lt;br /&gt;
.. #str_20000 privet, kak dela?                                        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that TDM&#039;s character input is a-z, A-Z and 0-9, without any interntational characters (except maybe Pycckii) and the standard [[fonts]] do not accept international characters such as ñ or è.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19269</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19269"/>
		<updated>2017-05-29T19:39:34Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* sound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
:../sound/doorsounds.sndshd  &lt;br /&gt;
:../sound/effects.sndshd  &lt;br /&gt;
:../sound/footsteps.sndshd&lt;br /&gt;
:../sound/music.sndshd&lt;br /&gt;
:../sound/voices.sndshd &lt;br /&gt;
&lt;br /&gt;
:These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
:../sound/effects/custom.effect.ogg  &lt;br /&gt;
:../sound/effects/footsteps&lt;br /&gt;
:../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
:../sound/effects/music&lt;br /&gt;
:../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
;../sound/effects/voices&lt;br /&gt;
:../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
:../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
:Again, it is useful to compartmentalise sounds for the sake of organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19268</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19268"/>
		<updated>2017-05-29T19:37:40Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* sound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound]] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
../sound/doorsounds.sndshd  &lt;br /&gt;
../sound/effects.sndshd  &lt;br /&gt;
../sound/footsteps.sndshd&lt;br /&gt;
../sound/music.sndshd&lt;br /&gt;
../sound/voices.sndshd &lt;br /&gt;
..These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
../sound/effects/custom.effect.ogg  &lt;br /&gt;
../sound/effects/footsteps&lt;br /&gt;
../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
../sound/effects/music&lt;br /&gt;
../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
../sound/effects/voices&lt;br /&gt;
../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19267</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19267"/>
		<updated>2017-05-29T19:37:29Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* sound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
[[Sound] shaders are required in order to play (custom) sounds in any FM.&lt;br /&gt;
For more detail, see the wiki article.&lt;br /&gt;
&lt;br /&gt;
The standard format is .ogg and these are defined by the [[Adding_ambient_Sounds_to_your_Map|.sndshd files]], althought it appears .wav is also acceptable (although these files are much larger in size).&lt;br /&gt;
&lt;br /&gt;
It is possible to #undefine (or set windowdef) those sounds default to the game and #define custom sounds through TDM&#039;s .gui&#039;s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../sound                                                         &lt;br /&gt;
../sound/doorsounds.sndshd  &lt;br /&gt;
../sound/effects.sndshd  &lt;br /&gt;
../sound/footsteps.sndshd&lt;br /&gt;
../sound/music.sndshd&lt;br /&gt;
../sound/voices.sndshd &lt;br /&gt;
..These are the sound shader files that point the game to the correct .ogg files&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
;../sound/effects/                                                &lt;br /&gt;
../sound/effects/custom.effect.ogg  &lt;br /&gt;
../sound/effects/footsteps&lt;br /&gt;
../sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
../sound/effects/music&lt;br /&gt;
../sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
../sound/effects/voices&lt;br /&gt;
../sound/effects/voices/charvoice.ogg  &lt;br /&gt;
../sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19266</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19266"/>
		<updated>2017-05-29T19:29:25Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
Basics for TDM scripting appears in Python for mappers, although there are some elements of c# used in certain instances.&lt;br /&gt;
&lt;br /&gt;
These scripts are most often called using triggers in Dark Radiant.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;levelname&amp;quot; (ie, your FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19265</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19265"/>
		<updated>2017-05-29T19:26:35Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
Scripts affect many functions in TDM. Events, actions, AI, mechanics, movers, conversations, etc...&lt;br /&gt;
Unfortunately, scripting is not currently well documented outside of specific areas. &lt;br /&gt;
&lt;br /&gt;
The best place to find answers to scripting questions is using a contextual search of the wiki or posting in the forums.&lt;br /&gt;
&lt;br /&gt;
The scripts for &amp;quot;mylevel&amp;quot; (ie, you FM) are placed here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../script&lt;br /&gt;
../script/custom_ai.script                                       &lt;br /&gt;
../script/levelname.script&lt;br /&gt;
../script/tdm_ai_event.script&lt;br /&gt;
../script/tdm_custom_scripts.script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19264</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19264"/>
		<updated>2017-05-29T19:22:16Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* particles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19263</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19263"/>
		<updated>2017-05-29T19:22:04Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* particles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
[[Particles]] are textures with special properties. They might be edited using the [[Particle_Editor|Particle Editor]], where it is possible to affect shape, time, size and gravity. Particles are affected by the world axis. It is possible to create custom particles, although these must be saved according to the instructions in the aforementioned, relevant articles.&lt;br /&gt;
&lt;br /&gt;
;../particles/&lt;br /&gt;
:../particles/customparticle.prt&lt;br /&gt;
:../particles/tdm_alter_existing_particle.prt&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19262</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19262"/>
		<updated>2017-05-29T19:08:00Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* md5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19261</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19261"/>
		<updated>2017-05-29T19:06:37Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* guis */ gram.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not (yet) well explained and require some knowledge of how GUI&#039;s work - specifically in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19260</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19260"/>
		<updated>2017-05-29T19:05:29Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* guis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;../guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;../guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;../guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;../guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;../guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19259</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19259"/>
		<updated>2017-05-29T18:40:01Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* md5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19258</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19258"/>
		<updated>2017-05-29T18:39:41Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* md5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
.md5 is the mesh and bone depot for character animation for Doom 3&#039;s models. http://tfc.duke.free.fr/coding/md5-specs-en.html&lt;br /&gt;
For help with this, if not already known, it is best to ask in the forums if wishing to include custom characters.&lt;br /&gt;
&lt;br /&gt;
;../md5&lt;br /&gt;
;../md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
;../md5/heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19257</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19257"/>
		<updated>2017-05-29T18:36:27Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
[[Basic_Material_File|Material Files]] are parent and child to many other files in TDM, without them, textures, sounds, models, skins and others will not be defined correctly.&lt;br /&gt;
Please read the basic articles regarding the creation of the specific type of material file required.&lt;br /&gt;
&lt;br /&gt;
What follows are example material files (.mtr) that cover a vartiety of different things that might be included in an FM, from lights, sounds, AI to models, to fixes, to textures, to skyboxes.&lt;br /&gt;
These files are important, so they are worth reading up on in order to understand the relationship between eg, .mtr and .dds, .skin and .ase, if - for example - including a new model in your FM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials&lt;br /&gt;
:&lt;br /&gt;
;../materials/custom_ai.mtr                                              &lt;br /&gt;
;../materials/custom_light.mtr                                         &lt;br /&gt;
;../materials/custom_map.mtr                                           &lt;br /&gt;
;../materials/custom_obj_lod.mtr                                         &lt;br /&gt;
;../materials/frobhighlight_textures_example.mtr&lt;br /&gt;
;../materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
;../materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
;../materials/levelname_light_textures.mtr&lt;br /&gt;
;../materials/levelname_textures (modified textures).mtr&lt;br /&gt;
;../materials/levelname_video.mtr  &lt;br /&gt;
;../materials/stolen_AI_base_WS1ghost.mtr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For new models - it is important to compartmentalise for ease of navigation and organisation.&lt;br /&gt;
The model files accepted are in .ase format. These may either be compiled in other software, or by using Dark Radiant&#039;s plugin-script to create an .ase from brush/meshwork completed in the programme.&lt;br /&gt;
Exporting models From DR as .ase will reduce entity count, but will not inherit DR functions (ie, the doors and windows will no longer open).&lt;br /&gt;
As mentioned elsewhere, all .ase models are definted through material files (.mtr) and must be parented to skin files (.skin) in order to inherit (eg, metallic/wood) properites and also texture. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../materials/models&lt;br /&gt;
;../materials/models/darkmod&lt;br /&gt;
;../materials/models/darkmod/decorative                                           &lt;br /&gt;
;../materials/models/darkmod/category                                   &lt;br /&gt;
;../materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
;../materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
;../materials/models/darkmod/misc/system/skybox_model.lwo&lt;br /&gt;
:If creating a skybox model in this way, it is important that it is an .lwo and not as mentioned in the more simple tutorial above (.env).&lt;br /&gt;
;..materials/weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
;../levelname/custom_model.ase&lt;br /&gt;
:To remain organised and for future reference, it is advisable to create your directory structre around your &amp;quot;levelname&amp;quot; and not dump all files into &amp;quot;custom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19256</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19256"/>
		<updated>2017-05-29T18:20:22Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
These are the required output from Dark Radiant and TDM&#039;s DMAP of the .map file, in order to play your level, at minimum.&lt;br /&gt;
Please note MAPS not MAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.aas_rat                                        &lt;br /&gt;
;../maps/levelname.aas32                                        &lt;br /&gt;
;../maps/levelname.cm  &lt;br /&gt;
;../maps/levelname.map  &lt;br /&gt;
;../maps/levelname.proc&lt;br /&gt;
&lt;br /&gt;
;../maps/levelname.script&lt;br /&gt;
:If the FM contains scripts - this file is required.&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19255</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19255"/>
		<updated>2017-05-29T18:17:56Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* guis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. [[In-game_Map_Entities|In-game map creation]]&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          &lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                &lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.gui.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19254</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19254"/>
		<updated>2017-05-29T18:16:12Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* guis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
:Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
:The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
:This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
:May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
:Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
:The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
:Standard loading bar.&lt;br /&gt;
;../guis/assets/levelname_loading.tga                                  &lt;br /&gt;
:The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;../guis/assets/next_arrow.tga                                     &lt;br /&gt;
;../guis/assets/previous_arrow.tga  &lt;br /&gt;
;../guis/assets/stop_cross.tga		&lt;br /&gt;
:These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:This is the in-game map for a player to use. *link&lt;br /&gt;
;../guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;../guis/hud&lt;br /&gt;
;..In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;../guis/hudcustom_hud.tga                                 &lt;br /&gt;
;../guis/hud/inventory_icons&lt;br /&gt;
;../guis/hud/custom_inv_item.tga                          //extra inventory icons&lt;br /&gt;
:Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;../guis/map/levelname.gui                                 // custom loading screen, loading tips, changes to windowdef of any TDM gui&lt;br /&gt;
:This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19253</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19253"/>
		<updated>2017-05-29T18:12:27Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* lights */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
: Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
: The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
: This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
: May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
: Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
: The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
: Standard loading bar.&lt;br /&gt;
;.. /guis/assets/levelname_loading.tga                                  &lt;br /&gt;
: The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;.. /guis/assets/next_arrow.tga                                     &lt;br /&gt;
;.. /guis/assets/previous_arrow.tga  &lt;br /&gt;
;.. /guis/assets/stop_cross.tga		&lt;br /&gt;
: These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:.. This is the in-game map for a player to use. *link&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;.. /guis/hud&lt;br /&gt;
;.. In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;.. /guis/hudcustom_hud.tga                                 &lt;br /&gt;
;.. /guis/hud/inventory_icons&lt;br /&gt;
;.. /guis/hud/custom_inv_item.tga                          //extra inventory icons&lt;br /&gt;
:.. Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;.. /guis/map/levelname.gui                                 // custom loading screen, loading tips, changes to windowdef of any TDM gui&lt;br /&gt;
: This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
;../lights/custom_light_colour.tga                                 &lt;br /&gt;
;../lights/custom_light_nocolour.tga&lt;br /&gt;
:.. Custom light shaders point here (tga contains alpha channel for transparency).&lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19252</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19252"/>
		<updated>2017-05-29T18:11:17Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
: Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
: The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
: This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
: May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
: Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
: The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
: Standard loading bar.&lt;br /&gt;
;.. /guis/assets/levelname_loading.tga                                  &lt;br /&gt;
: The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;.. /guis/assets/next_arrow.tga                                     &lt;br /&gt;
;.. /guis/assets/previous_arrow.tga  &lt;br /&gt;
;.. /guis/assets/stop_cross.tga		&lt;br /&gt;
: These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:.. This is the in-game map for a player to use. *link&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;.. /guis/hud&lt;br /&gt;
;.. In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;.. /guis/hudcustom_hud.tga                                 &lt;br /&gt;
;.. /guis/hud/inventory_icons&lt;br /&gt;
;.. /guis/hud/custom_inv_item.tga                          //extra inventory icons&lt;br /&gt;
:.. Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;.. /guis/map/levelname.gui                                 // custom loading screen, loading tips, changes to windowdef of any TDM gui&lt;br /&gt;
: This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req. re: custom inv. icon/model&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
 /lights/custom_light_colour.tga                                  //light shaders&lt;br /&gt;
 /lights/custom_light_nocolour.tga  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19251</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19251"/>
		<updated>2017-05-29T18:10:38Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
: Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
: The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
: This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
: May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
: Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
: The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
: Standard loading bar.&lt;br /&gt;
;.. /guis/assets/levelname_loading.tga                                  &lt;br /&gt;
: The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;.. /guis/assets/next_arrow.tga                                     &lt;br /&gt;
;.. /guis/assets/previous_arrow.tga  &lt;br /&gt;
;.. /guis/assets/stop_cross.tga		&lt;br /&gt;
: These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:.. This is the in-game map for a player to use. *link&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;.. /guis/hud&lt;br /&gt;
;.. In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;.. /guis/hudcustom_hud.tga                                 &lt;br /&gt;
;.. /guis/hud/inventory_icons&lt;br /&gt;
;.. /guis/hud/custom_inv_item.tga                          //extra inventory icons&lt;br /&gt;
:.. Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;.. /guis/map/levelname.gui                                 // custom loading screen, loading tips, changes to windowdef of any TDM gui&lt;br /&gt;
: This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link req.&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
 /lights/custom_light_colour.tga                                  //light shaders&lt;br /&gt;
 /lights/custom_light_nocolour.tga  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19250</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19250"/>
		<updated>2017-05-29T18:10:12Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* splash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
: Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
: The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
: This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
: May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
: Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
: The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
: Standard loading bar.&lt;br /&gt;
;.. /guis/assets/levelname_loading.tga                                  &lt;br /&gt;
: The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;.. /guis/assets/next_arrow.tga                                     &lt;br /&gt;
;.. /guis/assets/previous_arrow.tga  &lt;br /&gt;
;.. /guis/assets/stop_cross.tga		&lt;br /&gt;
: These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:.. This is the in-game map for a player to use. *link&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;.. /guis/hud&lt;br /&gt;
;.. In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;.. /guis/hudcustom_hud.tga                                 &lt;br /&gt;
;.. /guis/hud/inventory_icons&lt;br /&gt;
;.. /guis/hud/custom_inv_item.tga                          //extra inventory icons&lt;br /&gt;
:.. Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;.. /guis/map/levelname.gui                                 // custom loading screen, loading tips, changes to windowdef of any TDM gui&lt;br /&gt;
: This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 640x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
 /lights/custom_light_colour.tga                                  //light shaders&lt;br /&gt;
 /lights/custom_light_nocolour.tga  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19249</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19249"/>
		<updated>2017-05-29T18:09:58Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* guis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification. *messy, requires deeper links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
: Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
: The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
: This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
: May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
: Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
: The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              &lt;br /&gt;
: Standard loading bar.&lt;br /&gt;
;.. /guis/assets/levelname_loading.tga                                  &lt;br /&gt;
: The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;.. /guis/assets/next_arrow.tga                                     &lt;br /&gt;
;.. /guis/assets/previous_arrow.tga  &lt;br /&gt;
;.. /guis/assets/stop_cross.tga		&lt;br /&gt;
: These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:.. This is the in-game map for a player to use. *link&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player. *link&lt;br /&gt;
&lt;br /&gt;
;.. /guis/hud&lt;br /&gt;
;.. In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;.. /guis/hudcustom_hud.tga                                 &lt;br /&gt;
;.. /guis/hud/inventory_icons&lt;br /&gt;
;.. /guis/hud/custom_inv_item.tga                          //extra inventory icons&lt;br /&gt;
:.. Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;.. /guis/map/levelname.gui                                 // custom loading screen, loading tips, changes to windowdef of any TDM gui&lt;br /&gt;
: This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 650x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
 /lights/custom_light_colour.tga                                  //light shaders&lt;br /&gt;
 /lights/custom_light_nocolour.tga  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19248</id>
		<title>Mission Filestructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Mission_Filestructure&amp;diff=19248"/>
		<updated>2017-05-29T18:08:43Z</updated>

		<summary type="html">&lt;p&gt;Teh saccade: /* map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page lists the internal structure of TDM&#039;s mission .pk4 files, including file naming conventions, so that all files and folders are correctly packed.&lt;br /&gt;
&lt;br /&gt;
There are also external links to further reading and useful files (eg, .roq video encoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission.pk4 filenaming ==&lt;br /&gt;
&lt;br /&gt;
It is important to come up with a &#039;&#039;&#039;unique&#039;&#039;&#039; filename for your mission&#039;s PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it is best to choose a .pk4 name that has not been used by other released missions. &lt;br /&gt;
&lt;br /&gt;
Furthermore, do not use international characters or symbols for the filename. Alphanumeric only (A-Z, a-z and 0-9). &lt;br /&gt;
&lt;br /&gt;
Symbol _ (underscore) may be used if necessary, however be aware that using - (dash) or &amp;amp; (ampersand) will cause assets in def files to not load and will break your mission.&lt;br /&gt;
&lt;br /&gt;
Please do not include version information in the filename (this is why there is a readme). Future updates must have the same filename to properly update via the in-game installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mission .pk4&#039;s ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;../darkmod/fms/mymissionname_001.pk4&lt;br /&gt;
* This is your mission file, containing everything required to play your mission. &lt;br /&gt;
* All TDM missions must be packaged in a .pk4 file (a renamed .zip archive).&lt;br /&gt;
* The contents of the PK4 resemble the folder structure as found in the main &#039;&#039;&#039;../darkmod/&#039;&#039;&#039; directory (eg, textures go into ../textures/, .def files go to ../def/).&lt;br /&gt;
* The PK4 contains all the files needed to run the mission, and must comprise the minimum content, as below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Required content of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for the FM to be correctly installed and played, a .pk4 archive needs to contain, at minimum, the compiled maps (dmap output) and two text files:&lt;br /&gt;
&lt;br /&gt;
 levelname.pk4/maps/levelname.map&lt;br /&gt;
 levelname.pk4/maps/levelname.proc&lt;br /&gt;
 levelname.pk4/maps/levelname.cm&lt;br /&gt;
 levelname.pk4/maps/levelname.aas32&lt;br /&gt;
 levelname.pk4/darkmod.txt&lt;br /&gt;
 levelname.pk4/startingmap.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;The above example list of files is based on a mission called &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039;. &lt;br /&gt;
: All instances of &#039;&#039;&#039;&#039;levelname&#039;&#039;&#039;&#039; in the .pk4 must be renamed accordingly.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
The two text files are needed to display your mission in the &amp;quot;New Mission&amp;quot; dialog of TDM&#039;s main menu, as described in the [[Startpack_Mappers&#039;_Guide#Defining_the_Map_Filename_for_Dark_Mod|Startpack Mapper&#039;s Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Internal Structure of a .pk4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows is an alphabetical list of all files and folders that might be found in an FM&#039;s .pk4, along with some description and with links to relevant internal wiki pages. &lt;br /&gt;
&lt;br /&gt;
There are some links to external sites that might be of use or contain downloads for software required to create any custom or additional files (fonts, videos) for an FM.&lt;br /&gt;
&lt;br /&gt;
If any associated external link is dead (especially to game-specific tools such as .roq encoder or font converter) - please report in the forum so that it might be updated.&lt;br /&gt;
&lt;br /&gt;
It is assumed that ../ is the root of your archive (ie, &amp;quot;levelname.pk4&amp;quot;) and all directory and file listing branches from this.&lt;br /&gt;
&lt;br /&gt;
While certain folders may be used for other purposes, for organisation and ease of reference - maintaining the standard directory structure, working methodically, allows for easier internal reference and location of assets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../credits.txt&lt;br /&gt;
: Credit given where it is due.&lt;br /&gt;
;../darkmod.txt&lt;br /&gt;
: Mission title / pre-briefing intro, displayed on main menu (~50 words max).&lt;br /&gt;
;../list.txt&lt;br /&gt;
: This list.&lt;br /&gt;
;../readme.txt                                              &lt;br /&gt;
: A readme file, that someone might read.&lt;br /&gt;
;../startingmap.txt&lt;br /&gt;
: Contains the name of your map (as described in Startpack Mapper&#039;s Guide).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dds ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These folders contain texture maps for use in the mission.&lt;br /&gt;
TDM has some particular requirements for including custom .dds, that can be found on the [[DDS_creation|.dds creation guidline page]].&lt;br /&gt;
&lt;br /&gt;
There is no stated optimal resolution for textures. 512x512 appears decent for most tiling or repeating patterns.&lt;br /&gt;
&lt;br /&gt;
;../dds/&lt;br /&gt;
:../dds/textures&lt;br /&gt;
:../dds/textures/darkmod&lt;br /&gt;
:../dds/textures/darkmod/custom_texture.dds                         &lt;br /&gt;
:../dds/textures/darkmod/decals/                                        &lt;br /&gt;
:../dds/textures/darkmod/decals/custom decal.dds                          &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades                        &lt;br /&gt;
:../dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds             &lt;br /&gt;
:../levelname/customtexturemaps.dds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== def ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[EntityDef|Entity definitions]] are predefined [[Spawnarg|spawnargs]], used in the creation of, eg, custom loot.&lt;br /&gt;
A more complete list of values to use might be found [[DEF_Files|here]].&lt;br /&gt;
&lt;br /&gt;
Please remember that using - (dash) or &amp;amp; (ampersand) in the directory structure will cause your mission to break when the .def&#039;s are loaded by the game.&lt;br /&gt;
&lt;br /&gt;
;../def/&lt;br /&gt;
:../def/custom_AI_head_and_skin.def                         &lt;br /&gt;
:../def/custom_AI_inc_props.def                        &lt;br /&gt;
:../def/custom_npc_model_inherit_custom_ai.def  &lt;br /&gt;
:../def/tdm_ai_custom_ai.def                                     &lt;br /&gt;
:../def/tdm_lod_custom_level_of_detail_for_model.def&lt;br /&gt;
:../def/custom_loot_001.def&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== env ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This folder serves to contain the environment for any custom skybox other than the [[Skybox_Basic_Details|default prefab]].&lt;br /&gt;
&lt;br /&gt;
;../env&lt;br /&gt;
: Contains the custom skybox.&lt;br /&gt;
;../env/custom&lt;br /&gt;
: The tutorial for creating which can be found [[Skybox_Tutorial|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fonts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;/fonts/fontimage_&amp;lt;size&amp;gt;.dat                                  &lt;br /&gt;
: In the case that a custom [[Fonts_Screenshots|font]] is to be used, &amp;lt;size&amp;gt; is in points (eg &amp;lt;24&amp;gt;), the .dat file is created from a standard .ttf zip archive renamed to .dat.&lt;br /&gt;
: There is further reading and a font creation tool for Doom3 engine here: https://web.archive.org/web/20080705204959/http://www.q3f.com/q3font.html&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;It is still unclear how the .dds for fonts are packaged, or if they are even required for custom fonts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== guis ==&lt;br /&gt;
&lt;br /&gt;
This one will require a few links to wiki pages that req. clarification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../guis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
;../custom_readable_slab.gui&lt;br /&gt;
: Custom readable slabs (eg, signs w/decals, etc...)                            &lt;br /&gt;
;.. /guis/mainmenu_briefing.gui                                      &lt;br /&gt;
: The main briefing screen. Can find extended version by Sotha via fidcal&#039;s (http://www.fidcal.com/DarkModContributions/guis/briefings/briefing_button.zip)&lt;br /&gt;
;.. /guis/mainmenu_custom_defs.gui&lt;br /&gt;
: This file might contain many variable and adjustments to windowdefs, also to enable the game shop / [item] persistence over campaign / advanced briefing &amp;amp; debrief (success screen) / start points / replacement/music[voiceover] / video (wiki documentation). *incl. links to wiki docs.                                &lt;br /&gt;
: May contain many #define or #undefines, &amp;quot;set [on windowdef]&amp;quot;, etc... that might be found inside TDM&#039;s basefiles (inc. &amp;quot;success&amp;quot; that constitutes the debriefing screen).&lt;br /&gt;
;.. /guis/assets&lt;br /&gt;
: Contains GUI assets&lt;br /&gt;
;.. /guis/assets/briefingX.tga                                         &lt;br /&gt;
: The default TDM briefing background.&lt;br /&gt;
;.. /guis/assets/generic_loading_bar1.tga                              //level load bar&lt;br /&gt;
: Standard loading bar.&lt;br /&gt;
;.. /guis/assets/levelname_loading.tga                                  //loading background&lt;br /&gt;
: The loading background. Can be changed through altering mainmenu_custom *incl. wiki links.&lt;br /&gt;
;.. /guis/assets/next_arrow.tga                                     &lt;br /&gt;
;.. /guis/assets/previous_arrow.tga  &lt;br /&gt;
;.. /guis/assets/stop_cross.tga		&lt;br /&gt;
: These are the default GUI interface arrows, can be altered, referred from mainmenu_briefing.gui. *links&lt;br /&gt;
&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname.tga&lt;br /&gt;
:.. This is the in-game map for a player to use. *link&lt;br /&gt;
;.. /guis/assets/game_maps/map_of_levelname_icon.tga&lt;br /&gt;
:.. The inventory icon for the in-game map for a player.&lt;br /&gt;
&lt;br /&gt;
;.. /guis/hud&lt;br /&gt;
;.. In-game HUD changes are not well explained and require some knowledge of how not only GUI&#039;s work, but how they work in TDM.&lt;br /&gt;
;.. /guis/hudcustom_hud.tga                                 &lt;br /&gt;
;.. /guis/hud/inventory_icons&lt;br /&gt;
;.. /guis/hud/custom_inv_item.tga                          //extra inventory icons&lt;br /&gt;
:.. Here is where any custom objects inventory icons may be placed (eg, special loot or items).&lt;br /&gt;
;.. /guis/map/levelname.gui                                 // custom loading screen, loading tips, changes to windowdef of any TDM gui&lt;br /&gt;
: This is where custom loading screens, loading tips, changes to any of TDM&#039;s windowdefs #define / #undefine, etc... are set *insert wiki links for custom background, loading tips, etc... there is no page on def/undef nor set for adjustment of windowdef to change this in mainmenu_custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is not well documented and the information is fragmented throughout the wiki, with little explanation as to how it might work, copy-pasta.&lt;br /&gt;
&lt;br /&gt;
== splash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../splash/levelname_loading.tga&lt;br /&gt;
:.. splash (loading screen) for TDM levels, dimensions are 650x480 for images or 512x512 for videos, auto-scaled.&lt;br /&gt;
&lt;br /&gt;
== map ==&lt;br /&gt;
&lt;br /&gt;
A subdirectory of GUIS that requires special attention - it is the ingame map for players&lt;br /&gt;
&lt;br /&gt;
;..guis/map&lt;br /&gt;
;../map/map_of_levelname.gui&lt;br /&gt;
: This is required (along with the inventory icon, if necessary), for a player to have an in game map - the details may be found [[In-game_Map_Entities|here]]&lt;br /&gt;
&lt;br /&gt;
== lights ==&lt;br /&gt;
&lt;br /&gt;
 /lights/custom_light_colour.tga                                  //light shaders&lt;br /&gt;
 /lights/custom_light_nocolour.tga  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== maps ==&lt;br /&gt;
&lt;br /&gt;
as stated in preamble&lt;br /&gt;
&lt;br /&gt;
 /maps/levelname.aas_rat                                          //dmap output (richard gere and lemmiwinks).&lt;br /&gt;
/maps/levelname.aas32                                         //required to play game&lt;br /&gt;
 /maps/levelname.cm  &lt;br /&gt;
 /maps/levelname.map  &lt;br /&gt;
 /maps/levelname.proc&lt;br /&gt;
 /maps/levelname.script    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
&lt;br /&gt;
so many different - many wiki pages to link. Perhaps best to use general definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /materials&lt;br /&gt;
 /materials/custom_ai.mtr                                              //material files for several&lt;br /&gt;
 /materials/custom_light.mtr                                         //purposes, definition to include&lt;br /&gt;
 /materials/custom_map.mtr                                             //new textures, light, game map,&lt;br /&gt;
 /materials/custom_obj_lod.mtr                                         //models, fixes, behaviour, etc...&lt;br /&gt;
 /materials/frobhighlight_textures_example.mtr&lt;br /&gt;
 /materials/ghost_collision_draw_fix.mtr&lt;br /&gt;
 /materials/levelname (new textures.surfaces).mtr&lt;br /&gt;
 /materials/levelname_light_textures.mtr&lt;br /&gt;
 /materials/levelname_textures (modified textures).mtr&lt;br /&gt;
 /materials/levelname_video.mtr  &lt;br /&gt;
 /materials/stolen_AI_base_WS1ghost.mtr                         // I nicked this one as example of custom.mtr&lt;br /&gt;
 /materials/models&lt;br /&gt;
 /materials/models/darkmod&lt;br /&gt;
 /materials/models/darkmod/decorative                                            //3DSMax / Blender / DR exported .ase files here&lt;br /&gt;
 /materials/models/darkmod/category                                        //all ase requires definition through material (.mtr) and parent to (.skin).&lt;br /&gt;
 /materials/models/darkmod/category/custom_model.ase  &lt;br /&gt;
 /materials/models/darkmod/loot/custom loot model.ase  &lt;br /&gt;
 /materials/models/darkmod/misc/system/skybox_model.lwo                             //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
this is out of sequence and without parent directory - needs double-check.&lt;br /&gt;
These are materials/models/darkmod&lt;br /&gt;
&lt;br /&gt;
 /weapons/custom_weapon(nonplayer).lwo&lt;br /&gt;
&lt;br /&gt;
possible child directory of materials that has lost structure in copy-pasta...&lt;br /&gt;
&lt;br /&gt;
 /levelname/custom_model.ase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== md5 ==&lt;br /&gt;
&lt;br /&gt;
not getting into modelling - forums.&lt;br /&gt;
&lt;br /&gt;
 /md5                                                    //md5 mesh depot&lt;br /&gt;
 /md5/chars/body/npc/custom_npc_body.md5mesh&lt;br /&gt;
 /heads/npc/custom_npc_head.md5mesh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== particles ==&lt;br /&gt;
&lt;br /&gt;
link to particles&lt;br /&gt;
&lt;br /&gt;
 /particles/&lt;br /&gt;
 /particles/customparticle.prt                                      //particle info - can be created&lt;br /&gt;
 /particles/tdm_alter_existing_particle.prt                          //using in-game console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
&lt;br /&gt;
link to scripts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script&lt;br /&gt;
 /script/custom_ai.script                                          //script files here&lt;br /&gt;
 /script/levelname.script&lt;br /&gt;
 /script/tdm_ai_event.script&lt;br /&gt;
 /script/tdm_custom_scripts.script  &lt;br /&gt;
&lt;br /&gt;
== skins ==&lt;br /&gt;
&lt;br /&gt;
Skins are required to link textures to .ase models (placed in ../materials or ../md5), and also require material definition (../def).&lt;br /&gt;
The creation of a .skin file and process of application in DR through the entity inspector can be found [[Creating_Multiple_Skins_For_A_Model|here]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;skins tutorial is bookmarked for clear-up&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process is similar to Quake: http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html#textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;../skins                                                        &lt;br /&gt;
:../skins/custom_ai.skin&lt;br /&gt;
:../skins/custom_loot.skin  &lt;br /&gt;
:../skins/custom_obj_model.skin&lt;br /&gt;
:../skins/tdm_replace_model_texture.skin&lt;br /&gt;
:../skins/texture for model.skin  &lt;br /&gt;
:../skins/zombie_replacement.skin&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&lt;br /&gt;
link to sound shader article&lt;br /&gt;
&lt;br /&gt;
/sound                                                         //sound shader replacement pointers&lt;br /&gt;
 /sound/doorsounds.sndshd  &lt;br /&gt;
 /sound/effects.sndshd  &lt;br /&gt;
 /sound/footsteps.sndshd&lt;br /&gt;
 /sound/music.sndshd&lt;br /&gt;
 /sound/voices.sndshd  &lt;br /&gt;
 /sound/effects/                                                //the sound files themselves&lt;br /&gt;
 /sound/effects/custom.effect.ogg  &lt;br /&gt;
 /sound/effects/footsteps&lt;br /&gt;
 /sound/effects/footstepscustomstep.surface.ogg&lt;br /&gt;
 /sound/effects/music&lt;br /&gt;
 /sound/effects/musiclevelmusic.ogg  &lt;br /&gt;
 /sound/effects/voices&lt;br /&gt;
 /sound/effects/voices/charvoice.ogg  &lt;br /&gt;
 /sound/effects/voices/conversation.ogg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== strings ==&lt;br /&gt;
&lt;br /&gt;
link to #str article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /strings/fm                                                     //each translation requires new                            &lt;br /&gt;
 /strings/fm/de.lang                                              //repack. Game items must be named&lt;br /&gt;
 /strings/fm/eng.lang                                             //#str or look-up-replaced using...&lt;br /&gt;
 /strings/fm/es.lang                                             //i forgot the name...&lt;br /&gt;
 /strings/fm/pyc.lang                                           //ebatc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== textures ==&lt;br /&gt;
&lt;br /&gt;
alternative to dds for non-alpha, simple texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /textures                         &lt;br /&gt;
 /textures/darkmod/                                                //new textures go here.&lt;br /&gt;
 /textures/darkmod/custom texture.jpg                                     //normals and other maps must&lt;br /&gt;
 /textures/darkmod/custom texture.tga  &lt;br /&gt;
 /textures/darkmod/weapons/sword01.tga                                //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface).&lt;br /&gt;
 /textures/decals/                                                &lt;br /&gt;
 /textures/decals/blood                                             //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not.&lt;br /&gt;
 /textures/decals/blood/custom_blood.jpg                       // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested].&lt;br /&gt;
 /textures/decals/blood/custom_blood.tga                       // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded.&lt;br /&gt;
 /textures/decals/dirt/dirt/custom_dirt.jpg                          // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf&lt;br /&gt;
 /textures/decals/dirt/custom_dirt.tga                          // considering older engine, perhaps worth test for guard in VM.&lt;br /&gt;
&lt;br /&gt;
== levelname ==&lt;br /&gt;
&lt;br /&gt;
alternate custom places&lt;br /&gt;
&lt;br /&gt;
 /levelname/customtexture.jpg  &lt;br /&gt;
 /levelname/customtexture.tga  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== video ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
/video/levelname_briefing.roq                                  //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c)&lt;br /&gt;
 /video/levelname_credits.roq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xdata ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /xdata&lt;br /&gt;
 /xdata/briefing.xd                                             //text only briefing - use gui for moving image, timed sequence, etc...&lt;br /&gt;
 /xdata/levelname.xd                                              //readables data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== the end ==&lt;/div&gt;</summary>
		<author><name>Teh saccade</name></author>
	</entry>
</feed>